Что эквивалентно r10k в Ansible?

Модули Puppet, такие как модули puppetforge, могут быть развернуты с использованием r10k

Вопрос

Что является эквивалентом этого инструмента в Ansible?

Попытка ответить на вопрос

Это Google Q&A было найдено, что не отвечает на вопрос

2 ответа

Основываясь на обсуждении с @ceejayoz, можно сделать вывод, что эквивалент Ansible R10K от Puppet равен 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'

В то время как 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'

Эквивалент r10k в ANSIBLE

Чтобы собрать роли (эквивалент модулей Puppet) из эквивалента Puppetforge Puppet в Ansible - Ansible Galaxy или пользовательских источниках, роли или источники могут быть определены в 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.

Подумайте, что ansible-galaxy - только половина ответа, потому что она ничего не делает с Ansible playbooks, которые являются синонимами ролевых модулей Puppet. Одним из преимуществ r10k является то, что вы можете управлять всеми аспектами каждой среды в отдельности.

Вы можете рассмотреть отдельные ветви для каждой среды со всеми ролями Ansible, задействованными через ansible-galaxy. Это позволит вам изолировать изменения в книгах, инвентаризации и ролях для каждой среды, не допуская их непреднамеренного включения в производственную среду и не дублируя логику ролей для каждой ветви.

Другие вопросы по тегам