Size: a a a

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

2020 December 18

S7

Sam 7 in ansible — русскоговорящее сообщество
нативное == из коробки у ансибла
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Sam 7
я думаю в сторону sh скрипта, который бы проверял доступность и формировал нужный файл hosts и запускал плейбук с этими хостами
может посмотреть в сторону retry функционала https://docs.ansible.com/ansible/latest/reference_appendices/config.html#retry-files-save-path ? когда ансибл по каким-то причинам не может выполнить задачу на хосте
источник

S7

Sam 7 in ansible — русскоговорящее сообщество
источник

S7

Sam 7 in ansible — русскоговорящее сообщество
т е брать хосты только если они не эктив
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Sam 7
т е брать хосты только если они не эктив
можно попробовать добавлять unreacheable хосты в файл пробовать заново, можно попробовать начать отсюда https://stackoverflow.com/questions/55935582/ansible-playbook-how-to-write-unreachable-inventory-host-names-to-a-file
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
но я бы дождался совета еще кого-нибудь, возможно, я уведу тебя не в ту сторону
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Sam 7
никто не определяет. я хочу, чтобы слейвы выбирались из доступного пула, но только те, которые простаивают (помечены флагом идл например)
Смотрите в сторону dynamic inventory тогда
источник
2020 December 20

M

Maksim Sharov in ansible — русскоговорящее сообщество
для чего нужны группы в группах https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#inheriting-variable-values-group-variables-for-groups-of-groups и директива children?

чем, например, отличается  (gateway - отдельный хост) в примере ниже

infra:
 hosts:
   gateway:
   nodes:
     hosts:
       gate:
       vm-0:
от

infra:
 gateway:
 children:
   nodes:
     children:
       gate:
       vm-0:

не понимаю, что значит Any host that is member of a child group is automatically a member of the parent group. Разве, например, gate из первого примера не был уже в группе infra, просто вложен в nodes?

и не могу объяснить, почему в первом примере без children при использовании hosts: gate, я получаю skipping: no hosts matched, а с children матчится
источник

I

Ilgiz in ansible — русскоговорящее сообщество
Maksim Sharov
для чего нужны группы в группах https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#inheriting-variable-values-group-variables-for-groups-of-groups и директива children?

чем, например, отличается  (gateway - отдельный хост) в примере ниже

infra:
 hosts:
   gateway:
   nodes:
     hosts:
       gate:
       vm-0:
от

infra:
 gateway:
 children:
   nodes:
     children:
       gate:
       vm-0:

не понимаю, что значит Any host that is member of a child group is automatically a member of the parent group. Разве, например, gate из первого примера не был уже в группе infra, просто вложен в nodes?

и не могу объяснить, почему в первом примере без children при использовании hosts: gate, я получаю skipping: no hosts matched, а с children матчится
Children позволяет добавлять хосты группами. Скажем у тебя есть две группы, first и second, в каждой по 5 хостов. Можно сделать ещё одну группу all, в которую можно вписать one и second, вместо списка в 10 хостов
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Ilgiz
Children позволяет добавлять хосты группами. Скажем у тебя есть две группы, first и second, в каждой по 5 хостов. Можно сделать ещё одну группу all, в которую можно вписать one и second, вместо списка в 10 хостов
Да, спасибо, начал дебажить и разобрался. Сначала думал, что наличие hosts внутри записи делает её группой, а потом увидел, что вышестоящий hosts определяет её в хосты. Для определения группы в группе нужно children, а не простая вложенность
источник
2020 December 21

M

Maksim Sharov in ansible — русскоговорящее сообщество
почему при повторном запуске плейбука на машине  такая ошибка происходит?

TASK [docker : install required system packages] *******************************
[WARNING]: Updating cache and auto-installing missing dependency: python3-apt
fatal: [gate]: FAILED! => {"changed": false, "cmd": "apt-get update", "msg": "[Errno 2] No such file or directory: b'apt-get'", "rc": 2}

гуглил проблему, выглядит как очень распространненная и решается каким-то костылями, типа переменных ansible_python_interpreter=/usr/bin/python3 или работы c PATH. как лучше исправить?
источник

I

Ilgiz in ansible — русскоговорящее сообщество
Ну может там нет апт-гета. Проверь ещё креды, become нужен для апта
источник

I

Ilgiz in ansible — русскоговорящее сообщество
Ну и скрипты моветон вызывать в ансибле, имей привычку Линтом проверять плейбук
источник

I

Ilgiz in ansible — русскоговорящее сообщество
Хотя про апт он итак в консоль должен сыпать
источник

KO

Kernel Org in ansible — русскоговорящее сообщество
Всем привет, подскажите,  как можно сделать автоматический инвентарь LXC контейнеров ?
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Ilgiz
Ну может там нет апт-гета. Проверь ещё креды, become нужен для апта
Разобрался проблема в специфичном конвейере ci, это не ансибла ошибка
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Ilgiz
Ну и скрипты моветон вызывать в ансибле, имей привычку Линтом проверять плейбук
Не, это был модуль ансибла, не башсибл
источник

M

Mikhail in ansible — русскоговорящее сообщество
Kernel Org
Всем привет, подскажите,  как можно сделать автоматический инвентарь LXC контейнеров ?
Может быть как-то через libvirt инвентори? https://github.com/ansible-collections/community.libvirt/blob/main/plugins/inventory/libvirt.py
Зависит от версии ansible
источник

KO

Kernel Org in ansible — русскоговорящее сообщество
А это разве не для виртуалок ?
источник

M

Mikhail in ansible — русскоговорящее сообщество
Kernel Org
А это разве не для виртуалок ?
libvirt несколько backend поддерживает QEMU/KVM, XEN, LXC  точно
источник