Денис
Всем привет!
Если нужно подставить в конфиг файл ip адрес интерфейса динамически, с помощью jinja, а интерфейсов несколько. Как поступаете? Например так:
{%for ip in hostvars[host]['ansible_all_ipv4_addresses'][:2]%}{%if ip != '10.0.2.15'%}{{ip}}{%endif%}{%endfor%}
Или есть более идемпотентый способ ))
k
Денис
на 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
и в чем его смысл :)
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
А зачем на хостах хранить релизы?
Aleksey
Aleksei
А зачем на хостах хранить релизы?
Изначально планировалось для отката в случае непредвиденных ситуаций.
Сейчас сидел, чесал голову и тоже подумал, что ни к чему. Главное просто симлинком переключиться на новый релиз, а старый можно будет удалять после переключения сразу же.
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
Может поэтому у меня все работает?)
Denis 災 nobody
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
Чот пока скучноват
Aleksey
Ну как минимум парсер :)
Aleksey
/help migrate 2.5
Vadim
Aleksey
/help loop
Ansible Help Bot
/help loop
No module 'loop' found
Vadim
пока смигрирую его с лаптопа
Aleksey
osa
Aleksey
openshift
Dmitrii
О! Я нашел что отвалилось
Dmitrii
inventory_dir пустая
Dmitrii
https://github.com/ansible/ansible/issues/30901
Dmitrii
Точь в точь мой кейс. У меня тоже на лету хост создается в AWS и через add_host я его в inventory добавляю
Dmitrii
Aleksey
Reusable 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:
Aleksey
Ievgen
лазил в код модуля, там в этом месте немного невменяемая на мой взгляд хрень, кто в состоянии посмотреть и прокоментировать, отпишите плиз
Aleksey
господа предлагаю первоопрельское. пойти на issue трекер ансибла и позаводить там issue в стиле "вы ебанулись"
Vadim
Nklya
Можно в трекере солта))