Arhn - архитектура программирования

Ansible — как контролировать порядок хостов при запуске playbook

Предположим, что мы определили две машины в нашем файле инвентаризации:

[db-server-preprod] 172.16.0.1 172.16.0.2

Если я запускаю плейбук для этой группы, он будет работать одновременно на обеих машинах, если серийный номер равен 0, или последовательно, если равен 1, и порядок, кажется, тот, в котором IP-адреса определены в группе.

Но вопрос в том, могу ли я контролировать порядок выполнения плейбука на определенных машинах?

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

Мои идеи на данный момент:

  • создавать разные имена групп, в которых порядок IP-адресов обратный и основанный на потребностях, запускаемых на том или ином хосте, но недостатком является то, что я думаю, что мне нужно будет дублировать group_vars, поэтому будет по одному для каждого варианта db-server-preprod* + все остальные среды .
  • разделите установку на две разные роли - одну для главного и для резервных серверов, и в зависимости от потребностей я буду запускать ту, которую хочу, на какой машине я хочу.
22.02.2017


Ответы:


1

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

Инвентарь:

[all-servers]
host1
host2
host3
host4

[master-server]
host2

Плейбук:

---
- hosts: all-servers
  gather_facts: no
  tasks:
    - debug: msg=role-common

- hosts: master-server
  gather_facts: no
  tasks:
    - debug: msg=role-master

- hosts: all-servers:!master-server
  gather_facts: no
  tasks:
    - debug: msg=role-slave
22.02.2017
  • Спасибо за ответ, не только этот ответ на мои вопросы - потому что я думал что-то подобное, но теперь я узнал, что сборник пьес на самом деле представляет собой список пьес - что очень круто и полезно для меня - до этого момента я создавал только пьесы, которые содержали одиночная игра, не зная, что вы можете поместить больше из них в виде списка. 22.02.2017

  • 2

    Вы можете использовать в playbook main.yml "serial = 1", чтобы он выполнялся один за другим, и вы можете гарантировать, что playbook будет выполняться на главном узле, а после этого он будет выполняться на других узлах.

    - hosts: allnodes
      remote_user: "{{user}}"
      become: True
      serial: 1
      roles:
      - role: your_role
    
    22.02.2017
  • Спасибо за ваш ответ, но это была именно моя текущая ситуация - я использую серийный номер: 1 и полагаюсь на тот факт, что порядок определен в файле инвентаризации для текущей группы. И вопрос заключался в том, как контролировать, чтобы машина, на которую я хочу установить мастер (даже если не первая в инвентаре), была первой, но я думаю, что это невозможно, поэтому я мог бы пойти с ответом от Константина. 22.02.2017
  • Я делаю именно это, чтобы выбрать мастер: {{ hostvars[groups[env][0]].ansible_all_ipv4_addresses[0] }} если ip соответствует этому, его мастер, все остальные являются подчиненными. 03.01.2019
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..