Ruslan
похоже я просто не знаю про blocks https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html
Ruslan
register: task_output when: "'some_shit' in task_output.stdout"?
тоже думал так, но у меня там порядка 10 таск, которые любят падать по самым разным причинам, отследить все варианты не получится, а чистить проект надо
Stepan T.
Получится. Глаза боятся, а руки делают.
Ruslan
😁 Попробую, сначала эту штуку провернуть:` tasks: - name: Attempt and graceful roll back demo block: - debug: msg: 'I execute normally' - command: /bin/false - debug: msg: 'I never execute, due to the above task failing' always: - debug: msg: "This always executes"`
Eduard
Мужики, а у ансибло интеграцию с кубиком придумали?
Ruslan
если колхозно, то закатай всё в блок, последним таском модуль шел и удаление.
Спасибо. Подсказка на использование блоков указало мне желаемое решение. Ключ. слово always - то что я хотел: TASK [uc : fail] fatal: [stand]: FAILED! => {"changed": false, "msg": "the command failed"} TASK [uc : always remove files] ok: [stand] => { "msg": "remove running" }
Eugeny
Всем привет! Как проверить что на хосте запущен контейнер с nginx’ом? Есть какой-то аналог для контейнеров - name: Ensure that nginx is running service: name: nginx state: started enabled: yes register: nginx_status
Eugeny
Спасибо! Как раз его и заиспользовал
Sheridan
камрады, хочу в отдельном файле с тасками сделать таск, зарегестрировать его changed а потом если changed, то в плейбуке, куда тасклист включон, вызвать нотифи. Реально?
Sheridan
как?
Sheridan
Да
А второй вопрос? ))
bebebe
А второй вопрос? ))
регистрируете переменную в отдельном файле с тасками в общей плейбуке после вызова этих тасок проверяете на changed, делаете notify
bebebe
все прямо как вы написали
Vadim
- debug: msg="call handler" when: foo is changed changed_when: True notify: do something
Sheridan
Спасибо! )
matt
как в lookup вложить переменную?
matt
'{{ lookup('dig', 'pcp.{{ domain }}.')}}
matt
вот так не работает
Sheridan
Камрады, нид хэлп. Как заэкранировать переменную? Что не пробовал - получается -[client] +[client.a] а надо -[client] +[client.{{ ansible_hostname }}]
Sheridan
{{ '{{ \"{{\" }}' }} ansible_hostname {{ '{{ \"}}\" }}' }}
matt
ох
matt
страшненько
Sheridan
тебе кмк подойдёт один уровень экранирования
Sheridan
{{ '{{' }} var {{ '}}' }}
Sheridan
это мне два надо было...
Sheridan
потому как у меня оно еще в with_items лежало и поэтому дважды парсилось...
matt
может быть мы что-то неправильно делаем и есть best practice
Sheridan
я искал. Гддето в иссуях ансибла про это болтали...
Sheridan
как раз экранирование там и нашол...
Sheridan
по факту ты inplace объявляешь переменную со значением '{{' и тут же её выводишь
matt
"{{ lookup('dig', 'pcp' + domain)}}"
matt
вот так работает
matt
https://docs.ansible.com/ansible/2.5/plugins/lookup/vars.html
Anonymous
Всем привет. Может кто кинуть ссылку по best practice организации структуры плейбуков, ролей и т.д? Читаю офф. доку и потихоньку мозг плавится. Возможно есть у кого в загашнике ссылка на хороший мануал?
Alexander
https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html#directory-layout
Roman
ansible-galaxy init <name_role> --offline Создаст необходимую структуру для роли
Roman
не за что)
Roman
—offline чтобы из galaxy не качал
Anton
Может кто подсказать что за нафиг
Anton
https://pastebin.com/QP3UVnrQ
Anton
drwxr-xr-x. user user unconfined_u:object_r:var_lib_t:s0 db
cent
Всем привет. Может кто кинуть ссылку по best practice организации структуры плейбуков, ролей и т.д? Читаю офф. доку и потихоньку мозг плавится. Возможно есть у кого в загашнике ссылка на хороший мануал?
https://github.com/ginsys/ansible-plugins https://github.com/nicolai86/ansible-rails-deployment https://github.com/debops/debops-playbooks https://github.com/openstack/tripleo-quickstart Советую подсмотреть просто чужие плейбуки
GithubReleases
ansible/ansible was tagged: v2.6.0rc4 Link: https://github.com/ansible/ansible/releases/tag/v2.6.0rc4 Release notes: New release v2.6.0rc4
Tadeusz
Сильный коммит https://github.com/ansible/ansible/commit/7fb92b6f457a03357641799bf67c45b8e136df4e
Anonymous
Подскажите пожалуйста, что не так у меня с блоком with_items ? https://github.com/RenderQwerty/desktop-config/blob/master/roles/desktop/tasks/software.yml Выбрасывает ошибку при выполнении плейбука - mapping values are not allowed. https://gist.github.com/RenderQwerty/cf69f2618894394128d2bab6fc8714f4
Vladimir
А зачем = ?
Vladimir
Двоеточие поставь там
Vladimir
state: installed name: "{{ item }}"
Vladimir
А то у тебя там =:
Anonymous
Да, это провтыкал. Поправил сейчас, но ошибка не ушла
Vladimir
Очень странно у меня так работает нормально
Anonymous
А версия какая ансибла?
Vladimir
2.5.5
Anonymous
и у меня..
Vladimir
Единственное на что он ругается что installed deprecated
Anonymous
да, там present надо поставить. но не спасает
Vladimir
https://pastebin.com/cGbUSbK1
Vladimir
Создай playbook отдельно и попробуй
Vladimir
Просто отдельный плейбук без роли
Anonymous
Так работает
Vladimir
Ну значит ищи проблему в отступах
Vladimir
И поставь себе vs code и плагины для ansible и yaml jinja
Vladimir
Там встроенный линтер есть, и поставь ansible-lint
Vladimir
https://docs.ansible.com/ansible/2.5/community/other_tools_and_programs.html
Vladimir
Мне просто так в лом клонить твою репу -_-
Anonymous
Порешалось. Было 2 проблемы. 1 - лишние пробелы, 2 - пытался сразу из роли вызывать tasks одновременно с include
Vladimir
Линтер подсказал ?
Anonymous
Не, в другом чатике пнули
Vladimir
кавычки
Vladimir
https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html#gotchas
Vladimir
Я же тебе написал всегда пиши так key: "value"
Vladimir
Разница между двойными и одинарными в спец символах
Nklya
Засовывать зависимости в dependencies такая себе идея
Nklya
потому что явное лучше неявного