Денис
Всем привет! Если нужно подставить в конфиг файл ip адрес интерфейса динамически, с помощью jinja, а интерфейсов несколько. Как поступаете? Например так: {%for ip in hostvars[host]['ansible_all_ipv4_addresses'][:2]%}{%if ip != '10.0.2.15'%}{{ip}}{%endif%}{%endfor%} Или есть более идемпотентый способ ))
Денис
на AWS дефолтный серый
k
Тогда указывай конкретное имя интерфейса: {{ ansible_IFACE.ipv4.address }}
Денис
Спасибо!👍
k
Спасибо!👍
Если я попутал имя переменной - прогони по хосту модуль setup и посмотри, какие факты он собирает.
Денис
Да, конечно. Т.е. в переменных можно вносить название интерфейса и его использовать. Главное, чтобы название интерфейса не менялось ))
Денис
Кто как задает переменные среды через command export или создаете скрипт с переменными и его запускаете? Хотелось бы как-то изящнее ))
Aleksey
- name: download collections command: .... args: chdir: "{{ noc_root }}" register: s changed_when: "'CHANGED' in s.stdout" environment: http_proxy: "{{http_proxy}}" https_proxy: "{{http_proxy}}" NOC_CONFIG: "{{config_order}}"
Денис
Алексей, а где они хранятся после выполнения таски или используются только при выполнении модуля? Область видимости задается? Например, если задал переменную и потом перегрузил службу или машину?
Aleksey
конечно только на выполнение. вы же не хотите что бы таски влияли друг на друга
Денис
Понятно. Такого способа я не знал, но сейчас мне нужно задать на постоянной основе, чтобы переменные хранились после перезагрузки. Может тогда сохраню в systemd - ..service файлах
Aleksey
наверное лучше в системд файлах указать EnvironmnetFile= и подсовывать их в файл темплейтом
Денис
Ага, именно так ))
Vadim
я накостылял бота - @ansible_ru_bot - для помощи начинающим осваивать документацию. Если понравится можем добавить сюда
simplemice.eth
в боте перевод доки на русский ? или в чем проблема почитать документацию которая нормально написана?
simplemice.eth
вы бы хотя бы написали что он умеет
simplemice.eth
и в чем его смысл :)
Vadim
в боте перевод доки на русский ? или в чем проблема почитать документацию которая нормально написана?
я бы не доверял переводу на русский, мелкие неточности перевода могут сильно попоротить жизнь. Смысл бота в том, чтобы я не копался в урлах, когда нужно помочь человеку с вопросом "Как мне заменить строку в файле" - "lineinfile"
simplemice.eth
хм, ну пусть @freeseacher решает... я не вижу особой пользы пока в нем
Aleksey
Вообще канал @Dragonflybsd
simplemice.eth
ну ты больше тут общаешься чем мы )
Aleksei
Народ, нужен помогай. У меня что-то беда с идеями. Решил использовать Ansible для деплоя приложения на сервера. Требуется сделать так, чтобы Ansible в определённой директории (например /project/releases) сохранял последние 3 релиза, а всё, что старше - удалял. В данный момент на Bash условие выглядит так: for release in `ls -t1 $ releases | tail -n+4`; do if [ $(readlink "current-release" --canonicalize) != $(readlink "releases/$release" --canonicalize) ]; then rm -rf "releases/$release"; fi done Как примерно сделать условие на то, чтобы не удалялся текущий проект - я примерно представляю, а вот с последними 4 директориями сложнее...
Alexander
А зачем на хостах хранить релизы?
Aleksei
А зачем на хостах хранить релизы?
Изначально планировалось для отката в случае непредвиденных ситуаций. Сейчас сидел, чесал голову и тоже подумал, что ни к чему. Главное просто симлинком переключиться на новый релиз, а старый можно будет удалять после переключения сразу же.
Aleksei
deploy_helper модуль
Ничоси! Тут и такое есть?.. Мне нравится. Спасибо!
Dmitrii
Хмхм
Dmitrii
А что такого серьезного поменяли в 2.5?
Dmitrii
Я подозрительно его установил и у меня ничего с 2.2 не сломалось. Так ведь не бывает
Dmitrii
Это же Ansible
Aleksey
Теги сломали
Dmitrii
Ну у меня теги только к таскам были и то редко
Dmitrii
И вроде щас запускал по тегу nginx тоже работало
Dmitrii
Всяких извратских include у меня нету
Aleksey
Бекам сломали
Dmitrii
А там что? У меня везде как become_user использовалось
Aleksey
На инклуде сломан бекам
Dmitrii
У меня вроде такого нету 👌
Aleksey
Ты чего не програмируешь на конфигах?
Aleksey
У тя чо самая сложная конструкция это template ?
Dmitrii
Ну я всякую хуету запиивал в ансибл плагины на питоне
Dmitrii
И вызывал из шаблонизатора
Dmitrii
Я жы программист а не девопс
Dmitrii
Может поэтому у меня все работает?)
Vadim
https://t.me/pro_ansible/41795 какбы :)
Vadim
похоже ручками я его добавить не могу, наверное его надо пригласить
Aleksey
/help command
Ansible Help Bot
/help command
https://docs.ansible.com/ansible/latest/modules/command_module.html command - Executes a command on a remote node
Aleksey
Чот пока скучноват
Vadim
Чот пока скучноват
А что именно тебе надо?
Aleksey
Ну как минимум парсер :)
Aleksey
/help migrate 2.5
Ansible Help Bot
/help migrate 2.5
No module 'migrate 2.5' found
Vadim
Aleksey
/help loop
Ansible Help Bot
/help loop
No module 'loop' found
Vadim
Ну как минимум парсер :)
пиши хотелки в https://github.com/vrutkovs/ansible-telegram-bot/blob/master/bot.py
Vadim
пока смигрирую его с лаптопа
Alexander
У тя чо самая сложная конструкция это template ?
А где посмотреть сложные конструкции и вдохновиться?
Aleksey
osa
Aleksey
openshift
Dmitrii
О! Я нашел что отвалилось
Dmitrii
inventory_dir пустая
Dmitrii
https://github.com/ansible/ansible/issues/30901
Dmitrii
Точь в точь мой кейс. У меня тоже на лету хост создается в AWS и через add_host я его в inventory добавляю
Dmitrii
У тя чо самая сложная конструкция это template ?
А зачем кстати писть "сложно"?
Aleksey
Reusable roles
Dmitrii
Reusable roles
Explodable roles ты хотел сказать?
Dmitrii
Мои вот роли работают и на AWS и на Vagrant как ни странно
Denis 災 nobody
Reusable roles
чего чат не переименовал под 1 апреля? )
Ievgen
Всем привет, короче курю я aws_ec2 inventory в 2.5 но документации пшочти фиг да нифига, короче не выходит каменный цветок, как говорится "Бэн, это Данила, Ай нид хэлп!"
Ievgen
Конкретно тут: http://docs.ansible.com/ansible/2.5/plugins/inventory/aws_ec2.html секция hostnames для начала, по логике, она регулирует откуда брать хостнеймы в инвентори из тегов/или другой инфы, на практике это работает хуй знает как
Ievgen
мне так и не удалось заставить брать хостнейм из тега Name:
Ievgen
лазил в код модуля, там в этом месте немного невменяемая на мой взгляд хрень, кто в состоянии посмотреть и прокоментировать, отпишите плиз
Aleksey
господа предлагаю первоопрельское. пойти на issue трекер ансибла и позаводить там issue в стиле "вы ебанулись"
Nklya
Можно в трекере солта))