Best practice в написании Ansible Playbook?

Коллеги, здравствуйте.
Начал писать плейбуки с ансиблом, есть пару вопросов по best practice в написании плейбуков.

1. У меня плейбук на 250 строк (небольшой, да), однако сейчас смотрю на чужие плейбуки и вижу, что коллеги создают roles вместо одного сплошлого текста. Как вы счиатете, это нужно делать? Для примера покажу свою часть плейбука:
- name: STAGE 0.0.8 - Install prerequisites
      apt:     
        name: "{{items}}"
        #update_cache: yes
      vars:
        items:
          - apt-transport-https
          - ca-certificates
          - curl
          - software-properties-common
          - net-tools
    - name: STAGE 0.0.9 - Set swap to 1 value
      sysctl:
        name: vm.swappiness
        value: 1
        state: present          
  # ---------    
    - name: STAGE 0.1 - Add the user '' with a primary group of 'sudo and admin'
      user:
        name: r
        shell: /bin/bash
        groups: 
          - sudo 
        state: present
        password: '6$$.'
        createhome: yes

То есть логично вынести STAGE 0.0* и STAGE 1.* в разные roles или это вопрос моего личного восприятия? И это "не обязательно"

2. Как лучше поступить, если у меня для разной группы хостов разные условия в плейбуках? То есть: например хосты в одном сегменте дожны исполнять STAGE 5*, а в другом -- нет. Можно ли это сделать через "флаги" при запуске. Т.е. я понимаю, что сейчас все хосты пойдут из одного сегмента - я использую флаг --сегмент1, а из другого - --сегмент2, который минует пятый стейдж.
2.1 Или можно ли при наступлении пятого стейджа в консоли высвечивать что-то наподобие "yes if procced no if continue", который просто "перешагнет" стейдж 5
2.2 Или вообще под свою группу хостов иметь свой плейбук? Например под одну - плейбук1 с стейдж5, под другую - плейбук2 без стейджа5

3. Как бороться с hosts: в начале плейбука. Кажлый раз заменять, на какую группу хостов исполнять плейбук?

4. Бонусный. А почему топят за салт вместо ансибла? В чем их принципиальные различия и что для чего лучше использовать?

Спасибо большое за ответы!
  • Вопрос задан
  • 842 просмотра
Пригласить эксперта
Ответы на вопрос 1
Best Practices

  1. Если у вас плейбук не монолит, вы планируете его переиспользовать на множестве разных хостоах и плейбуках - дробите его на самостоятельные роли
  2. Для разных групп хостов лучше использовать отдельный плейбук, состоящий из импорта других плейбуков и ролей
  3. Никак. У каждой группы хостов свой плейбук.
  4. ??? Кто топит? Кого?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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