Tuesday, May 20, 2014

Install Openstack via RDO packstack

Please also refer here

These instructions are to install the current ("Icehouse") release.

Please name the host with a fully qualified domain name rather than a short-form name to avoid DNS issues with Packstack. 

Step 0: Prerequisites

Software: Red Hat Enterprise Linux (RHEL) 6.5 is the minimum recommended version, or the equivalent version of one of the RHEL-based Linux distributions such as CentOS, Scientific Linux, etc., or Fedora 20 or later.

Step 1: Software repositories


Update your current packages: 


sudo yum update -y
 
Setup the RDO repositories: 


sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm
 
 
Step 2: Install Packstack Installer

sudo yum install -y openstack-packstack

Step 3: Run Packstack to install OpenStack

Packstack takes the work out of manually setting up OpenStack. For a single node OpenStack deployment, run the following command.

packstack --allinone

The installer will ask you to enter the root password for each host node you are installing on the network, to enable remote configuration of the host so it can remotely configure each node using Puppet.


The following is the output from my test server

# sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors-pa.sioru.com
 * epel: mirror.umd.edu
 * extras: mirror.us.leaseweb.net
 * updates: mirrors-pa.sioru.com
Setting up Install Process
rdo-release.rpm                                          |  12 kB     00:00    
Examining /var/tmp/yum-root-IaRbXv/rdo-release.rpm: rdo-release-icehouse-3.noarch
Marking /var/tmp/yum-root-IaRbXv/rdo-release.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rdo-release.noarch 0:icehouse-3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch          Version             Repository           Size
================================================================================
Installing:
 rdo-release        noarch        icehouse-3          /rdo-release        8.7 k

Transaction Summary
================================================================================
Install       1 Package(s)

Total size: 8.7 k
Installed size: 8.7 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : rdo-release-icehouse-3.noarch                                1/1
  Verifying  : rdo-release-icehouse-3.noarch                                1/1

Installed:
  rdo-release.noarch 0:icehouse-3                                              

Complete!


#  sudo yum install -y openstack-packstack
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.seas.harvard.edu
 * epel: mirror.umd.edu
 * extras: mirror.millry.co
 * updates: mirrors-pa.sioru.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package openstack-packstack.noarch 0:2014.1.1-0.12.dev1068.el6 will be installed
--> Processing Dependency: openstack-packstack-puppet = 2014.1.1-0.12.dev1068.el6 for package: openstack-packstack-2014.1.1-0.12.dev1068.el6.noarch
--> Processing Dependency: openstack-puppet-modules for package: openstack-packstack-2014.1.1-0.12.dev1068.el6.noarch
--> Running transaction check
---> Package openstack-packstack-puppet.noarch 0:2014.1.1-0.12.dev1068.el6 will be installed
---> Package openstack-puppet-modules.noarch 0:2014.1-11.1.el6 will be installed
--> Processing Dependency: rubygem-json for package: openstack-puppet-modules-2014.1-11.1.el6.noarch
--> Running transaction check
---> Package rubygem-json.x86_64 0:1.5.5-1.el6 will be installed
--> Processing Dependency: ruby(abi) = 1.8 for package: rubygem-json-1.5.5-1.el6.x86_64
--> Processing Dependency: rubygems for package: rubygem-json-1.5.5-1.el6.x86_64
--> Processing Dependency: /usr/bin/ruby for package: rubygem-json-1.5.5-1.el6.x86_64
--> Processing Dependency: libruby.so.1.8()(64bit) for package: rubygem-json-1.5.5-1.el6.x86_64
--> Running transaction check
---> Package ruby.x86_64 0:1.8.7.352-13.el6 will be installed
---> Package ruby-libs.x86_64 0:1.8.7.352-13.el6 will be installed
--> Processing Dependency: libreadline.so.5()(64bit) for package: ruby-libs-1.8.7.352-13.el6.x86_64
---> Package rubygems.noarch 0:1.3.7-5.el6 will be installed
--> Processing Dependency: ruby-rdoc for package: rubygems-1.3.7-5.el6.noarch
--> Running transaction check
---> Package compat-readline5.x86_64 0:5.2-17.1.el6 will be installed
---> Package ruby-rdoc.x86_64 0:1.8.7.352-13.el6 will be installed
--> Processing Dependency: ruby-irb = 1.8.7.352-13.el6 for package: ruby-rdoc-1.8.7.352-13.el6.x86_64
--> Running transaction check
---> Package ruby-irb.x86_64 0:1.8.7.352-13.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package              Arch   Version                   Repository          Size
================================================================================
Installing:
 openstack-packstack  noarch 2014.1.1-0.12.dev1068.el6 openstack-icehouse 197 k
