Ruslan
похоже я просто не знаю про blocks
https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html
Stepan T.
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
Vadim
Eugeny
Спасибо!
Как раз его и заиспользовал
Sheridan
камрады, хочу в отдельном файле с тасками сделать таск, зарегестрировать его changed а потом если changed, то в плейбуке, куда тасклист включон, вызвать нотифи. Реально?
Sheridan
как?
bebebe
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
Создаст необходимую структуру для роли
Anonymous
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
Anonymous
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
Anonymous
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
потому что явное лучше неявного