天天看点

《Puppet实战手册》——1.9 利用Rake引导Puppet运行

本节书摘来自异步社区《puppet实战手册》一书中的第1章,第1.9节,作者:【英】john arundel著,更多章节内容可以访问云栖社区“异步社区”公众号查看

如果希望让新的服务器成为puppet基础设施的一部分,只需要在服务器上面运行几条命令就可以实现,但现在通过为rakefile添加新引导任务的方式使这一过程更加简单。

准备工作

参考如下步骤,为这个方面做一些准备。

1. 将下面这行添加至rakefile文件顶部。

<code>repo = '[email protected]:bitfield/cookbook.git'</code>

2. 将下面的任务添加至rakefile文件的任意位置。

操作步骤

读者需要配置一台新提供的服务器(这是一台可以登录,但没有安装puppet或做过任何配置变更的服务器)。如果使用ec2,创建一个新的ec2实例。在aws控制面板获取公网ip地址,就像下面这样:

<code>ec2-107-22-22-159.compute-1.amazonaws.com</code>

使用rake引导新服务器的步骤如下。

1. 在nodes.pp中为新管理的服务器主机添加节点声明。例如,如果使用cookbook-test作为主机名,参考配置如下:

2. 在自己主机的puppet仓库目录下运行如下命令(用新服务器ip地址替换client变量值,使用你希望用的主机名替换hostname变量值)。这条命令应该在同一行:

3. 读者将看到类似以下的输出。

工作原理

下面分解rake任务是如何工作。为了让机器运行puppet,需要给它设置主机名。

接下来,从puppet labs仓库下载并安装puppet和git软件包。

禁止ssh stricthostkeychecking选项,避免脚本克隆git仓库时发出提示消息。

从仓库检出配置清单:

<code>git clone #{repo} puppet</code>

最后,运行puppet:

这台新机器已经能够自动拉取并应用puppet的变更,不再需要像前面那样登录到机器进行交互操作。读者可以使用这个rake任务快速部署更多的新机器到puppet的管控中。

继续阅读