Installing for dependencies:
 compat-readline5     x86_64 5.2-17.1.el6              base               130 k
 openstack-packstack-puppet
                      noarch 2014.1.1-0.12.dev1068.el6 openstack-icehouse  33 k
 openstack-puppet-modules
                      noarch 2014.1-11.1.el6           openstack-icehouse 1.5 M
 ruby                 x86_64 1.8.7.352-13.el6          updates            534 k
 ruby-irb             x86_64 1.8.7.352-13.el6          updates            314 k
 ruby-libs            x86_64 1.8.7.352-13.el6          updates            1.6 M
 ruby-rdoc            x86_64 1.8.7.352-13.el6          updates            377 k
 rubygem-json         x86_64 1.5.5-1.el6               puppetlabs-deps    763 k
 rubygems             noarch 1.3.7-5.el6               base               207 k

Transaction Summary
================================================================================
Install      10 Package(s)

Total download size: 5.7 M
Installed size: 16 M
Downloading Packages:
(1/10): compat-readline5-5.2-17.1.el6.x86_64.rpm         | 130 kB     00:00    
(2/10): openstack-packstack-2014.1.1-0.12.dev1068.el6.no | 197 kB     00:00    
(3/10): openstack-packstack-puppet-2014.1.1-0.12.dev1068 |  33 kB     00:00    
(4/10): openstack-puppet-modules-2014.1-11.1.el6.noarch. | 1.5 MB     00:01    
(5/10): ruby-1.8.7.352-13.el6.x86_64.rpm                 | 534 kB     00:00    
(6/10): ruby-irb-1.8.7.352-13.el6.x86_64.rpm             | 314 kB     00:00    
(7/10): ruby-libs-1.8.7.352-13.el6.x86_64.rpm            | 1.6 MB     00:01    
(8/10): ruby-rdoc-1.8.7.352-13.el6.x86_64.rpm            | 377 kB     00:00    
(9/10): rubygem-json-1.5.5-1.el6.x86_64.rpm              | 763 kB     00:00    
(10/10): rubygems-1.3.7-5.el6.noarch.rpm                 | 207 kB     00:00    
--------------------------------------------------------------------------------
Total                                           737 kB/s | 5.7 MB     00:07    
warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID 0e4fbd28: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse
Importing GPG key 0x0E4FBD28:
 Userid : rdo-icehouse-sign <rdo-info@redhat.com>
 Package: rdo-release-icehouse-3.noarch (@/rdo-release)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse
warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID 4bd6ec30: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
Importing GPG key 0x4BD6EC30:
 Userid : Puppet Labs Release Key (Puppet Labs Release Key) <info@puppetlabs.com>
 Package: rdo-release-icehouse-3.noarch (@/rdo-release)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : openstack-packstack-puppet-2014.1.1-0.12.dev1068.el6.noa    1/10
  Installing : compat-readline5-5.2-17.1.el6.x86_64                        2/10
  Installing : ruby-libs-1.8.7.352-13.el6.x86_64                           3/10
  Installing : ruby-1.8.7.352-13.el6.x86_64                                4/10
  Installing : ruby-irb-1.8.7.352-13.el6.x86_64                            5/10
  Installing : ruby-rdoc-1.8.7.352-13.el6.x86_64                           6/10
  Installing : rubygems-1.3.7-5.el6.noarch                                 7/10
  Installing : rubygem-json-1.5.5-1.el6.x86_64                             8/10
  Installing : openstack-puppet-modules-2014.1-11.1.el6.noarch             9/10
  Installing : openstack-packstack-2014.1.1-0.12.dev1068.el6.noarch       10/10
  Verifying  : ruby-irb-1.8.7.352-13.el6.x86_64                            1/10
  Verifying  : ruby-libs-1.8.7.352-13.el6.x86_64                           2/10
  Verifying  : compat-readline5-5.2-17.1.el6.x86_64                        3/10
  Verifying  : openstack-puppet-modules-2014.1-11.1.el6.noarch             4/10
  Verifying  : openstack-packstack-puppet-2014.1.1-0.12.dev1068.el6.noa    5/10
  Verifying  : ruby-rdoc-1.8.7.352-13.el6.x86_64                           6/10
  Verifying  : openstack-packstack-2014.1.1-0.12.dev1068.el6.noarch        7/10
  Verifying  : rubygems-1.3.7-5.el6.noarch                                 8/10
  Verifying  : ruby-1.8.7.352-13.el6.x86_64                                9/10
  Verifying  : rubygem-json-1.5.5-1.el6.x86_64                            10/10

