Назад | Перейти на главную страницу

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

Марионеточные модули, такие как из марионеточной кузницы может быть развернут с использованием r10k.

Вопрос

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

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

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

Основываясь на обсуждении с @ceejayoz, можно сделать вывод, что Ansible, эквивалент R10K Puppet, является ansible-galaxy install -r requirements.yml.

R10K

В 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'

Эквивалент r10k в анзибле

Чтобы собрать роли (эквивалент модулей 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, которые являются синонимами ролевых модулей Puppet. Одним из преимуществ r10k является то, что вы можете управлять всеми аспектами каждой среды отдельно.

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