Ansible 中的 r10k 相当于什么?

030*_*030 8 ansible r10k

可以使用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)

  • 非常感谢。我已经在考虑分叉 r10k 代码以使用 Ansible。我认为指出这些要求不仅限于来自 ansible-galaxy 的角色是有用的。如 [文档](http://docs.ansible.com/ansible/galaxy.html#advanced-control-over-role-requirements-files) 中所述,您可以添加自定义源。 (2认同)