Qual é o equivalente de r10k no Ansible?

6

Módulos de fantoches como os de puppetforge podem ser implantados usando r10k .

Pergunta

Qual é o equivalente dessa ferramenta no Ansible?

Tente responder à pergunta

Este Q & A do Google foi encontrado e não responde à pergunta

    
por 030 09.07.2016 / 21:11

2 respostas

10

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.
    
por 27.07.2016 / 11:02
1

Pense que ansible-galaxy é apenas metade da resposta, porque não faz nada sobre os playbooks Ansible, que são sinônimos de módulos de papel Puppet. Um dos benefícios do r10k é que você pode gerenciar todos os aspectos de cada ambiente separadamente.

Você pode considerar ramificações separadas por ambiente com todos os papéis Ansible sendo puxados via ansible-galaxy. Isso permitiria que você isolasse as alterações na lista de reprodução, no inventário e na função por ambiente sem, inadvertidamente, deixá-los entrar em produção e não duplicar a lógica da função por ramificação.

    
por 23.08.2016 / 17:25

Tags