Ruslan
оо да, пасиб
Отделение Bereke Bank
У кого-то есть готовое решение как их инвентори получить список inventory_hostname@ip Через экстракт знаю как по отдельности Пробовал склеить через продукт получил немного не то
Alex
Ребят , а в ансамбле можно stdout_callbaсk указать per playbook? или только в ansible.cfg?
Alex
Cудя по доке только ansible.cfg - печалити (
Отделение Bereke Bank
В общем ниче умнее не придумал. Думал есть фильтры какие-то. Но нет 😒 my_shit_var: "{% for a in groups['my_shit_group'] %}{{ hostvars[a]['inventory_hostname'] }}@{{ hostvars[a]['ansible_default_ipv4']['address'] }}{% if not loop.last %},{% endif %}{% endfor %}"
Отделение Bereke Bank
https://t.me/pro_ansible/163873 :-D
слуш. а после той ебалы что я выше написал как-то можно всунуть split(',')?
Lamobot
В общем ниче умнее не придумал. Думал есть фильтры какие-то. Но нет 😒 my_shit_var: "{% for a in groups['my_shit_group'] %}{{ hostvars[a]['inventory_hostname'] }}@{{ hostvars[a]['ansible_default_ipv4']['address'] }}{% if not loop.last %},{% endif %}{% endfor %}"
А зачем продакт фильтр? Решается через zip, но, по-моему, решение через loop приятнее глазу намного чем такое: '{{ groups["test"] | map("extract", hostvars, "inventory_hostname") | list | zip( groups["test"]|map("extract", hostvars, ["ansible_default_ipv4","address"])|list) |map("join", "@") | list }}'
Отделение Bereke Bank
Lamobot
ну йобана. я пробовал с join, а оказывается надо было map join
Ага, на выходе с zip будет лист из листов - - host1 - ip1 - - host2 - ip2
Отделение Bereke Bank
спасибо, выручил
Dmitry
Добрый день, коллеги. Хочу реализовать сравнение конфигураций (состояний) до и после изменений производимых с помощью Ansible. Сделал роль, которая собирает необходимые данные в словарь. Идея: взять два идентичных словаря и вывести в лог (либо файл, либо дебаг) слева до изменений, справа после. Если добавить подсветку изменений, то вообще будет супер. Вопрос: как бы это реализовать, желательно с jinja2 темплейтами? Картинка как это может примерно выглядеть приложена.
Rad
эмм вы хотите сохранять вывод —check —diff ?
Dmitry
Ну логи не помешают. С этим я разберусь. Вопрос как сформировать diff и распечатать его?
George
у тебя все изменения в логе ансибла есть
George
что еще нужно?
Dmitry
Существующие логи не читаемы. Задача - сделать их легко читаемыми. То есть показать явно изменение отдельных параметров. Параметры известны и собраны в списки, которые агрегированы в словарь. Соответственно, сравнивать нужно по примеру как это делает diff.
Dmitry
Какую задачу решаешь?
Речь про cli-command приложения.
George
Я бы предложил сформулировать более четкое описание
tutunak
Юзай подходящий инструмент, я бы использовал git.
tutunak
и вокруг него делал бы автоматизацию / мониторинг и т.п.
George
)
George
в смысле гит - это источник конфигурации ) а не сравнивалка того, что применено
tutunak
в смысле гит - это источник конфигурации ) а не сравнивалка того, что применено
ну так поменял конфигу - закомитил в гит, вот тебе история дифов в нормально виде
tutunak
можно попитонячить и вокруг этого модуль написать с оутпутом который нужен
Dmitry
можно попитонячить и вокруг этого модуль написать с оутпутом который нужен
почитав гугл склоняюсь к такому же варианту, но думал вы меня остановите ;)
Отделение Bereke Bank
Как нынче решается проблема когда гит модуль не пашет если /tmp noexec? Задать в таске environment TMPDIR не работает 🤔
Антон
/get
Антон
Эй
Антон
Она не кликается
Антон
:D
Vladislav
/get settings
Timur
/get settings
Леонид Леонидович
/get
Vladislav
админы и инвайты админов группы игнорятся по дефолту, если только не включено guard_force
Null
/disable guard
Null
/enable guard
Volodymyr
Коллеги, привет! Поясните почему ansible не делает fact gathering, когда ранишь отдельный тэг из роли? $ cat roles/myrole/tasks/main.yml --- # tasks file for test_role - name: Include OS-specific variables include_vars: "{{ ansible_os_family | lower }}.yml" tags: [test_role_tag] - name: Another task debug: msg: "I'm just another task" tags: [test_role_tag, another_tag] $ ansible-playbook -i inventories/test/ playbooks/test/stage.yml --tags=another_tag PLAY [all] *************************************************************************************************************************************************************************************************************************************************** TASK [myrole : Another task] ********************************************************************************************************************************************************************************************************************************* ok: [localhost] => { "msg": "I'm just another task" } PLAY RECAP *************************************************************************************************************************************************************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Отделение Bereke Bank
Коллеги, привет! Поясните почему ansible не делает fact gathering, когда ранишь отдельный тэг из роли? $ cat roles/myrole/tasks/main.yml --- # tasks file for test_role - name: Include OS-specific variables include_vars: "{{ ansible_os_family | lower }}.yml" tags: [test_role_tag] - name: Another task debug: msg: "I'm just another task" tags: [test_role_tag, another_tag] $ ansible-playbook -i inventories/test/ playbooks/test/stage.yml --tags=another_tag PLAY [all] *************************************************************************************************************************************************************************************************************************************************** TASK [myrole : Another task] ********************************************************************************************************************************************************************************************************************************* ok: [localhost] => { "msg": "I'm just another task" } PLAY RECAP *************************************************************************************************************************************************************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Наверное они в кеше? С --flush-cache запусти
Volodymyr
Наверное они в кеше? С --flush-cache запусти
Нет, он просто не делает fact gathering...
Lamobot
Коллеги, привет! Поясните почему ansible не делает fact gathering, когда ранишь отдельный тэг из роли? $ cat roles/myrole/tasks/main.yml --- # tasks file for test_role - name: Include OS-specific variables include_vars: "{{ ansible_os_family | lower }}.yml" tags: [test_role_tag] - name: Another task debug: msg: "I'm just another task" tags: [test_role_tag, another_tag] $ ansible-playbook -i inventories/test/ playbooks/test/stage.yml --tags=another_tag PLAY [all] *************************************************************************************************************************************************************************************************************************************************** TASK [myrole : Another task] ********************************************************************************************************************************************************************************************************************************* ok: [localhost] => { "msg": "I'm just another task" } PLAY RECAP *************************************************************************************************************************************************************************************************************************************************** localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#special-tags-always-and-never Возможно в этом дело "Fact gathering is tagged with ‘always’ by default. It is only skipped if you apply a tag and then use a different tag in --tags or the same tag in --skip-tags."
Volodymyr
должно работать и с тэгами
Экспериментально доказано, что нет :( Уточню тэги именно в play
Volodymyr
в play?
В play. В playbook много plays: --- - hosts: all become: True roles: - myrole tags: [play_test] - hosts: all become: True roles: - myrole2 tags: [play_test2]
Valiy
В play. В playbook много plays: --- - hosts: all become: True roles: - myrole tags: [play_test] - hosts: all become: True roles: - myrole2 tags: [play_test2]
test@Vm-Ubuntu19-10:[/tmp/321]: cat test.yml - name: test hosts: test become: yes roles: - ansible-role-nginx-config tags: [nginx_config_template] test@Vm-Ubuntu19-10:[/tmp/321]: ansible-playbook test.yml -u vagrant -i hosts -vvD ansible-playbook 2.9.10 config file = /tmp/321/ansible.cfg configured module search path = ['/home/test/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/test/.local/lib/python3.7/site-packages/ansible executable location = /home/test/.local/bin/ansible-playbook python version = 3.7.5 (default, Apr 19 2020, 20:18:17) [GCC 9.2.1 20191008] Using /tmp/321/ansible.cfg as config file PLAYBOOK: test.yml *********************************************************************************************************************************************************************************************************************************************************** 1 plays in test.yml PLAY [test] ****************************************************************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************* task path: /tmp/321/test.yml:2 ok: [vagrant1] META: ran handlers Так?
Volodymyr
test@Vm-Ubuntu19-10:[/tmp/321]: cat test.yml - name: test hosts: test become: yes roles: - ansible-role-nginx-config tags: [nginx_config_template] test@Vm-Ubuntu19-10:[/tmp/321]: ansible-playbook test.yml -u vagrant -i hosts -vvD ansible-playbook 2.9.10 config file = /tmp/321/ansible.cfg configured module search path = ['/home/test/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /home/test/.local/lib/python3.7/site-packages/ansible executable location = /home/test/.local/bin/ansible-playbook python version = 3.7.5 (default, Apr 19 2020, 20:18:17) [GCC 9.2.1 20191008] Using /tmp/321/ansible.cfg as config file PLAYBOOK: test.yml *********************************************************************************************************************************************************************************************************************************************************** 1 plays in test.yml PLAY [test] ****************************************************************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ******************************************************************************************************************************************************************************************************************************************************* task path: /tmp/321/test.yml:2 ok: [vagrant1] META: ran handlers Так?
Катни с тэгом из роли и посмотри будет ли таска "TASK [Gathering Facts]"
Valiy
Катни с тэгом из роли и посмотри будет ли таска "TASK [Gathering Facts]"
если с тем же тэгом, который указан в плейбуке, то факты собирает, если с другим, то нет .)
Evgenii
Коллеги, подскажите, как выполнить таску еще раз, если она по какой то причине ушла в failed ?
tutunak
Коллеги, подскажите, как выполнить таску еще раз, если она по какой то причине ушла в failed ?
Retry https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#retrying-a-task-until-a-condition-is-met
Aleksey
столкнулся с одновременным существованием модулей типа просто в ансибле и community, например docker, aws. Откуда "ноги растут" понятно. Кто что использует? С докером еще как-то ясно, а вот на счет aws ну, реально две параллельных функциональности(
Lamobot
Не могу понять зачем они это сделали..
https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#adding-tags-to-roles Дока говорит, что если вы хотите только некоторые таски из роли, то нужно делать include_role с тэгом, и этим же тэгом таски в роли метить.
Junglist
Добрый вечер, а кто может подсказать по такой проблеме. Есть плейбук для введения винды в домен, необходимо его запускать с отличными от инвентарных ansible_user и ansible_password . В ansible_user и ansible_password вбиты доменные. Как быть?
Volodymyr
https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html#adding-tags-to-roles Дока говорит, что если вы хотите только некоторые таски из роли, то нужно делать include_role с тэгом, и этим же тэгом таски в роли метить.
Идея была разбить большой playbook на разные play и запускать их большими частями. По несколько ролей сразу, а оно ломает мне все инклуды, которые основаны на фактах.. но прийдется запускать пачками тэгов, которые в ролях.
Junglist
дело в том что мне в этом же плее надо использовать ansible юзерпас из инвентаря чтобы ввести тачку в домен
Lamobot
дело в том что мне в этом же плее надо использовать ansible юзерпас из инвентаря чтобы ввести тачку в домен
Можно использовать vars на уровне плея, блока, таски итд. Они перекроют переменные с инвентаря
Bohdan
Всем привет, возможно у кого-то есть опыт в конфигурации windows. Поделитесь пожалуйста полезными гайдами и тд. Помимо офф доков
George
для винды используешь мокрософто-средства - поверь, боли будет меньше - по крайней мере для десктопов
George
если ты расскажешь о своей задаче подробнее - можно обсудить более предметно
Bohdan
Мне нужно делать веб сервера. На esxi. Тоесть нужно что бы на пачку серверов залетало IIS, апдейты и прочая хрень с возможность передавать конфиги и тд. Я понимаю что через GP и PS проще. Но если у тебя 1 сервер это да, а если у тебя их 100500 то лучше ансиблом и тераформом. Буду очень рад если ктото пошарит гайды с подводными камнями.
George
я бы рассмотрел вариант печь образа packer от хашиков, а потом уже с них стартовать
George
наливать сервисы в пакере - можно пошиком или ансиблом - whatever что тебе больше нравится
George
насчет конфигов... кхм... ну, ок - здесь тоже похоже ансибл тебе может помочь