Installed:
  openstack-packstack.noarch 0:2014.1.1-0.12.dev1068.el6                       

Dependency Installed:
  compat-readline5.x86_64 0:5.2-17.1.el6                                       
  openstack-packstack-puppet.noarch 0:2014.1.1-0.12.dev1068.el6                
  openstack-puppet-modules.noarch 0:2014.1-11.1.el6                            
  ruby.x86_64 0:1.8.7.352-13.el6                                               
  ruby-irb.x86_64 0:1.8.7.352-13.el6                                           
  ruby-libs.x86_64 0:1.8.7.352-13.el6                                          
  ruby-rdoc.x86_64 0:1.8.7.352-13.el6                                          
  rubygem-json.x86_64 0:1.5.5-1.el6                                            
  rubygems.noarch 0:1.3.7-5.el6                                                

Complete!


# sudo useradd -U -G wheel -s /bin/bash -m openstack



Now login as openstack user

[openstack@novo ~]$ packstack --allinone
Welcome to Installer setup utility
Packstack changed given value  to required value /home/openstack/.ssh/id_rsa.pub

Installing:
Clean Up                                             [ DONE ]
root@192.168.1.188's password:
Setting up ssh keys                               [ ERROR ]

ERROR : Failed to run remote script, stdout:
stderr: Warning: Permanently added '192.168.1.188' (RSA) to the list of known hosts.
Connection closed by UNKNOWN

The above error is caused by hostname not in FQDN format

# vi /etc/hosts

The following line is added :

192.168.1.188    novo.test.com novo

# hostname novo
# hostname
novo
# hostname -f (this is to verify FQDN format is showned)
novo.test.com

After fixing the problem,re-run packstack with option --answer-file followed by the answer file : packstack-answers-20140520-175735.txt


[openstack@novo ~]$ packstack --answer-file packstack-answers-20140520-175735.txt
Welcome to Installer setup utility

