SDB:OpenStack:Chef
本文档描述了在 openSUSE 上使用 OBS 包和一组 Chef 菜谱(通过 soksolok,即 SUSE OpenStack knife-solo kitchen)捆绑在一起的方式,设置单节点机器运行 OpenStack。
准备工作
此设置假定有两个机器可用:工作站机器(可以运行任何操作系统)和节点机器(OpenStack 将被安装和运行在上面)。这两个机器的要求如下:
工作站
- 能够通过 ssh 连接到节点机器
节点
- 已安装 SUSE 发行版。我们已经在 openSUSE 12.3 和 SLES 11SP3 上测试了 chef 菜谱。
- 可以连接到互联网(特别是 OBS)
- 正在运行 sshd 并且可以从工作站机器连接
这两个机器都可以虚拟化。
设置
如果准备工作已完成,您可以在工作站上执行以下步骤。该设置使用 knife-solo,它将在目标节点上安装 chef gem 和chef-solo以及下载合适的菜谱并调用chef-solo包含的配置文件和属性文件。
- 安装一些依赖项
# zypper addrepo obs://devel:languages:ruby:extensions/openSUSE_12.3 "Ruby extensions" # zypper install rubygem-knife-solo rubygem-librarian # gem install librarian-chef
确保您使用的是这些软件包的最新版本(rubygem-knife-solo >= 0.3.0 且 rubygem-librarian >= 0.1.1-6.1)
- 克隆我们的示例 knife-solo 目录(kitchen)
$ git clone git://github.com/SUSE-Cloud/soksolok.git $ cd soksolok
- 如果您使用的是带有 SLES 的节点,请确保已配置相关的 SPx 和 SDK 安装源。
- 在节点上引导 chef-solo。这将从 OBS 在目标机器上安装 chef
$ knife bootstrap --template-file bootstrap.suse.erb --user root your-node-name
- 确保nodes/中的节点文件名node1.json(默认情况下)与您的节点机器的主机名匹配,因此您可能需要重命名它。
- (可选)修改任何 knife-solo 配置文件
- 使用 knife solo cook 部署
$ knife solo cook root@your-node-name
说明
- 在 openSUSE 12.3 上使用 postgresql 部署时,您可能会受到 bug #809420 的影响。解决方法是运行sysctl --system.
- chef 需要在 openSUSE 12.3 上应用以下补丁,否则组提供程序将因系统范围内的打包切换到 shadow-utils 而失败:CHEF-4015。此补丁已应用于 systems:management chef 仓库。