我正在创建木偶配置结构
puppet
│ ├── data
│ │ └── common.yaml
│ ├── hiera.yaml
│ ├── manifests
│ │ └── site.pp
│ ├── modules
│ │ ├── accessories
│ │ │ └── manifests
│ │ │ └── init.pp
│ │ ├── nginx
│ │ │ ├── manifests
│ │ │ │ ├── config.pp
│ │ │ │ ├── init.pp
│ │ │ │ └── install.pp
│ │ │ └── templates
│ │ │ └── vhost_site.erb
│ │ ├── php
│ │ │ ├── manifests
│ │ │ │ ├── config.pp
│ │ │ │ ├── init.pp
│ │ │ │ └── install.pp
│ │ │ └── templates
│ │ │ ├── php.ini.erb
│ │ │ └── www.conf.erb
│ │ └── site
│ │ └── manifests
│ │ ├── database.pp
│ │ ├── init.pp
│ │ └── webserver.pp
│ └── Puppetfile
现在我只有一台服务器,所以我有时会通过运行来更新它:
sudo puppet apply --hiera_config=hiera.yaml --modulepath=./modules manifests/site.pp
此时我需要使用一些外部模块,例如我在下一行添加了Puppetfile。
forge "http://forge.puppetlabs.com"
mod 'puppetlabs-mysql', '3.10.0'
......当然它不起作用。 我尝试在'apply'(Configuration Reference)的命令设置中找到配置它的东西但是不成功。
使用Puppetfile在独立模式下自动配置puppet是真的,还是只能用'puppet module install'???
答案 0 :(得分:1)
木偶服务器或客户端代码不会解释或读取Puppetfiles。他们在那里帮助其他工具有效地部署正确的木偶模块。
在您的情况下,为了利用您编写的Puppetfile,您需要安装和配置r10k。 HERE是Puppet Enterprise文档的基础知识。 HERE是另一个很棒的资源,r10k GitHub页面。
安装并配置后,r10k
将读取您的Puppetfile并下载+安装已定义的条目。在您的情况下,它会安装3.10.0
的版本puppetlabs-mysql
。这将安装到您的modules
目录中,然后您可以执行puppet agent运行并利用新安装的模块。
总之,客户端不使用Puppetfiles,代码部署软件(r10k)会使用它们来下载和构建适当的模块供puppet服务器或代理使用。您可以选择配置r10k以按照Puppetfile中的定义配置模块,或者手动下载模块并消除对Puppetfile的需要。