Timur
А параметры роли можно определять на любом уровне переменных: хостварс, групварс, плейбука, инклуды и т.п.
Timur
Это даёт большую гибкость
Valeriy
Т.е. условно , предполагается , что в упомнятом мной случае в роль передается переменная типа запуска backup | restore а flow потом на этой основе меняется добавлением when к каждой задаче ?
Timur
К каждой таске when добавлять не нужно, разумеется
Valeriy
Скорее, ветвление на основе параметров через include_tasks
Спаисбо за идею, попробу оба варинта , посмотрю что понравится.
Fidelina
Ребятки-котятки. Перерыла интернет и не нашла ничего вразумительного на тему {"ansible_facts": {}, "changed": false, "msg": "The following modules failed to execute: setup\n setup: MODULE FAILURE\nSee stdout/stderr for the exact error\n"}
Fidelina
Вы могли бы подсказать как лечить?
Roman
перевыкачать модули \ указать путь к рабочим?
Fidelina
факты собрались
Fidelina
ан нет
Fidelina
не собрались :D
Fidelina
при попытке замены строк возникает такая шляпка только для 2х серверов
Artem
добрый день. Не подскажете как можно передать переменную в "hosts: " ? ip адреса будут попадать в некий файл исходя из результатов выполнения одной задачи. Соотвественно они всегда могут отличаться... необходимо подставлять значения из файла. пробовал через "- hosts: {{ item }} " ругается.. ((
Artem
делай через add_host - https://docs.ansible.com/ansible/latest/modules/add_host_module.html
я так понимаю, это для добавления хостов, но они у меня уже добавлены в inventory file.
Alex
тогда зачем передавать что то в hosts?
Artem
чтобы выполнения playbook было на опреденном хосте
Alex
чтобы выполнения playbook было на опреденном хосте
так а что мешает юзать инвентори файл, если он уже есть?
Artem
А что за ошибку выдает?
The offending line appears to be: --- - hosts: '{{ item }}' ^ here We could be wrong, but this one looks like it might be an issue with missing quotes. Always quote template expression brackets when they start a value. For instance: with_items: - {{ foo }} Should be written as: with_items: - "{{ foo }}"
Artem
так а что мешает юзать инвентори файл, если он уже есть?
у меня в нем большое количество серверов. в определеный момент мне надо выполнить playbook на одном отдельном хосте. И мне надо передать его ip адрес в сам playbook. Может конечно есть какой-то другой вариант..
Artem
вот как раз читаю ))
Artem
Artem
а как правильно?
Logan
а как правильно?
делать факт и потом использовать magic variables
Logan
magic variables позволяют обратится из одного хоста к фактам другого
Timur
Тут не про это, судя по всему
Timur
Про то, как ограничивать запуск определенным набором хостов, хорошо написано в документации: https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html
Timur
Sebor▂▅▇█▓▒░
Коллеги, подскажите, как передавать переменные в import_playbook?
Artem
Ссылка помогла?
частично, сделал через вызов playbook из баш скрипта с указанием —limit "host"
Sebor▂▅▇█▓▒░
Коллеги, подскажите, как передавать переменные в import_playbook?
- import_playbook: new-playbook.yml var1=value1 Делаю так, но не срабатывает
Artem
Ссылка помогла?
но спасибо за помощь )
Sebor▂▅▇█▓▒░
import_playbook: vars: varname: "{{ varvalue }}"
ERROR! import_playbook parameters cannot be mixed with 'vars' entries for import statements
Anatoliy
ну тогда set_fact остается
Sebor▂▅▇█▓▒░
ну тогда set_fact остается
а как его передать в итоге в импортируемый плейбук?
Anatoliy
а как его передать в итоге в импортируемый плейбук?
https://www.unixarena.com/2019/05/passing-variable-from-one-playbook-to-another-playbook-ansible.html/ альтернативный вариант
Sebor▂▅▇█▓▒░
https://pastebin.com/CGGGZZMn
эта кострукция - import_playbook: "play1.yml" vars: v1: "set in play2.yml via vars" не работает по вышеуказанной ошибке
Sebor▂▅▇█▓▒░
странное кто за тебя страдать будет?
В чем заключается страдание?
Sergey
Расскажи про пользовательскую историю, из-за которой данная фича нужна. Напугать ты никого уже не напугаешь - тут и LDAP видали, и Git, и rsync на Ansible.
Sebor▂▅▇█▓▒░
Расскажи про пользовательскую историю, из-за которой данная фича нужна. Напугать ты никого уже не напугаешь - тут и LDAP видали, и Git, и rsync на Ansible.
Юзер стори простая: есть несколько плейбуков, довольно автономных Но в одном из них иногда нужно вызывать пару других И вот здесь хотелось бы узнать, как передать переменную в импортируемый плейбук
Anatoliy
эта кострукция - import_playbook: "play1.yml" vars: v1: "set in play2.yml via vars" не работает по вышеуказанной ошибке
ну логично предположить, что ошибка где-то у тебя, не? может стоит ansible обновить?
Anatoliy
если специально написанный и проверенный код не работает
Anatoliy
Sebor, у меня этот код работает. мне нормально
Sebor▂▅▇█▓▒░
А вы сами пробовали запустить так?
Sebor▂▅▇█▓▒░
На какой версии?
Anatoliy
я это написал специально и проверил, и выложил в pastebin
Anatoliy
ansible --version ansible 2.8.6
Anatoliy
обновлю тоже. проверю в новой, но позже
Sebor▂▅▇█▓▒░
Вызывать из одной плейбуки другие - странное занятие. Для переиспользования кода были придуманы роли
Не хочется городить роли на 3-4 таски Да и помнится, вы сами мне рекомендовали на плейбуках остаться)
Timur
Не хочется городить роли на 3-4 таски Да и помнится, вы сами мне рекомендовали на плейбуках остаться)
Ну, вынесите общие части в отдельный файл с тасками и инклудайте в разные плейбуки
Dmitriy
Не хочется городить роли на 3-4 таски Да и помнится, вы сами мне рекомендовали на плейбуках остаться)
роли довольно универсальная и удобная штука, которую можнов н плейбуков подключить. Зря вы так )
Anatoliy
А вы сами пробовали запустить так?
в 2.9.1 (python 3.5.7) (gentoo) тоже работает
Anatoliy
ERROR! import_playbook parameters cannot be mixed with 'vars' entries for import statements
telepatmode: может у тебя что-то странное в ansible.conf прописано? с такой ошибкой не сталкивался
Sebor▂▅▇█▓▒░
telepatmode: может у тебя что-то странное в ansible.conf прописано? с такой ошибкой не сталкивался
Не, в конфиге почти все по дефолту Я вот думаю, может дело в том, что в мастер плейбуке я делаю include_vars для этой переменной
Anatoliy
ты брутален
что-то я пропустил момент когда красноглазие брутальным стало :)
Valeriy
Господа, а как без jinja фильтров понять длину перечеслямого обьекта ? На when: "{{ target_containers | length > 1 }}" Ansible ругается.
Valeriy
Пока писал вопрос подумал про Jinja тесты.
Dan
у меня тут интересная задачка получилась - есть диапазон (не важно чего, просто числа от и до), который надо разделить между хостами, так что например если хостов 4 и диапазон 0..100 то в первом хосте выполняется 0..25, на втором 26..50 и т.д. Кто нибудь такое делал, чтоб не переизобретать? Я примерно себе представляю это как index по groups['groupname'], плюс немножко арифметики
Яша
- name: uninstall win_package: product_id: '{E945283B-758C-4A40-B851-1066D0E49EA8}','{1E4AB2FC-B243-45C2-BF6A-A027213183CD}','{E5803A4B-5A4B-44F6-A$ state: absent
Яша
возможно ли перечислением выполнить?
Яша
или необходимо на каждый продукт_ид делать новый нэйм?
Яша
через запятую не хочет
Отделение Bereke Bank