Want to deploy Openstack and experience your own cloud platform the easier way? One way is to install Openstack via RDO Packstack*.
*Packstack is a utility that uses Puppet modules to deploy various parts of OpenStack . It is suitable for deploying both single node proof of concept or more complex multi node installations.
Components used and tested in:
CentOS 7 Linux 3.10.0-693.el7.x86_64
Openstack Packstack (latest stable release, Pike)
Advisable to stop firewalld, NetworkManager and enable network
#service firewalld stop
#chkconfig firewalld off
#service NetworkManager stop
#chkconfig NetworkManager off
#service network start
#chkconfig network on
Sample Output:
[root@freelinux vinyard]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@freelinux vinyard]# chkconfig firewalld off
Note: Forwarding request to ‘systemctl disable firewalld.service’.
[root@freelinux vinyard]# service NetworkManager stop
Redirecting to /bin/systemctl stop NetworkManager.service
[root@freelinux vinyard]# chkconfig NetworkManager off
Note: Forwarding request to ‘systemctl disable NetworkManager.service’.
[root@freelinux vinyard]# service network start
Starting network (via systemctl): [ OK ]
[root@freelinux vinyard]# chkconfig network on
1. Enable repository in CentOS (latest stable release as of this writing is Pike)
# yum install -y centos-release-openstack-pike
Sample Output:
[root@freelinux ~]# yum install -y centos-release-openstack-pike
Loaded plugins: fastestmirror
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
centos-release-openstack-pike x86_64 1-1.el7 extras 5.3 k
Installing for dependencies:
centos-release-ceph-jewel noarch 1.0-1.el7.centos extras 4.1 k
centos-release-qemu-ev noarch 1.0-2.el7 extras 11 k
centos-release-storage-common noarch 1-2.el7.centos extras 4.5 k
centos-release-virt-common noarch 1-1.el7.centos extras 4.5 k
Transaction Summary
================================================================================
Install 1 Package (+4 Dependent packages)
Installing : centos-release-virt-common-1-1.el7.centos.noarch 1/5
Installing : centos-release-qemu-ev-1.0-2.el7.noarch 2/5
Installing : centos-release-storage-common-1-2.el7.centos.noarch 3/5
Installing : centos-release-ceph-jewel-1.0-1.el7.centos.noarch 4/5
Installing : centos-release-openstack-pike-1-1.el7.x86_64 5/5
Installed:
centos-release-openstack-pike.x86_64 0:1-1.el7
Dependency Installed:
centos-release-ceph-jewel.noarch 0:1.0-1.el7.centos
centos-release-qemu-ev.noarch 0:1.0-2.el7
centos-release-storage-common.noarch 0:1-2.el7.centos
centos-release-virt-common.noarch 0:1-1.el7.centos
Complete!
2. Update current packages
# yum update -y
[root@freelinux ~]# yum update -y
Loaded plugins: fastestmirror
centos-ceph-jewel | 2.9 kB 00:00
centos-openstack-pike | 2.9 kB 00:00
centos-qemu-ev | 2.9 kB 00:00
(2/3): centos-openstack-pi 0% [ ] 0.0 B/s | 0 B –:– ETA (2/3): centos-openstack-pi 2% [ ] 0.0 B/s | 31 kB –:– ETA (1/3): centos-qemu-ev/7/x86_64/primary_db | 33 kB 00:15
(2/3): centos-ceph-jewel/7/x86_64/primary_db | 64 kB 00:16
(3/3): centos-openstack-pi 16% [==- ] 159 kB/s | 172 kB 00:05 ETA (3/3): centos-openstack-pi 20% [=== ] 154 kB/s | 215 kB 00:05 ETA (3/3): centos-openstack-pi 26% [==== ] 153 kB/s | 280 kB 00:05 ETA (3/3): centos-openstack-pi 31% [===== ] 150 kB/s | 338 kB 00:04 ETA (3/3): centos-openstack-pi 39% [====== ] 151 kB/s | 414 kB 00:04 ETA (3/3): centos-openstack-pi 45% [======= ] 150 kB/s | 479 kB 00:03 ETA (3/3): centos-openstack-pi 53% [========- ] 155 kB/s | 571 kB 00:03 ETA (3/3): centos-openstack-pi 63% [========== ] 163 kB/s | 678 kB 00:02 ETA (3/3): centos-openstack-pi 74% [===========- ] 172 kB/s | 793 kB 00:01 ETA (3/3): centos-openstack-pi 87% [============== ] 184 kB/s | 929 kB 00:00 ETA (3/3): centos-openstack-pike/x86_64/primary_db | 963 kB 00:20
Loading mirror speeds from cached hostfile
* base: centos.usonyx.net
* extras: centos.usonyx.net
* updates: centos.usonyx.net
Resolving Dependencies
–> Running transaction check
—> Package mariadb-libs.x86_64 1:5.5.56-2.el7 will be updated
—> Package mariadb-libs.x86_64 3:10.1.20-2.el7 will be an update
–> Processing Dependency: mariadb-common(x86-64) = 3:10.1.20-2.el7 for package: 3:mariadb-libs-10.1.20-2.el7.x86_64
–> Running transaction check
—> Package mariadb-common.x86_64 3:10.1.20-2.el7 will be installed
–> Processing Dependency: /etc/my.cnf for package: 3:mariadb-common-10.1.20-2.el7.x86_64
–> Running transaction check
—> Package mariadb-config.x86_64 3:10.1.20-2.el7 will be installed
—> Package mariadb-libs.x86_64 1:5.5.56-2.el7 will be updated
—> Package mariadb-libs.x86_64 1:5.5.56-2.el7 will be updated
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
mariadb-libs x86_64 3:10.1.20-2.el7 centos-openstack-pike 643 k
Installing for dependencies:
mariadb-common x86_64 3:10.1.20-2.el7 centos-openstack-pike 63 k
mariadb-config x86_64 3:10.1.20-2.el7 centos-openstack-pike 26 k
Transaction Summary
================================================================================
Install ( 2 Dependent packages)
Upgrade 1 Package
Dependency Installed:
mariadb-common.x86_64 3:10.1.20-2.el7 mariadb-config.x86_64 3:10.1.20-2.el7
Updated:
mariadb-libs.x86_64 3:10.1.20-2.el7
Complete!
3. Install Openstack Packstack Installer
# yum install -y openstack-packstack
Sample output:
[root@freelinux ~]# yum install -y openstack-packstack
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.usonyx.net
* extras: centos.usonyx.net
* updates: centos.usonyx.net
Resolving Dependencies
–> Running transaction check
—> Package openstack-packstack.noarch 1:11.0.1-1.el7 will be installed
–> Processing Dependency: openstack-packstack-puppet = 1:11.0.1-1.el7 for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: pyOpenSSL >= 16.2.0 for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: python-setuptools for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: python-pbr for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: python-netifaces for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: python-netaddr for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: python-docutils for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Processing Dependency: PyYAML for package: 1:openstack-packstack-11.0.1-1.el7.noarch
–> Running transaction check
—> Package PyYAML.x86_64 0:3.10-11.el7 will be installed
Installed:
openstack-packstack.noarch 1:11.0.1-1.el7
Dependency Installed:
PyYAML.x86_64 0:3.10-11.el7
augeas-libs.x86_64 0:1.4.0-2.el7_4.2
facter.x86_64 1:2.4.4-4.el7
hiera.noarch 1:1.3.4-5.el7
jbigkit-libs.x86_64 0:2.0-11.el7
lcms2.x86_64 0:2.6-3.el7
libimagequant.x86_64 0:2.8.2-2.el7
libjpeg-turbo.x86_64 0:1.2.90-5.el7
libselinux-ruby.x86_64 0:2.5-11.el7
libtiff.x86_64 0:4.0.3-27.el7_3
libwebp.x86_64 0:0.3.0-7.el7
libyaml.x86_64 0:0.1.4-11.el7_0
openjpeg2.x86_64 0:2.1.2-1.el7
openstack-packstack-puppet.noarch 1:11.0.1-1.el7
pciutils.x86_64 0:3.5.1-2.el7
puppet.noarch 0:4.8.2-1.el7
puppet-aodh.noarch 0:11.4.0-1.el7
puppet-apache.noarch 0:2.0.0-1.e31a682git.el7
puppet-ceilometer.noarch 0:11.5.0-1.el7
puppet-certmonger.noarch 0:1.1.1-2.d09f0f2git.el7
puppet-cinder.noarch 0:11.5.0-1.el7
puppet-concat.noarch 0:4.0.1-1.b783e1egit.el7
puppet-corosync.noarch 0:5.0.0-4.527cda5git.el7
puppet-firewall.noarch 0:1.8.2-2.2f892e9git.el7
puppet-glance.noarch 0:11.5.0-1.el7
puppet-gnocchi.noarch 0:11.5.0-1.el7
puppet-heat.noarch 0:11.5.0-1.el7
puppet-horizon.noarch 0:11.5.0-1.el7
puppet-inifile.noarch 0:2.0.0-1.16fd47dgit.el7
puppet-ironic.noarch 0:11.5.0-1.el7
puppet-keystone.noarch 0:11.4.0-1.el7
puppet-magnum.noarch 0:11.3.2-1.el7
puppet-manila.noarch 0:11.4.0-1.el7
puppet-memcached.noarch 0:3.0.2-1.adf8b63git.el7
puppet-mysql.noarch 0:3.11.0-1.920dd76git.el7
puppet-neutron.noarch 0:11.5.0-1.el7
puppet-nova.noarch 0:11.5.1-1.el7
puppet-nssdb.noarch 0:1.0.1-1.el7
puppet-openstack_extras.noarch 0:11.5.0-1.el7
puppet-openstacklib.noarch 0:11.5.0-1.el7
puppet-oslo.noarch 0:11.4.0-1.el7
puppet-ovn.noarch 0:11.4.0-1.el7
puppet-panko.noarch 0:11.5.0-1.el7
puppet-rabbitmq.noarch 0:5.6.0-4.5ac45degit.el7
puppet-redis.noarch 0:3.2.0-1.8c61533git.el7
puppet-remote.noarch 0:0.0.1-3.7420908git.el7
puppet-rsync.noarch 0:0.4.0-2.295cfcegit.el7
puppet-sahara.noarch 0:11.4.0-1.el7
puppet-ssh.noarch 0:3.0.1-3.3fb5405git.el7
puppet-staging.noarch 0:1.0.4-1.b466d93git.el7
puppet-stdlib.noarch 0:4.18.0-2.el7
puppet-swift.noarch 0:11.4.0-1.el7
puppet-sysctl.noarch 0:0.0.11-1.el7
puppet-tempest.noarch 0:11.5.0-1.el7
puppet-trove.noarch 0:11.4.0-1.el7
puppet-vcsrepo.noarch 0:2.0.0-1.e3d28c6git.el7
puppet-vswitch.noarch 0:7.4.0-1.el7
puppet-xinetd.noarch 0:2.0.0-4.1d1e6d4git.el7
python-docutils.noarch 0:0.11-0.2.20130715svn7687.el7
python-enum34.noarch 0:1.0.4-1.el7
python-ipaddress.noarch 0:1.0.16-3.el7
python-netaddr.noarch 0:0.7.18-1.el7
python-netifaces.x86_64 0:0.10.4-3.el7
python-ply.noarch 0:3.4-11.el7
python-pycparser.noarch 0:2.14-1.el7
python2-cffi.x86_64 0:1.5.2-1.el7
python2-cryptography.x86_64 0:1.7.2-1.el7_4.1
python2-idna.noarch 0:2.5-1.el7
python2-olefile.noarch 0:0.44-1.el7
python2-pbr.noarch 0:3.1.1-1.el7
python2-pillow.x86_64 0:4.0.0-1.el7
python2-pyOpenSSL.noarch 0:16.2.0-3.el7
python2-pyasn1.noarch 0:0.1.9-7.el7
python2-setuptools.noarch 0:22.0.5-1.el7
python2-six.noarch 0:1.10.0-9.el7
ruby.x86_64 0:2.0.0.648-30.el7
ruby-augeas.x86_64 0:0.5.0-1.el7
ruby-irb.noarch 0:2.0.0.648-30.el7
ruby-libs.x86_64 0:2.0.0.648-30.el7
ruby-shadow.x86_64 0:1.4.1-23.el7
rubygem-bigdecimal.x86_64 0:1.2.0-30.el7
rubygem-io-console.x86_64 0:0.4.2-30.el7
rubygem-json.x86_64 0:1.7.7-30.el7
rubygem-psych.x86_64 0:2.0.0-30.el7
rubygem-rdoc.noarch 0:4.0.0-30.el7
rubygem-rgen.noarch 0:0.6.6-2.el7
rubygems.noarch 0:2.0.14.1-30.el7
Complete!
4. Install Openstack by running Packstack
#packstack –allinone
Sample output:
root@freelinux ~]# packstack –allinone
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20180210-134441-WQ3ii9/openstack-setup.log
Packstack changed given value to required value /root/.ssh/id_rsa.pub
Installing:
Clean Up                                              [ DONE ]
Discovering ip protocol version                            [ DONE ]
Setting up ssh keys                                      [ DONE ]
Preparing servers                                       [ DONE ]
Pre installing Puppet and discovering hosts’ details             [ DONE ]
Preparing pre-install entries                                [ DONE ]
Setting up CACERTÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â [ DONE ]
Preparing AMQP entries                                  [ DONE ]
Preparing MariaDB entries                                [ DONE ]
Fixing Keystone LDAP config parameters to be undef if empty    [ DONE ]
Preparing Keystone entries                                [ DONE ]
Preparing Glance entries                                  [ DONE ]
Checking if the Cinder server has a cinder-volumes vg          [ DONE ]
Preparing Cinder entries                                  [ DONE ]
Preparing Nova API entries                                [ DONE ]
Creating ssh keys for Nova migration                        [ DONE ]
Gathering ssh host keys for Nova migration                   [ DONE ]
Preparing Nova Compute entries                           [ DONE ]
Preparing Nova Scheduler entries                           [ DONE ]
Preparing Nova VNC Proxy entries                          [ DONE ]
Preparing OpenStack Network-related Nova entries            [ DONE ]
Preparing Nova Common entries                           [ DONE ]
Preparing Neutron LBaaS Agent entries                      [ DONE ]
Preparing Neutron API entries                              [ DONE ]
Preparing Neutron L3 entries                               [ DONE ]
Preparing Neutron L2 Agent entries                         [ DONE ]
Preparing Neutron DHCP Agent entries                       [ DONE ]
Preparing Neutron Metering Agent entries                    [ DONE ]
Checking if NetworkManager is enabled and running            [ DONE ]
Preparing OpenStack Client entries                          [ DONE ]
Preparing Horizon entries                                  [ DONE ]
Preparing Swift builder entries                              [ DONE ]
Preparing Swift proxy entries                               [ DONE ]
Preparing Swift storage entries                              [ DONE ]
Preparing Gnocchi entries                                  [ DONE ]
Preparing Redis entries                                     [ DONE ]
Preparing Ceilometer entries                                 [ DONE ]
Preparing Aodh entries                                     [ DONE ]
Preparing Puppet manifests                                  [ DONE ]
Copying Puppet modules and manifests                        [ DONE ]
Applying 192.168.1.112_controller.pp
Additional information:
* A new answerfile was created in: /root/packstack-answers-20180210-134442.txt
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.112. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.1.112/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
5. Login to Openstack Dashboard
http://<server.ip> /dashboard
username: admin
pass:Â (refer to /root/keystonerc_admin file), sample below
[root@freelinux vinyard]# cat /root/keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD=’4b5264f3f5674888′
export OS_AUTH_URL=http://192.168.1.112:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$ ‘
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3