可以使用r10k部署像puppetforge这样的 Puppet 模块。
题
这个工具在 Ansible 中的等价物是什么?
尝试回答问题
发现这个谷歌问答没有回答问题
030*_*030 11
根据与@ceejayoz 的讨论,结论是 Ansible 相当于 Puppet 的 R10K 是ansible-galaxy install -r requirements.yml.
R10K
在R10K 中使用了 Puppetfile。一个Puppetfile是模块的定义(例如,从Puppetforge)那需要在一定的环境中进行组装,如开发环境可以看看如下的Puppetfile:
mod 'garethr/docker', '5.3.0'
mod 'unibet/vagrant', '0.2.1'
mod 'jenkins',
:git => 'https://github.com/jenkinsci/puppet-jenkins',
:ref => 'master'
mod 'jdk_oracle',
:git => 'https://github.com/schrepfler/puppet-jdk_oracle.git',
:ref => 'master'
Run Code Online (Sandbox Code Playgroud)
虽然 Production Puppetfile 包含稳定版本:
mod 'garethr/docker', '5.2.0'
mod 'unibet/vagrant', '0.2.0'
mod 'schrepfler/puppet-jdk_oracle', '0.2.0'
mod 'rtyler/jenkins', '1.6.1'
Run Code Online (Sandbox Code Playgroud)
相当于ansible中的r10k
为了从 Ansible - Ansible Galaxy或自定义源中的Puppet 的 Puppetforge 等效项中组装角色(等效于 Puppet 的模块),可以在yml文件中定义角色或源(基于@ceejayoz和此链接提供的链接)。开发环境可能如下所示:
开发.yml
- src: geerlingguy.composer
version: 1.3.0
- src: geerlingguy.java
version: 1.2.1
- src: bennojoy.mysql
- src: https://github.com/ANXS/postgresql.git
version: master
Run Code Online (Sandbox Code Playgroud)
它可以通过发行sudo ansible-galaxy install -r development.yml. 虽然生产可能看起来像:
生产.yml
- src: geerlingguy.composer
version: 1.2.0
- src: geerlingguy.java
version: 1.1.1
Run Code Online (Sandbox Code Playgroud)
并通过执行运行sudo ansible-galaxy install -r production.yml。结果可能如下所示:
user@host ~ $ sudo ansible-galaxy install -r development.yml
- geerlingguy.composer is already installed, skipping.
- downloading role 'java', owned by geerlingguy
- downloading role from https://github.com/geerlingguy/ansible-role-java/archive/1.2.1.tar.gz
- extracting geerlingguy.java to /etc/ansible/roles/geerlingguy.java
- geerlingguy.java was installed successfully
- bennojoy.mysql is already installed, skipping.
Run Code Online (Sandbox Code Playgroud)