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 配置文件
  • solo.rb- chef-solo 配置文件(更多信息
  • Cheffile- librarian 菜谱列表(更多信息
  • nodes/node1.json- chef-solo 属性文件,它覆盖了单个菜谱中的所有默认属性,针对特定节点(更多信息
  • roles/*- chef 角色文件(更多信息
  • 使用 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 仓库。