Installing:
Clean Up                                             [ DONE ]
Setting up ssh keys                                  [ DONE ]
Discovering hosts' details                           [ DONE ]
Adding pre install manifest entries                  [ DONE ]
Adding MySQL manifest entries                        [ DONE ]
Adding AMQP manifest entries                         [ DONE ]
Adding Keystone manifest entries                     [ DONE ]
Adding Glance Keystone manifest entries              [ DONE ]
Adding Glance manifest entries                       [ DONE ]
Installing dependencies for Cinder                   [ DONE ]
Adding Cinder Keystone manifest entries              [ DONE ]
Adding Cinder manifest entries                       [ DONE ]
Checking if the Cinder server has a cinder-volumes vg[ DONE ]
Adding Nova API manifest entries                     [ DONE ]
Adding Nova Keystone manifest entries                [ DONE ]
Adding Nova Cert manifest entries                    [ DONE ]
Adding Nova Conductor manifest entries               [ DONE ]
Creating ssh keys for Nova migration                 [ DONE ]
Gathering ssh host keys for Nova migration           [ DONE ]
Adding Nova Compute manifest entries                 [ DONE ]
Adding Nova Scheduler manifest entries               [ DONE ]
Adding Nova VNC Proxy manifest entries               [ DONE ]
Adding Nova Common manifest entries                  [ DONE ]
Adding Openstack Network-related Nova manifest entries[ DONE ]
Adding Neutron API manifest entries                  [ DONE ]
Adding Neutron Keystone manifest entries             [ DONE ]
Adding Neutron L3 manifest entries                   [ DONE ]
Adding Neutron L2 Agent manifest entries             [ DONE ]
Adding Neutron DHCP Agent manifest entries           [ DONE ]
Adding Neutron LBaaS Agent manifest entries          [ DONE ]
Adding Neutron Metadata Agent manifest entries       [ DONE ]
Adding OpenStack Client manifest entries             [ DONE ]
Adding Horizon manifest entries                      [ DONE ]
Adding Swift Keystone manifest entries               [ DONE ]
Adding Swift builder manifest entries                [ DONE ]
Adding Swift proxy manifest entries                  [ DONE ]
Adding Swift storage manifest entries                [ DONE ]
Adding Swift common manifest entries                 [ DONE ]
Adding Provisioning manifest entries                 [ DONE ]
Adding MongoDB manifest entries                      [ DONE ]
Adding Ceilometer manifest entries                   [ DONE ]
Adding Ceilometer Keystone manifest entries          [ DONE ]
Adding Nagios server manifest entries                [ DONE ]
Adding Nagios host manifest entries                  [ DONE ]
Adding post install manifest entries                 [ DONE ]
Preparing servers                                    [ DONE ]
Installing Dependencies                              [ DONE ]
Copying Puppet modules and manifests                 [ DONE ]
Applying 192.168.1.188_prescript.pp
192.168.1.188_prescript.pp:                          [ DONE ]        
Applying 192.168.1.188_mysql.pp
Applying 192.168.1.188_amqp.pp
192.168.1.188_mysql.pp:                              [ DONE ]    
192.168.1.188_amqp.pp:                               [ DONE ]    
Applying 192.168.1.188_keystone.pp
Applying 192.168.1.188_glance.pp
Applying 192.168.1.188_cinder.pp
192.168.1.188_keystone.pp:                           [ DONE ]       
192.168.1.188_glance.pp:                             [ DONE ]       
192.168.1.188_cinder.pp:                             [ DONE ]       
Applying 192.168.1.188_api_nova.pp
192.168.1.188_api_nova.pp:                           [ DONE ]       
Applying 192.168.1.188_nova.pp
192.168.1.188_nova.pp:                               [ DONE ]   
Applying 192.168.1.188_neutron.pp
192.168.1.188_neutron.pp:                            [ DONE ]      
Applying 192.168.1.188_osclient.pp
Applying 192.168.1.188_horizon.pp
192.168.1.188_osclient.pp:                           [ DONE ]       
192.168.1.188_horizon.pp:                            [ DONE ]       
Applying 192.168.1.188_ring_swift.pp
192.168.1.188_ring_swift.pp:                         [ DONE ]         
Applying 192.168.1.188_swift.pp
Applying 192.168.1.188_provision.pp
192.168.1.188_swift.pp:                              [ DONE ]        
192.168.1.188_provision.pp:                          [ DONE ]        
Applying 192.168.1.188_mongodb.pp
192.168.1.188_mongodb.pp:                            [ DONE ]      
Applying 192.168.1.188_ceilometer.pp
Applying 192.168.1.188_nagios.pp
Applying 192.168.1.188_nagios_nrpe.pp
192.168.1.188_ceilometer.pp:                         [ DONE ]          
192.168.1.188_nagios.pp:                             [ DONE ]          
192.168.1.188_nagios_nrpe.pp:                        [ DONE ]          
Applying 192.168.1.188_postscript.pp
192.168.1.188_postscript.pp:                         [ DONE ]         
Applying Puppet manifests                            [ DONE ]
Finalizing                                           [ DONE ]

 **** Installation completed successfully ******


Additional information:
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
 * Did not create a cinder volume group, one already existed
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.188. To use the command line tools you need to source the file.
 * Copy of keystonerc_admin file has been created for non-root user in /home/openstack.
 * To access the OpenStack Dashboard browse to http://192.168.1.188/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
 * To use Nagios, browse to http://192.168.1.188/nagios username : nagiosadmin, password : 30856dbf515e42ee
 * The installation log file is available at: /var/tmp/packstack/20140520-190707-JWMGRW/openstack-setup.log
 * The generated manifests are available at: /var/tmp/packstack/20140520-190707-JWMGRW/manifests


[openstack@novo ~]$ cat keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=6af8187b6ef64c40
export OS_AUTH_URL=http://192.168.1.188:5000/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '





