这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 chake,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
chake - 与厨师的无服务器配置
引言
chake 是一种工具,可帮助您管理多个主机,而无需厨师
服务器。 配置在本地目录中管理,该目录应该在
版本控制 混帐(1) 或其他任何东西。 配置通常通过 rsync 部署
通过 SSH,并通过调用应用 厨师独奏(1) 在每个主机上通过 SSH。
创作 “ 存储库
$ chake 初始化
[创建] 节点.yaml
[ mkdir] 节点.d/
[创建] config.rb
[ mkdir] 配置/角色
[ mkdir] 食谱/基础知识/食谱/
[创建]cookbooks/basics/recipes/default.rb
[创建] Rakefile
创建文件的简要说明:
· nodes.yaml:您将在何处列出您将管理的主机,以及要使用的配方
适用于他们中的每一个。
·nodes.d:与nodes.yaml格式相同的多个文件的目录。 所有文件
其中匹配的 *.yaml 将被添加到节点列表中。
· config.rb:包含chef-solo 配置。 你可以修改它,但通常你
不需要。
· config/roles: 目录是你可以放置你的角色定义的地方。
· 食谱:您将存储食谱的目录。 一个名为的示例食谱
“basics”已创建,但可以随意删除它并添加实际的食谱。
· Rakefile:只包含 require 'chake' 行。 你可以用其他任务来扩充它
特定于您的内部结构。
创建存储库后,您可以调用 chake 或 rake,因为它们完全
当量。
管理方式 节点
在您创建存储库之后,nodes.yaml 的内容如下:
host1.mycompany.com:
运行列表:
- 配方[基础]
您可以使用 rake 节点列出您的主机:
$ 耙节点
host1.mycompany.com SSH
要添加更多节点,只需附加到nodes.yaml:
host1.mycompany.com:
运行列表:
- 配方[基础]
host2.mycompany.com:
运行列表:
- 食谱[基础]
chake 现在知道你的新节点了:
$ 耙节点
host1.mycompany.com SSH
host2.mycompany.com SSH
准备工作 节点 TO BE 管理
使用 chake 管理节点的初始要求很少:
· 节点必须可通过 SSH 访问。
· 您连接到节点的用户必须是 root,或者被允许运行 sudo(在
在这种情况下,必须安装 sudo)。
A 注意 on 密码 提示: 每次 chake 在节点上调用 ssh 时,您可能需要
输入您的密码; 每次 chake 在节点上调用 sudo 时,您可能需要输入
在您的密码中。 对于管理一两个节点这可能没问题,但对于更大的
节点数量不切实际。 为避免密码提示,您可以:
· 配置基于SSH 密钥的认证。 这比使用密码更安全。
在此过程中,您可能还想禁用密码身份验证
完全,并且只允许基于密钥的身份验证
· 为您用来连接节点的用户配置无密码 sudo 访问。
检查 连通性 AND 初始 主办方 设置
要检查主机是否正确配置,可以使用检查任务:
$ 佣金支票
这将在每个主机上运行 sudo true 命令。 如果没有你就可以通过
密码,你确定
· 您可以通过 SSH 访问每个主机; 和
· 您所连接的用户正确设置了无密码 sudo。
$ 佣金支票
,申请 烹饪书
要将配置应用于所有节点,请运行
$ rake收敛
要将配置应用于单个节点,请运行
$ rake 收敛:$NODE
要在所有节点上应用单个配方,请运行
$ rake 申请[myrecipe]
要在特定节点上应用单个配方,请运行
$ rake 申请:$NODE[myrecipe]
如果您未在命令行中通知配方,系统将提示您输入。
要在所有节点上运行 shell 命令,请运行
$ rake 运行[命令]
如果要运行的命令包含空格或其他特殊字符,请执行
壳,你必须引用它们。
要在特定节点上运行 shell 命令,请运行
$ rake run:$NODE[命令]
如果你没有在命令行中通知一个命令,你会被提示输入一个。
要检查现有任务,请运行
$ 耙子 -T
写作 烹饪书
由于 chake 实际上是 Chef Solo 的包装器,因此您应该阅读 [chef 文档](
)。
具体看【Chef Solo 文档】(
Chef_solo.html>)。
“ NODE 自举 疗程开始前
当 chake 第一次作用于一个节点时,它必须引导它。 引导
过程包括执行以下操作:
· 安装 Chef 和 rsync
· 禁用厨师客户端守护进程
· 设置主机名
NODE 网址
node.yaml 中表示的哈希中的键是节点 URL。 的所有组件
URL 但主机名是可选的,所以只列出主机名是最简单的形式
指定您的节点。 以下是节点 URL 的所有组件:
[后端://][用户名@]主机名[:端口][/路径]
· backend:后端用于连接到主机。 ssh 或本地(默认:ssh)
· username:要连接的用户名(默认:本地工作站上的用户名)
· 主机名:要连接的主机名(默认: 没有)
· port:要连接的端口号(默认:22)
· /path:节点上存储食谱的位置(默认:/var/tmp/chef.$USERNAME)
额外服务 功能
# 挂钩
您可以定义将在引导节点之前执行的 rake 任务,之前
将配置管理内容上传到节点,并在收敛之前。 去做这个,
你只需要增强相应的任务:
· bootstrap_common:在引导节点之前执行(即使节点已经
自举)
·upload_common:在上传内容到节点之前执行
·convergence_common:在收敛之前执行(即运行厨师)
示例:
任务:bootstrap_common 做
sh './scripts/pre-bootstrap-checks'
结束
# ENCRYPTED FILES
任何以匹配结尾的文件 .gpg 和 .asc 将在被发送到之前用 GnuPG 解密
节点。 您可以使用它们来存储密码和其他敏感信息(SSL 密钥、
等)与其余配置一起在存储库中。
# 存储库本地 SSH的 配置
如果您需要特殊的 SSH 配置参数,您可以创建一个名为 .ssh_config 的文件
(或您在 $CHAKE_SSH_CONFIG 环境变量中的任何文件名,请参见下文
有关详细信息)在存储库的根目录中,并且在调用 ssh 时 chake 将使用它。
# 记录 IN TO A 主办方
要轻松登录到您的主机之一,只需运行 rake login:$HOSTNAME。 这会
自动使用上述存储库本地 SSH 配置,因此您不必
一直输入 -F .ssh_config 。
# 跑步 全部 SSH的 召唤 与 一些 字首 指挥
有时,您还需要或需要在 SSH 调用前加上一些前缀
命令以便例如通过某些中央出口节点将其隧道化。 你可以这样做
在您的环境中设置 $CHAKE_SSH_PREFIX。 例子:
CHAKE_SSH_PREFIX=tsocks rake 收敛
以上将使对所有主机的所有 SSH 调用都称为 tsocks ssh [...]
# 收敛 局部 主办方
如果你想用 chake 管理你的本地工作站,你可以声明一个本地节点,如
这在nodes.yaml 中:
本地://thunderbolt:
运行列表:
- 角色[工作站]
要将配置应用到本地主机,您可以使用常规的 rake
converse:thunderbolt,或特殊目标耙本地。
收敛所有节点时,chake 会跳过用 local:// 声明的节点
后端并且其主机名与声明中的主机名不匹配。 例如:
本地://桌面:
运行列表:
- 角色[工作站]
本地://笔记本电脑:
运行列表:
- 角色[工作站]
当您在台式机上运行 rake 融合时,笔记本电脑将被跳过,反之亦然。
环境 变数
· $CHAKE_SSH_CONFIG:本地SSH配置文件。 默认为 .ssh_config。
· $CHAKE_SSH_PREFIX:给 SSH(和 SSH 上的 rsync)调用添加前缀的命令。
· $CHAKE_RSYNC_OPTIONS:传递给 rsync 的额外选项。 有用,例如排除大
文件上传到每个服务器。
· $CHAKE_NODES:包含要管理的服务器列表的文件。 默认值:nodes.yaml。
· $CHAKE_NODES_D:包含要管理的节点定义文件服务器的目录。
默认值:nodes.d。
· $CHAKE_TMPDIR:用来存放临时缓存文件的目录。 默认值:tmp/chake。
· $CHAKE_CHEF_CONFIG:Chef 配置文件,相对于存储库的根目录。
默认值:config.rb。
使用 onworks.net 服务在线使用 chake