If you’d like a method to consistently deploy OpenStack in an automated fashion I’d recommend checking out packstack – an Openstack installation automation tool which utilizes puppet.
[root@rhc-05 ~]# packstack Welcome to Installer setup utility Should Packstack install Glance image service [y|n] [y] : Should Packstack install Cinder volume service [y|n] [y] : Should Packstack install Nova compute service [y|n] [y] : Should Packstack install Horizon dashboard [y|n] [y] : Should Packstack install Swift object storage [y|n] [n] : y Should Packstack install Openstack client tools [y|n] [y] : Enter list of NTP server(s). Leave plain if packstack should not install ntpd on instances.: ns1.bos.redhat.com Enter the path to your ssh Public key to install on servers [/root/.ssh/id_rsa.pub] : Enter the IP address of the MySQL server [10.16.46.104] : Enter the password for the MySQL admin user : Enter the IP address of the QPID service [10.16.46.104] : Enter the IP address of the Keystone server [10.16.46.104] : Enter the IP address of the Glance server [10.16.46.104] : Enter the IP address of the Cinder server [10.16.46.104] : Enter the IP address of the Nova API service [10.16.46.104] : Enter the IP address of the Nova Cert service [10.16.46.104] : Enter the IP address of the Nova VNC proxy [10.16.46.104] : Enter a comma separated list of IP addresses on which to install the Nova Compute services [10.16.46.104] : 10.16.46.104, 10.16.46.106 Enter the Private interface for Flat DHCP on the Nova compute servers [eth1] : Enter the IP address of the Nova Network service [10.16.46.104] : Enter the Public interface on the Nova network server [eth0] : Enter the Private interface for Flat DHCP on the Nova network server [eth1] : Enter the IP Range for Flat DHCP [192.168.32.0/22] : Enter the IP Range for Floating IP's [10.3.4.0/22] : Enter the IP address of the Nova Scheduler service [10.16.46.104] : Enter the IP address of the client server [10.16.46.104] : Enter the IP address of the Horizon server [10.16.46.104] : Enter the IP address of the Swift proxy service [10.16.46.104] : Enter the Swift Storage servers e.g. host/dev,host/dev [10.16.46.104] : Enter the number of swift storage zones, MUST be no bigger than the number of storage devices configured [1] : Enter the number of swift storage replicas, MUST be no bigger than the number of storage zones configured [1] : Enter FileSystem type for storage nodes [xfs|ext4] [ext4] : Should packstack install EPEL on each server [y|n] [n] : Enter a comma separated list of URLs to any additional yum repositories to install: To subscribe each server to Red Hat enter a username here: james.labocki To subscribe each server to Red Hat enter your password here : Installer will be installed using the following configuration: ============================================================== os-glance-install: y os-cinder-install: y os-nova-install: y os-horizon-install: y os-swift-install: y os-client-install: y ntp-severs: ns1.bos.redhat.com ssh-public-key: /root/.ssh/id_rsa.pub mysql-host: 10.16.46.104 mysql-pw: ******** qpid-host: 10.16.46.104 keystone-host: 10.16.46.104 glance-host: 10.16.46.104 cinder-host: 10.16.46.104 novaapi-host: 10.16.46.104 novacert-host: 10.16.46.104 novavncproxy-hosts: 10.16.46.104 novacompute-hosts: 10.16.46.104, 10.16.46.106 novacompute-privif: eth1 novanetwork-host: 10.16.46.104 novanetwork-pubif: eth0 novanetwork-privif: eth1 novanetwork-fixed-range: 192.168.32.0/22 novanetwork-floating-range: 10.3.4.0/22 novasched-host: 10.16.46.104 osclient-host: 10.16.46.104 os-horizon-host: 10.16.46.104 os-swift-proxy: 10.16.46.104 os-swift-storage: 10.16.46.104 os-swift-storage-zones: 1 os-swift-storage-replicas: 1 os-swift-storage-fstype: ext4 use-epel: n additional-repo: rh-username: james.labocki rh-password: ******** Proceed with the configuration listed above? (yes|no): yes Installing: Clean Up... [ DONE ] OS support check... [ DONE ] Running Pre install scripts... [ DONE ] Installing time synchronization via NTP... [ DONE ] Setting Up ssh keys... [ DONE ] Create MySQL Manifest... [ DONE ] Creating QPID Manifest... [ DONE ] Creating Keystone Manifest... [ DONE ] Adding Glance Keystone Manifest entries... [ DONE ] Creating Galnce Manifest... [ DONE ] Adding Cinder Keystone Manifest entries... [ DONE ] Checking if the Cinder server has a cinder-volumes vg... [ DONE ] Creating Cinder Manifest... [ DONE ] Adding Nova API Manifest entries... [ DONE ] Adding Nova Keystone Manifest entries... [ DONE ] Adding Nova Cert Manifest entries... [ DONE ] Adding Nova Compute Manifest entries... [ DONE ] Adding Nova Network Manifest entries... [ DONE ] Adding Nova Scheduler Manifest entries... [ DONE ] Adding Nova VNC Proxy Manifest entries... [ DONE ] Adding Nova Common Manifest entries... [ DONE ] Creating OS Client Manifest... [ DONE ] Creating OS Horizon Manifest... [ DONE ] Preparing Servers... [ DONE ] Running Post install scripts... [ DONE ] Installing Puppet... [ DONE ] Copying Puppet modules/manifests... [ DONE ] Applying Puppet manifests... Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_prescript.pp Testing if puppet apply is finished : 10.16.46.104_prescript.pp OK Testing if puppet apply is finished : 10.16.46.104_mysql.pp OK Testing if puppet apply is finished : 10.16.46.104_qpid.pp OK Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_keystone.pp Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_glance.pp Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_cinder.pp Testing if puppet apply is finished : 10.16.46.104_keystone.pp OK Testing if puppet apply is finished : 10.16.46.104_cinder.pp OK Testing if puppet apply is finished : 10.16.46.104_glance.pp OK Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_api_nova.pp Testing if puppet apply is finished : 10.16.46.104_api_nova.pp OK Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_nova.pp Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_osclient.pp Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_horizon.pp Testing if puppet apply is finished : 10.16.46.104_nova.pp OK Testing if puppet apply is finished : 10.16.46.104_osclient.pp OK Testing if puppet apply is finished : 10.16.46.104_horizon.pp OK Applying /var/tmp/packstack/20130205-0955/manifests/10.16.46.104_postscript.pp Testing if puppet apply is finished : 10.16.46.104_postscript.pp Testing if puppet apply is finished : 10.16.46.104_postscript.pp OK [ DONE ] **** Installation completed successfully ****** (Please allow Installer a few moments to start up.....) Additional information: * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components. * To use the command line tools source the file /root/keystonerc_admin created on 10.16.46.104 * To use the console, browse to http://10.16.46.104/dashboard * The installation log file is available at: /var/tmp/packstack/20130205-0955/openstack-setup.log
You can also generate an answer file and use it on other systems
[root@rhc-06 ~]# packstack --gen-answer-file=answerfile
Be careful, if your system is subscribed to Red Hat Network’s classic entitlement packstack will register the systems via subscription-manager (certificate based entitlement). This can cause some issues if you already subscribed the system and added the OpenStack channels via RHN.