Package: packstack
Utility to installOpenStackonRed Hatbased operating system.
See other branches for olderOpenStackversions. Details on how to
contribute toPackstackmay be found in thePackstackwiki athttps://wiki.openstack.org/wiki/PackstackAdditional information about
involvement in the community aroundPackstackcan be found athttps://openstack.redhat.com/Get_involvedThis utility can be used to installOpenStackon a single or group
of hosts (overssh).This utility is still in the early stages, a lot of the configuration
options have yet to be added.Installation of packstack:$ yum install -y git
$ git clone git://github.com/openstack/packstack.git
$ cd packstack && sudo python setup.py installInstallation of Puppet modules (REQUIRED if running packstack from source):$ export GEM_HOME=/tmp/somedir
$ gem install r10k
$ sudo -E /tmp/somedir/bin/r10k puppetfile install -v
$ sudo cp -r packstack/puppet/modules/packstack /usr/share/openstack-puppet/modulesOption 1 (all-in-one)$ packstack --allinoneThis will install allOpenStackservices on a single host without
prompting for any configuration information. This will generate an
“answers” file (packstack-answers-<date>-<time>.txt) containing all
the values used for the install.If you need to re-run packstack, you must use the--answer-fileoption in order for packstack to use the correct values for passwords
and other authentication credentials:$ packstack --answer-file packstack-answers-<date>-<time>.txtOption 2 (using answer file)$ packstack --gen-answer-file=ans.txtThen editans.txtas appropriate e.g.setCONFIG_SSH_KEYto a public ssh key to be installed to remote
machinesEdit the IP address to anywhere you want to install a piece of
OpenStack on another serverEdit the 3 network interfaces to whatever makes sense in your setup$ packstack –answer-file=ans.txtOption 3 (prompts for configuration options)$ packstackthat’s it, if everything went well you can now start using OpenStack$ cd
$ . keystonerc_admin
$ nova list
$ swift list  # if you have installed swiftConfig optionsCONFIG_NOVA_COMPUTE_HOSTS:A comma separated list of ip addresses on which to install nova
computeCONFIG_SWIFT_STORAGE_HOSTS:A comma separated list of swift storage devices1.1.1.1: create a testing loopback device and use this for
storage1.1.1.1/sdb: use/dev/sdbon1.1.1.1as a storage
deviceLoggingThe location of the log files and generated puppet manifests are in the/var/tmp/packstackdirectory under a directory named by the date in
whichPackstackwas run and a random string
(e.g./var/tmp/packstack/20131022-204316-Bf3Ek2). Inside, we find a
manifest directory and theopenstack-setup.logfile; puppet
manifests and a log file for each one are found inside the manifest
directory.DebuggingTo makePackstackwrite more detailed information into the log file
you can use the-dswitch:$ packstack -d --allinoneWhen upgrading to a new OpenStack release and reusing old answerfile it
is useful to know if anyPackstackoption was removed. If answerfile
is written by hand it is possible to make a mistake. The--validate-answer-fileswitch allows checking if any provided option
is not recognized byPackstack.$ packstack --validate-answer-file=ans.txtDevelopingTo ease development ofPackstack, it can be useful to install fromgitsuch that updates to the git repositories are immediately
effective without reinstallation.To do this, start with a minimalCentOS 7installation. Then remove
any relevant packages that might conflict:$ yum -y erase openstack-packstack*,puppet-*DisableSELinuxby changing “enforcing” to “permissive” in/etc/sysconfig/selinux, then reboot to allow service changes to take
effect and swap over networking. Then install packages:$ yum -y install git python-setuptoolsAnd installRDO:$ yum -y install https://www.rdoproject.org/repos/rdo-release.rpm
$ yum -y updateInstall Puppet modules as describedabove.Then we getPackstack:$ yum install -y python-crypto python-devel libffi-devel openssl-devel gcc-c++
$ git clone https://github.com/openstack/packstack
$ cd packstack
$ python setup.py developAnd we’re done. Changes to the contents ofPackstacksource
repository are picked up by thePackstackexecutable without further
intervention, andPackstackis ready to install.Puppet Style GuideIMPORTANThttps://docs.puppetlabs.com/guides/style_guide.htmlPlease, respect the Puppet Style Guide as much as possible !Running local Puppet-lint testsIt assumes that bothbundleras well asrubygems(andruby)
are already installed on the system. If not, run this command:$ sudo yum install rubygems rubygem-bundler ruby ruby-devel -yGo into thePackstackroot directory.$ cd packstack/ARakefilecontains all you need to run puppet-lint task
automatically over all the puppet manifests included in thePackstackproject.$ ls -l packstack/puppet/templates/and$ ls -l packstack/puppet/modules/The default puppet-lint pattern for.ppfiles is**/*.pp. So
there is no need to go inside those directories to run puppet-lint !$ mkdir vendor
$ export GEM_HOME=vendor
$ bundle install
$ bundle exec rake lintPackstack integration testsPackstack is integration tested in the OpenStack gate and provides the
means to reproduce these tests on your environment if you wish.Scenario000 installs packstack allinone only and doesn’t run any tests.
This is the current matrix of available tests:scenario000scenario001scenario002scenario003keystoneFERNETFERNETFERNETFERNETglancefileswiftfilenovaXXXXneutronXXXXneutron pluginovnovnovsovnvpnaascinderXXceilometerXXaodhXXgnocchiXXheatXswiftXXsaharaXtroveXhorizonXmanilaXSSLXTo run these tests:export SCENARIO="scenario001"
./run_tests.shrun_tests.sh will take care of installing the required dependencies,
configure packstack to run according to the above matrix and run the
complete installation process. If the installation is successful,
tempest will also run smoke tests.By default, run_tests.sh will set up delorean (RDO Trunk) repositories.
There are two ways of overriding default repositories:export DELOREAN="http://someotherdomain.tld/delorean.repo"
export DELOREAN_DEPS="http://someotherdomain.tld/delorean-deps.repo"
./run_tests.shYou can also choose to disable repository management entirely:<setup your own custom repositories here>
export MANAGE_REPOS="false"
./run_tests.sh