[openstack@novo ~]$ pstree
init─┬─NetworkManager─┬─dhclient
     │                └─{NetworkManager}
     ├─abrtd
     ├─acpid
     ├─atd
     ├─auditd───{auditd}
     ├─automount───4*[{automount}]
     ├─bluetoothd
     ├─bonobo-activati───{bonobo-activat}
     ├─2*[ceilometer-agen]
     ├─ceilometer-agen───ceilometer-agen
     ├─2*[ceilometer-alar]
     ├─ceilometer-api
     ├─ceilometer-coll───ceilometer-coll
     ├─certmonger
     ├─cinder-api───cinder-api
     ├─cinder-backup
     ├─cinder-schedule
     ├─cinder-volume───cinder-volume
     ├─clock-applet
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─crond
     ├─cupsd
     ├─2*[dbus-daemon───{dbus-daemon}]
     ├─2*[dbus-launch]
     ├─devkit-power-da
     ├─e-calendar-fact───{e-calendar-fac}
     ├─epmd
     ├─firefox───43*[{firefox}]
     ├─gconf-im-settin
     ├─gconfd-2
     ├─gdm-binary─┬─gdm-simple-slav─┬─Xorg
     │            │                 ├─gdm-session-wor─┬─gnome-session─┬─abrt-ap+
     │            │                 │                 │               ├─bluetoo+
     │            │                 │                 │               ├─evoluti+
     │            │                 │                 │               ├─gdu-not+
     │            │                 │                 │               ├─gnome-p+
     │            │                 │                 │               ├─gnome-p+
     │            │                 │                 │               ├─gnome-v+
     │            │                 │                 │               ├─gpk-upd+
     │            │                 │                 │               ├─metacit+
     │            │                 │                 │               ├─nautilus
     │            │                 │                 │               ├─nm-appl+
     │            │                 │                 │               ├─polkit-+
     │            │                 │                 │               ├─python
     │            │                 │                 │               ├─restore+
     │            │                 │                 │               └─{gnome-+
     │            │                 │                 └─{gdm-session-wo}
     │            │                 └─{gdm-simple-sla}
     │            └─{gdm-binary}
     ├─gdm-user-switch
     ├─gedit
     ├─glance-api───8*[glance-api]
     ├─glance-registry───glance-registry
     ├─gnome-keyring-d───2*[{gnome-keyring-}]
     ├─gnome-screensav
     ├─gnome-settings-───{gnome-settings}
     ├─gnome-terminal─┬─bash
     │                ├─4*[bash───su───bash]
     │                ├─bash───su───bash───pstree
     │                ├─bash───su───bash───mysqld_safe───mysqld───49*[{mysqld}]
     │                ├─gnome-pty-helpe
     │                └─{gnome-terminal}
     ├─gnote
     ├─gvfs-afc-volume───{gvfs-afc-volum}
     ├─gvfs-gdu-volume
     ├─gvfs-gphoto2-vo
     ├─gvfsd
     ├─gvfsd-burn
     ├─gvfsd-metadata
     ├─gvfsd-trash
     ├─hald─┬─hald-runner─┬─hald-addon-acpi
     │      │             ├─2*[hald-addon-gene]
     │      │             ├─hald-addon-inpu
     │      │             └─hald-addon-rfki
     │      └─{hald}
     ├─httpd─┬─httpd───17*[{httpd}]
     │       └─8*[httpd]
     ├─im-settings-dae
     ├─irqbalance
     ├─keystone-all
     ├─ksmtuned───sleep
     ├─libvirtd───10*[{libvirtd}]
     ├─master─┬─pickup
     │        └─qmgr
     ├─memcached───9*[{memcached}]
     ├─5*[mingetty]
     ├─modem-manager
     ├─mongod───20*[{mongod}]
     ├─nagios───{nagios}
     ├─neutron-dhcp-ag
     ├─neutron-l3-agen
     ├─neutron-metadat
     ├─neutron-ns-meta
     ├─neutron-openvsw───sudo───neutron-rootwra───ovsdb-client
     ├─neutron-server
     ├─notification-ar
     ├─nova-api───24*[nova-api]
     ├─nova-cert
     ├─nova-compute───21*[{nova-compute}]
     ├─nova-conductor───8*[nova-conductor]
     ├─nova-consoleaut
     ├─nova-novncproxy
     ├─nova-scheduler
     ├─nrpe
     ├─ovs-vswitchd───ovs-vswitchd───ovs-vswitchd
     ├─ovsdb-server───ovsdb-server
     ├─packagekitd
     ├─polkitd
     ├─pulseaudio─┬─gconf-helper
     │            └─3*[{pulseaudio}]
     ├─rabbitmq-server───bash───rabbitmq-server───su───beam.smp─┬─inet_gethost─+
     │                                                          └─42*[{beam.smp+
     ├─rpc.statd
     ├─rpcbind
     ├─rsyslogd───3*[{rsyslogd}]
     ├─rtkit-daemon───2*[{rtkit-daemon}]
     ├─seahorse-daemon
     ├─sshd
     ├─swift-account-a
     ├─2*[swift-account-r]
     ├─swift-account-s───swift-account-s
     ├─3*[swift-container]
     ├─swift-container───swift-container
     ├─swift-object-au
     ├─swift-object-re
     ├─swift-object-se───swift-object-se
     ├─swift-object-up
     ├─swift-proxy-ser───8*[swift-proxy-ser]
     ├─tgtd───tgtd
     ├─trashapplet
     ├─tuned
     ├─udevd───2*[udevd]
     ├─udisks-daemon─┬─udisks-daemon
     │               └─{udisks-daemon}
     ├─wnck-applet
     ├─wpa_supplicant
     └─xinetd



No comments:

Post a Comment