packstack

Install utility to deploy OpenStack on multiple hosts. This is the GitHub mirror for https://opendev.org/x/packstack.

  • 所有者: redhat-openstack/packstack
  • 平台:
  • 許可證: Apache License 2.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Packstack

Utility to install OpenStack on Red Hat based operating system. See
other branches for older OpenStack versions. Details on how to
contribute to Packstack may be found in the Packstack wiki at
https://wiki.openstack.org/wiki/Packstack Additional information
about involvement in the community around Packstack can be found at
https://openstack.redhat.com/Get_involved

This utility can be used to install OpenStack on a single or group of
hosts (over ssh).

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 install

Installation 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/modules

Option 1 (all-in-one)

$ packstack --allinone

This will install all OpenStack services 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-file
option in order for packstack to use the correct values for passwords
and other authentication credentials:

$ packstack --answer-file packstack-answers-<date>-<time>.txt

Option 2 (using answer file)

$ packstack --gen-answer-file=ans.txt

Then edit ans.txt as appropriate e.g.

  • set CONFIG_SSH_KEY to a public ssh key to be installed to remote machines

  • Edit the IP address to anywhere you want to install a piece of OpenStack on another server

  • Edit the 3 network interfaces to whatever makes sense in your setup

    $ packstack --answer-file=ans.txt

Option 3 (prompts for configuration options)

$ packstack

that's it, if everything went well you can now start using OpenStack

$ cd
$ . keystonerc_admin
$ nova list
$ swift list  # if you have installed swift

Config options

  • CONFIG_NOVA_COMPUTE_HOSTS :
    • A comma separated list of ip addresses on which to install nova compute
  • CONFIG_SWIFT_STORAGE_HOSTS :
    • A comma separated list of swift storage devices
      • 1.1.1.1: create a testing loopback device and use this for storage
      • 1.1.1.1/sdb: use /dev/sdb on 1.1.1.1 as a storage device

Logging

The location of the log files and generated puppet manifests are in the
/var/tmp/packstack directory under a directory named by the date in which
Packstack was run and a random string (e.g. /var/tmp/packstack/20131022-204316-Bf3Ek2).
Inside, we find a manifest directory and the openstack-setup.log file; puppet
manifests and a log file for each one are found inside the manifest directory.

Debugging

To make Packstack write more detailed information into the log file you can use the -d switch:

$ packstack -d --allinone

When upgrading to a new OpenStack release and reusing old answerfile
it is useful to know if any Packstack option was removed. If answerfile is
written by hand it is possible to make a mistake. The --validate-answer-file
switch allows checking if any provided option is not recognized by Packstack.

$ packstack --validate-answer-file=ans.txt

Developing

To ease development of Packstack, it can be
useful to install from git such that updates to the git repositories are
immediately effective without reinstallation.

To do this, start with a minimal CentOS 7 installation. Then remove any
relevant packages that might conflict:

$ yum -y erase openstack-packstack*,puppet-*

Disable SELinux by 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-setuptools

And install RDO:

$ yum -y install https://www.rdoproject.org/repos/rdo-release.rpm
$ yum -y update

Install Puppet modules as described above.

Then we get Packstack:

$ 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 develop

And we're done. Changes to the contents of Packstack source repository
are picked up by the Packstack
executable without further intervention, and Packstack is ready to install.

Puppet Style Guide

IMPORTANT https://docs.puppetlabs.com/guides/style_guide.html

Please, respect the Puppet Style Guide as much as possible !

Running local Puppet-lint tests

It assumes that both bundler as well as rubygems (and ruby) are already
installed on the system. If not, run this command:

$ sudo yum install rubygems rubygem-bundler ruby ruby-devel -y

Go into the Packstack root directory.

$ cd packstack/

A Rakefile contains all you need to run puppet-lint task automatically over
all the puppet manifests included in the Packstack project.

$ ls -l packstack/puppet/templates/

and

$ ls -l packstack/puppet/modules/

The default puppet-lint pattern for .pp files 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 lint

Packstack integration tests

Packstack 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:, -, scenario000, scenario001, scenario002, scenario003, :--------------:, :-----------:, :-----------:, :-----------:, :------------:, keystone, FERNET, FERNET, FERNET, FERNET, glance, file, swift, file, nova, X, X, X, X, neutron, X, X, X, X, neutron plugin, ovn, ovn, ovs, ovn, vpnaas, cinder, X, X, ceilometer, X, X, aodh, X, X, gnocchi, X, X, panko, X, heat, X, swift, X, X, sahara, X, trove, X, horizon, X, manila, X, SSL, X, To run these tests:

export SCENARIO="scenario001"
./run_tests.sh

run_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.sh

You can also choose to disable repository management entirely:

<setup your own custom repositories here>
export MANAGE_REPOS="false"
./run_tests.sh

主要指標

概覽
名稱與所有者redhat-openstack/packstack
主編程語言Python
編程語言Ruby (語言數: 4)
平台
許可證Apache License 2.0
所有者活动
創建於2013-01-11 22:25:09
推送於2025-04-25 07:29:20
最后一次提交2025-04-01 12:19:22
發布數87
最新版本名稱26.0.0.0rc1 (發布於 2025-04-01 10:49:32)
第一版名稱essex-eol (發布於 2016-01-28 11:48:21)
用户参与
星數446
關注者數68
派生數177
提交數2.6k
已啟用問題?
問題數0
打開的問題數0
拉請求數1
打開的拉請求數0
關閉的拉請求數22
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?