5

Я пишу книгу для настройки среды разработки и построения конвейера для проекта. Я хотел бы как можно больше разделить playbook с реальной инфраструктурой и просто полагаться на группы, поэтому я мог бы настроить конвейер внутри локальной виртуальной машины, а также на голом оборудовании с той же командой, просто используя разные ограничители групп.Ansible, как добавить пользователя в группу, только если пользователь существует

Теперь проблема, с местными Vagrant ящиков мне нужно добавить пользователя бродяга в Docker группу, где, как с голыми серверами металла некоторый произвольный пользователь. Какова наилучшая практика для обработки таких вариаций в плейбуке, сохраняя ее как можно более абстрактной? Должен ли я использовать поведенческие параметры, переменные хоста, групповые переменные, условные обозначения или факты для такого рода вещей?

Возможно ли вообще или разумно сохранить плейлист полностью абстрактным, без каких-либо жестко заданных значений и адаптируемости к любой среде?

ответ

1

Чтобы ответить на ваш конкретный вопрос:

Используйте пользовательскую переменную, которая перезаписывает Vagrantfile. Например, это будет ubuntu, если в aws или vagrant, если вы находитесь в бродяге.


Более теоретический ответ:

я была такая же проблема с бродягой строит и я решил держать анзибль пьес где-то так, что все бродячие строит забрать его и выполнить его для установки сервера.

Например, сборник пьес выглядит следующим образом:

- hosts: all 
    tasks: 
    - name: remove apparmor 
     apt: name=apparmor purge=true state=absent 

, а затем каждый из моих беспризорных хранилищ Wget и запустить его с

box.vm.provision :ansible do |ansible| 
    ansible.playbook = 'vagrant_extra.yml' 
    ansible.sudo = true 
    ansible.limit = 'all' 
end 

Лучшее решение я думаю, было бы использовать пакер чтобы создать свой собственный бродячий образ, в котором есть все те вещи, которые поддерживаются там, так что

  1. вы не любите d, чтобы тратить время на настройку изображения самостоятельно, и
  2. Ваши коробки такие же, как и «prod».