Size: a a a

ansible — русскоговорящее сообщество

2021 June 28

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
На другие ноды
источник

ВШ

Вадим Шандринов... in ansible — русскоговорящее сообщество
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
ну мы вот специально выжидали, когда ты от компа отойдёшь. (нет)
Когда появилось время - тогда и пришли в чат.
Считать, что данные на хосте верны - плохая практика, потому что вся информация должна быть в репо, можно сделать так:

roles:
- role_get_data_from_master
 when: is_master | bool
- role_push_data_to_slaves

ну и соответственно в групварсах указываем мастер
источник

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
Благодарю )
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
Но ещё раз: это прям херовая херня так делать. Конфиги должны быть в репозитории а хосты должны подчиняться коду, а не наоборот
источник

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
Не понял , репозитории каком
источник

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
Хосты и так все как бы в инверторе
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
https://en.m.wikipedia.org/wiki/Infrastructure_as_code

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

V

Viktor in ansible — русскоговорящее сообщество
Viktor, [28 Jun 2021, 19:58:40]:
Всем добра! Подскажите как остановить итерацию include_tasks, если предидущая итерация провалилась?


- name: Including exporter task
 include_tasks:
   file: exporter.yml
 loop: "{{ task_sequence }}"
 loop_control:
   loop_var: exporter_item
   extended: yes
 register: exporter_update


Может можно в самой заинклуженой таске посметреть на результат выполнения предидущей?
источник

IY

Ilya Yakushin in ansible — русскоговорящее сообщество
Добрый вечер! Подскажите, как правильно организовать наборы переменных. Например, в компании 10 принтеров со своими параметрами (название, драйвер, порт). Хочется в одном месте завести параметры этих 10 принтеров, и потом, при вызове роли только указывать, какой из принтеров нужно настраивать. Что то типа
hosts:
 - accounting
roles:
 - printer
vars:
 - printer_id: printer-5
А в роли (или где-то ещё) иметь что-то типа:
- printer-5 [name="Принтер HP (бухгалтерия)", driver="HP ...", port="192.168.90.10"]


Как это правильно организовать, что бы минимизировать кол-во дублирующейся информации (в плейбуках, прежде всего)? Что где прописать?
источник

ВС

Вячеслав Синельников... in ansible — русскоговорящее сообщество
а не проще имя принтера передавать через переменную !? -e "{printername: printer-5}"
источник

IY

Ilya Yakushin in ansible — русскоговорящее сообщество
А как передачей переменных управлять? В смысле, например, у меня 100 хостов, и я хочу, что бы у меня где-то было записано (в ansible или рядом), какие принтеры куда подключены. Сделать shell-скритп с '-e "{printername: printer-5}' ?
источник

ВС

Вячеслав Синельников... in ansible — русскоговорящее сообщество
ну у меня есть хосты... я вызываю ansible-playbook book.yaml -l "host1,host2" -e "{printerset: ['printer-5','printer-10']}" в плейбуке юзаем loop по переменной printerset и так работает примерно у меня только с группами доменными)
источник

IY

Ilya Yakushin in ansible — русскоговорящее сообщество
Круто, спасибо!
источник

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
Благодарю мне приятна ваша отзывчивость
источник
2021 June 29

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
так можно ?
- name: Distribute master
 include: tasks/distribute-master.yml
 when: "'group_names' == 'master'"
# copy - in worker node
- name: Distribute worker
 include: tasks/distribute-worker.yml
 when: "'group_names' == 'worker'"
источник

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
# cfssl - 1 node
- name: install cfssl {{ ansible_distribution }}
 include: tasks/cfssl.yml
 when: "groups['worker'][0]"
источник

DO

Dmitry Onishkevich in ansible — русскоговорящее сообщество
таким образом я могу работать в стиле "установить только на ноде группы ворке "0"
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
when: "foo" in group_names

Group_names это список, в нем может быть более одного элемента
источник

ВБ

Владимир Будыльников... in ansible — русскоговорящее сообщество
Я не понимаю, зачем вы пытаетесь использовать группы вместо переменных
источник