本节书摘来自异步社区《puppet实战手册》一书中的第1章,第1.6节,作者:【英】john arundel著,更多章节内容可以访问云栖社区“异步社区”公众号查看
人们希望可以尽量简单和简单地将puppet配置应用到主机上,因此,通常会写一个脚本,它包含puppet apply命令和所需要的参数。要部署这个脚本到需要它的地方,除了puppet,还有什么更好的工具吗?
操作步骤
具体步骤如下。
1. 在puppet仓库目录中创建puppet模块必需的目录。
2. 参照下面的内容,创建modules/puppet/files/papply.sh文件,sudo puppet apply命令应该全部写在同一行中(修改/home/ubuntu/puppet目录为puppet仓库所在的目录),内容如下:
3. 创建modules/puppet/manifests/init.pp文件,内容如下:
4. 修改manifests/node.pp文件,内容如下:
5. 应用这些修改。
6. 测试脚本是否工作正常。
现在,当需要运行puppet时,只需要简单运行papply即可。将来需要应用puppet变更时,也只需要运行papply而不是运行完整的puppet apply命令。
工作原理
可以看到,在一台机器上运行puppet和应用指定的清单文件,只需要运行puppet apply命令。
<code>puppet apply manifests/site.pp</code>
使用模块(如刚刚创建的puppet模块)时,还需要告诉puppet去哪里搜索模块,使用modulepath参数指定模块搜索目录。
为了使用root权限运行puppet,必须在命令前使用sudo。
最后,通过添加$*参数,任何传递给papply的额外参数都会传递给puppet。
由于需要输入太多字符,可以把它们写进一个脚本以简化操作。同时,添加一个puppet file资源,用来部署papply脚本到/usr/local/bin目录并使其执行。
最后,需要在cookbook节点声明中包括include puppet:
读者可以在puppet管理其他任何节点中使用同样的方法来部署papply脚本。