Anonymous
?
Dima
- include: file-with-tasks.yml
Dima
постоянно так делаю :)
он похоже больше про тэги спросил
Anonymous
не
Anonymous
я про что-нибудь типа - include: file.yml delegate_to: hostname
шта
Anonymous
ну бля, лень к куче задач дописывать delegate_to
ты предлагаешь хардкодить хостнеймы в ролях/плейбуках?
Anonymous
не, там delegate_to: '{{ vm_ip }}' будет
я обычно эту магию делаю спайкой hosts в плейбуке и инвентори
чяднт?
Anonymous
работаешь в нормальной конторе
Anonymous
где не надо делать хуйню из-за уебанского инструментария
так а тебе что мешает делать также?
Anonymous
вот надеюсь завтра оффер прилетит
Anonymous
но пока что надо решать проблему. и наверно ещё две недели после оффера
отпуск возьми
Anonymous
в мае невыгодно
если оффер придет, тебе уже на текущем месте работы все равно будет
Anonymous
но бабла прилетит больше за оставшееся время и за неиспользованный отпуск
Anonymous
а тут ещё майские праздники, все дела, поди пол-остатка проотдыхаю за просто так
Dmitry
А можно подробнее? Куда в какую сторону смотреть в мануал по ansible?
всегда прикалывает это "куда смотреть". ессно читать от начала и до конца, от заглавной буквы "А" до тиража и типографии
Ilya
Привет! Возможно ли сделать flush_handlers для одного хоста из play_hosts? Например один хост мастер и для него в ветке надо отдельно немного инициализацию сделать.
Ilya
Запихни в роль, присобачь when
Спасибо, попытаюсь сделать нечно подобное
Alf 🙀
Спасибо, попытаюсь сделать нечно подобное
- name: flushing meta: flush-handlers when: inventory_host == master
Alf 🙀
Например
Ilya
- name: flushing meta: flush-handlers when: inventory_host == master
Так ранее делал в рамках одной роли. Не работает так как на все хосты распространяется запуск хендлеров. А вот если в отдельной роли сделать и на роль повесить when, похоже может помочь.
Ilya
В любом случае надо разделить master и slave роли. Давно было пора это сделать )
Alf 🙀
Если не совпадает то и не работает
Alf 🙀
Можно в инвентари варс все запихнуть
Ilya
не. если ты делаешь flush_handlers. То это значит запустить хендлеры. а в хендлерах inventory проверяться ведь не будет.
Alf 🙀
Иначе скипед
Ilya
так не работает у меня так ) Запускаются все хендлеры на все хосты. Есть when или нет.
Ilya
вот как у тебя в примере было написано. Это не работает.
Ilya
может конечно зависит от версии... В 2.2 по крайней мере
Alf 🙀
Интересно, завтра поковыряю спасибо
Ilya
Как у себя роли разведу, могу пример playbook'а скинуть
Aleksey
не горжусь. можно как то лучше ?
Арсен
vim лучше
Sergey
vim лучше
толсто
Sergey
не горжусь. можно как то лучше ?
можно набросать модуль для этого и положить его в предустановленный каталог, тогда Ансибл будет его автомагически подключать
Aleksey
а модуль будет делать получения интерфейса да ?
Aleksey
тоесть на dst хост надо будет притащить что нить типа python netifaces да ?
Арсен
нужно добавить обработку фейла первой задачи
Sergey
в принципе можно и так. если я правильно понял, интерфейс всё равно выбирается путём обработки вывода таблиц маршртизации.
Арсен
Alf 🙀
а модуль будет делать получения интерфейса да ?
у тебя больше одного интерфейса на хостах?
Aleksey
у тебя больше одного интерфейса на хостах?
есть хосты на которых два и дефолт смотрит не в сторону серверов консула
Арсен
страхует от пусто таблицы маршрутизации?
Aleksey
страхует от пусто таблицы маршрутизации?
хороший вопрос. но не про то.
Magistr
а если ип консула в днс положить ?
Aleksey
а как это поможет ?
Sergey
есть хосты на которых два и дефолт смотрит не в сторону серверов консула
смотри. у тебя есть факты о сервере консула (либо ты можешь их собрать). следовательно, ты знаешь, какой подсети принадлежит интерфейс сервера. следовательно, если ты для хоста перебираешь все интерфейсы, то достаточно выбрать тот, у которого подсеть совпадает.
Sergey
потому что факты о единичном интерфейсе содержат вот это : "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.10.2", "broadcast": "192.168.10.255", "netmask": "255.255.255.0", "network": "192.168.10.0" }, "macaddress": "52:54:00:5c:c1:36", "module": "virtio_net", "mtu": 1500, "pciid": "virtio0", "promisc": false, "type": "ether" }
Aleksey
для единичного можно не морочится ибо consul_iface: "{{ ansible_default_ipv4.interface}}"
Sergey
ну да. а там, где не единичный - по network проверяй, какой именно нужен
Sergey
такой вариант решения подойдёт?
Aleksey
для единичного консул нормально забиндится на дефолтный. а вот там где не единичный там тупо правильный нужен. и вот критерии праивльности дурные.
Sergey
?
Aleksey
если у нас они в броадкасте то можно просто как ты говоришь сравнить сети
Aleksey
а если они не в броадкасте ? боюсь тут будет слишком сложное допущение
Sergey
а нужен ли такой хоккей? то есть насколько часто такая конфигурация используется?
Aleksey
публичный плейбук. я не доконца котролирую поведение и топологию где разворачивается плейбук
Sergey
понял. случается такая фигня. тогда я бы на твоём месте забил спокойно. хотите нормально - отдайте крутилки. хотите сидеть на своих крутилках - делайте лучше сами.
Игорь Пинчук
ansible 2.2 + vagrant. В рамках плейбука использую geerlingguy.mysql и получаю ошибку, что geerlingguy.mysql в рамках include_vars инклудится в итоге не в рамках своей роли, а в рамках всего плейбука. втф?
Игорь Пинчук
- name: Include OS-specific variables. include_vars: "{{ item }}" with_first_found: - files: - "vars/{{ ansible_os_family }}.yml" skip: true when: ansible_os_family != "RedHat"
Игорь Пинчук
Вот конкретно этот кусок из гирлингов в итоге пытается тянуть файл из корня проекта
Игорь Пинчук
а не из роли
Sergey
потому что правильно делать не так, а вот так - http://docs.ansible.com/ansible/include_vars_module.html
Sergey
там прям нерусским по белому пример
Иван
Привет всем) разворачиваю Ansible Выполняю ansible open-servers -m ping для тестов А мне вылезает 172.21.1.2 | FAILED! => { "changed": false, "failed": true, "module_stderr": "Shared connection to 172.21.1.2 closed.\r\n", "module_stdout": "Switched SMACK label to _ for user root\r\nTraceback (most recent call last):\r\n File \"/tmp/ansible_5yA5mh/ansible_module_ping.py\", line 49, in <module>\r\n from ansible.module_utils.basic import AnsibleModule\r\n File \"/tmp/ansible_5yA5mh/ansible_modlib.zip/ansible/module_utils/basic.py\", line 68, in <module>\r\n File \"/usr/lib/python2.7/shlex.py\", line 35\r\nSyntaxError: Non-ASCII character '\\xdf' in file /usr/lib/python2.7/shlex.py on line 35, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details\r\n", "msg": "MODULE FAILURE", "rc": 0 } Скажите, кроме кодировки файла, в чём ещё может быть проблема? Модуль raw, например, нормально работает
Sergey
ерунда с версиями ансибла?
Max
а на чём сервера то?