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

Модули Puppet, подобные модулям puppetforge , можно было развернуть с помощью r10k .

Вопрос

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

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

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

6
задан 9 July 2016 в 22:11
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'

В то время как рабочий 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.
10
ответ дан 3 December 2019 в 00:12

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

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

1
ответ дан 3 December 2019 в 00:12

Теги

Похожие вопросы