安装OpenStack的实用工具
项目描述
此实用工具可用来在基于Red Hat的操作系统上安装OpenStack。有关如何为Packstack做出贡献的详细信息,请参阅https://wiki.openstack.org/wiki/Packstack。有关Packstack社区参与的更多信息,请参阅https://openstack.redhat.com/Get_involved
此实用工具可用于在单个或一组主机(通过ssh)上安装OpenStack。
此实用工具仍处于早期阶段,许多配置选项尚未添加。
packstack的安装
$ yum install -y git $ git clone git://github.com/openstack/packstack.git $ cd packstack && sudo python setup.py install
Puppet模块的安装(如果从源运行packstack,则必需)
$ 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
选项1(一站式)
$ packstack --allinone
这将将在单个主机上安装所有OpenStack服务,而无需提示任何配置信息。这将生成一个“answers”文件(packstack-answers-<date>-<time>.txt),其中包含用于安装的所有值。
如果您需要重新运行packstack,则必须使用--answer-file选项,以便packstack使用正确的密码和其他认证凭据值
$ packstack --answer-file packstack-answers-<date>-<time>.txt
选项2(使用答案文件)
$ packstack --gen-answer-file=ans.txt
然后编辑ans.txt,例如。
将CONFIG_SSH_KEY设置为要安装到远程机器上的公钥ssh密钥
编辑IP地址,以便在另一台服务器上安装OpenStack的一部分
根据您的配置情况编辑3个网络接口
$ packstack –answer-file=ans.txt
选项3(提示配置选项)
$ packstack
这就完成了,如果一切顺利,您现在可以开始使用OpenStack了
$ cd $ . keystonerc_admin $ nova list $ swift list # if you have installed swift
配置选项
CONFIG_NOVA_COMPUTE_HOSTS :
安装nova compute的ip地址列表,以逗号分隔
CONFIG_SWIFT_STORAGE_HOSTS :
以逗号分隔的swift存储设备列表
1.1.1.1: 创建一个测试环回设备并用于存储
1.1.1.1/sdb: 使用/dev/sdb作为1.1.1.1上的存储设备
日志记录
日志文件和生成的puppet配置文件的位置在/var/tmp/packstack目录下,目录名称由运行Packstack的日期和一个随机字符串(例如/var/tmp/packstack/20131022-204316-Bf3Ek2)命名。内部,我们可以找到一个配置文件目录和openstack-setup.log文件;puppet配置文件和每个配置文件的日志文件都位于配置文件目录内。
调试
要使Packstack将更详细的信息写入日志文件,您可以使用-d开关
$ packstack -d --allinone
当升级到新的OpenStack版本并重用旧的answerfile时,了解是否有任何Packstack选项被删除是有用的。如果answerfile是手工编写的,则可能出错。使用--validate-answer-file开关可以检查提供的选项是否不被Packstack识别。
$ packstack --validate-answer-file=ans.txt
开发
为了简化Packstack的开发,可以从git安装,这样git存储库的更新可以立即生效,而无需重新安装。
为此,首先进行最小化的CentOS 7安装。然后删除可能冲突的任何相关软件包
$ yum -y erase openstack-packstack*,puppet-*
通过将/etc/sysconfig/selinux中的“enforcing”更改为“permissive”来禁用SELinux,然后重启以允许服务更改生效并切换网络。然后安装软件包
$ yum -y install git python-setuptools
安装RDO
$ yum -y install https://www.rdoproject.org/repos/rdo-release.rpm $ yum -y update
按照上面所述安装Puppet模块。
然后我们得到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
这就完成了。对Packstack源存储库内容的更改将自动由Packstack可执行文件获取,而无需进一步干预,Packstack已准备好安装。
Puppet风格指南
重要 https://docs.puppetlabs.com/guides/style_guide.html
请尽可能尊重Puppet风格指南!
运行本地Puppet-lint测试
它假设系统中已经安装了bundler以及rubygems(和ruby)。如果没有,运行此命令
$ sudo yum install rubygems rubygem-bundler ruby ruby-devel -y
进入Packstack根目录。
$ cd packstack/
一个Rakefile包含您需要自动在Packstack项目中包含的所有puppet配置文件上运行puppet-lint任务的所有内容。
$ ls -l packstack/puppet/templates/
并且
$ ls -l packstack/puppet/modules/
默认的puppet-lint模式为.pp文件是**/*.pp。因此,无需进入这些目录即可运行puppet-lint!
$ mkdir vendor $ export GEM_HOME=vendor $ bundle install $ bundle exec rake lint
Packstack集成测试
Packstack在OpenStack门控中进行集成测试,并提供了一种方法,如果您愿意,可以在您的环境中重现这些测试。
场景000仅安装packstack allinone,不运行任何测试。这是当前可用的测试矩阵
场景000 |
场景001 |
场景002 |
场景003 |
|
---|---|---|---|---|
keystone |
FERNET |
FERNET |
FERNET |
FERNET |
glance |
file |
swift |
file |
|
nova |
X |
X |
X |
X |
neutron |
X |
X |
X |
X |
neutron插件 |
ovn |
ovn |
ovs |
ovn |
vpnaas |
||||
cinder |
X |
X |
||
ceilometer |
X |
X |
||
aodh |
X |
X |
||
gnocchi |
X |
X |
||
heat |
X |
|||
swift |
X |
X |
||
sahara |
X |
|||
trove |
X |
|||
horizon |
X |
|||
manila |
X |
|||
SSL |
X |
运行这些测试
export SCENARIO="scenario001" ./run_tests.sh
run_tests.sh 会负责安装所需的依赖项,配置 packstack 按照上述矩阵运行,并运行完整的安装过程。如果安装成功,tempest 也将运行烟测试。
默认情况下,run_tests.sh 将设置 delorean (RDO Trunk) 仓库。有两种方法可以覆盖默认仓库
export DELOREAN="http://someotherdomain.tld/delorean.repo" export DELOREAN_DEPS="http://someotherdomain.tld/delorean-deps.repo" ./run_tests.sh
您还可以选择完全禁用仓库管理
<setup your own custom repositories here> export MANAGE_REPOS="false" ./run_tests.sh
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。