发布于 2016-07-27 09:02:50
基于与@ceejayoz的讨论,得出的结论是,Ansible的等效于木偶的R10K是ansible-galaxy install -r requirements.yml。
在R10K中,使用了一个Puppetfile。Puppetfile是需要在特定环境中组装的模块(例如来自木偶锻造的模块)的定义,例如开发环境的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'而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'中的等价
为了在Ansible - 不稳定星系或自定义源中组装来自木偶的木偶模块的角色(等效于木偶的模块),角色或源可以在yml文件中定义(基于@ceejayoz提供的链接和此链接)。开发环境可以如下所示:
development.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它可以通过发出sudo ansible-galaxy install -r development.yml来运行。虽然制作看起来可能是:
production.yml
- src: geerlingguy.composer
version: 1.2.0
- src: geerlingguy.java
version: 1.1.1并通过执行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.发布于 2016-08-23 15:25:28
想想看,ansible-galaxy仅仅是答案的一半,因为它对Ansible的游戏没有任何作用,因为它是木偶角色模块的同义词。r10k的好处之一是您可以单独管理每个环境的所有方面。
您可能会考虑每个环境中的分支,所有的不可接受的角色都是通过ansible-galaxy被拉进来的。这将使您能够隔离每个环境中的剧本、库存和角色更改,而不会无意中让它们滑到生产中,而不会重复每个分支的角色逻辑。
https://serverfault.com/questions/788930
复制相似问题