Com base na discussão com @ceejayoz, a conclusão é que o equivalente da Ansible ao R10K de Puppet é ansible-galaxy install -r requirements.yml
.
R10K
Em R10K é usado um arquivo Puppet. Um Puppetfile é uma definição de módulos (por exemplo, de Forçar Forquilhas ) que precisam ser montadas em um determinado ambiente, por exemplo o Puppetfile do ambiente de desenvolvimento poderia ter a seguinte aparência:
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'
Enquanto o Puppetfile de produção contém versões estáveis:
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'
O equivalente a r10k em ansible
Para montar funções (equivalentes aos módulos do Puppet) do equivalente do Puppetforge do Puppet em Ansible - Galaxy Ansible ou fontes personalizadas as funções ou fontes podem ser definidas em arquivos yml
(com base no link fornecido por @ceejayoz e this link ). O ambiente de desenvolvimento pode ter a seguinte aparência:
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
e pode ser executado emitindo sudo ansible-galaxy install -r development.yml
. Enquanto a produção poderia parecer:
production.yml
- src: geerlingguy.composer
version: 1.2.0
- src: geerlingguy.java
version: 1.1.1
e ser executado executando sudo ansible-galaxy install -r production.yml
. O resultado poderia ser o seguinte:
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.