Vladislav 👻
Потому что словами передать не получится, а передовать файлом можно через репу зашифровав предварительно
айтишник
Коллеги. Особеноо @tgadiev , подскажите ваше мнение. Есть документашка, которая рассказывает про переменные для подключения по паролю и имени пользователя. https://docs.ansible.com/ansible/latest/network/user_guide/platform_junos.html. И вот вопрос, про поле пароль. Там как-то не понятно, стоит слово vault. Как мне указать там запароленный vault адрес файлика или какие-то еще манипуляции ?
Timur
Потому что словами передать не получится, а передовать файлом можно через репу зашифровав предварительно
Ну, нет проблем. Что мешает держать ключ в отдельной приватной репе, куда доступ есть только у трастов?
Timur
Зачем при этом в основную репу ключ пихать?
Vladislav 👻
Зачем делать лишнее, когда все есть из коробки
айтишник
Vault-password file
Если я указываю название файла, он его воспринимает как пароль
Timur
Если я указываю название файла, он его воспринимает как пароль
Почитайте вот здесь: https://docs.ansible.com/ansible/latest/user_guide/vault.html
Vladislav 👻
А куда пихать ? В task?
Пихать можешь куда угодно, мы его держим просто в домашнем каталоге, а в ansible.cfg прописан путь до файла
Timur
А куда пихать ? В task?
Это не вам вопрос был :)
Vladislav 👻
Чтобы не костылить волт
А с чего это костыль то? Ты же пароли для ролей и инвентори не в отдельной репе держишь
Timur
А с чего это костыль то? Ты же пароли для ролей и инвентори не в отдельной репе держишь
Во-первых, инвентори в роли не должно быть вообще, если на то пошло :)
Vladislav 👻
Перечитай
Timur
Паролей в явном виде тоже
Alex
Какой-то треш с этим приватным ключом, что мешает поднимать виртуалки с прописанными пабликами?
айтишник
Вопрос все же остается, если поместить в inventory.
Timur
Если у вас используется авторизация по ключу, который постоянен и который может использоваться разными людьми, в чем смысл прокидывать его в репу? Он и так есть у нужных людей. Можно просто ссылаться на нужный файл в инвентаре
айтишник
Что указать в поле password, чтобы он понял и посмотрел файлик vault?
Timur
В ролях же это вообще не нужно тогда
Vladislav 👻
Что указать в поле password, чтобы он понял и посмотрел файлик vault?
В фалике просто плейн текст пароля, без yaml
Alex
Но приват должен быть у каждого свой же
айтишник
В фалике просто плейн текст пароля, без yaml
Я не об этом. В inventory выглядит так: [junos:vars] ansible_connection=network_cli ansible_network_os=junos ansible_user=myuser ansible_ssh_pass=!vault... - что тут указать? Если указываю plain text password, он воспринимает. Но я хочу, ему подсунуть vault файл. Если я там вписываю путь полный, он его воспринимает как пароль.
Timur
Я ссылку выше дал
Timur
Там все подробно расписано с примерами
Vladislav 👻
Ааа, создаешь шифрованный yaml с переменными типа vault_my_password, а в обычном vars делаешь присваение типа my_password = {{ vault_my_password }}
Vladislav 👻
my_password потом используешь в роли
Timur
Главное, заинклудать оба файла не забыть
айтишник
Почитайте доку по волту
Доку которую я скинул, все же там похоже на другую логику.
Denis 災 nobody
неожиданный вопрос.. есть пачка файлов, один из файлов является шаблоном. Если бы он был на ансибле в templates то через template при выкатке автоматом заменит переменные, а как заменить в нём все переменные, если он уже на удаленном сервере? Кроме как lineinfile|replace
Denis 災 nobody
Эм. Изврат конечно, но направление понял, спасибо
Nklya
Другой вариант извращений - гонять шаблонизатор на удаленной тачке
Nklya
Ну ставишь жинжу на удаленный хост и поехали. Самое простое- envsubst
Timur
еще можно через synchronize, mode=pull
Можно, но суть та же
Timur
Ну ставишь жинжу на удаленный хост и поехали. Самое простое- envsubst
Вместо двух тасок ансибла предлагаете возиться с установкой и запуском шаблонизатора?
Nklya
Второй из коробки есть
Nklya
Ну проблема этого подхода в том, что переменные явно придётся указывать
Nklya
https://unix.stackexchange.com/questions/294378/replacing-only-specific-variables-with-envsubst
Nklya
И что
Timur
См. название канала
Timur
А так - поиск и замену можно тем же sed или awk сделать легко
Nklya
Сед и авк это не про шаблоны
Timur
Можно и по шаблону ими работать
Nklya
И я не призываю это делать, это один из вариантов решения странной задачи
Timur
Ну, задача изначально странная, да
Nklya
Можно и гвоздем в ухе ковырять
Timur
Но раз задана в канале про ансибл, то и ответы логичнее давать в контексте ансибла
Nklya
Башсибл вполне себе разновидность ансибла
Denis 災 nobody
Ну, задача изначально странная, да
задача - есть камаилио, есть прогер который правит там параметры, есть несколько конфиг файлов где прописываются listen, нужно чтобы программер не влезая в кишки плэйбуков мог спокойно поправить свои конфиги, пушнуть и при повторном запуске плэйбука нужные файлы само обновило. Эти конфиги должны быть частью репы камаилио конфига, а не ансибла.
Denis 災 nobody
Башсибл вполне себе разновидность ансибла
хочу избежать. Так-то можно сохрнять например факты в некий файл и в %post пакета запускать шаблонизатор,который сам заменит параметры и выкатит шаблон в конфиг (делали почти так на прошлой работе)
Dmitry
А деплой чем производится?
И Откуда берутся значения для шаблонизатора?
Denis 災 nobody
А деплой чем производится?
Ансиблом ) сами конфиги из гита в пакеты, пакеты ансиблом, чуть позднее будет сборка пакета через гит хук и дженкинс
Dmitry
Template не можешь положить в репозиторий и при деплое его рендерить?
Dmitry
А. Пакеты.
Denis 災 nobody
Template не можешь положить в репозиторий и при деплое его рендерить?
Ансибла - нет, причина выше. Или костылить гит пулл реп выше и копировать в шаблоны отдельные файлы
Denis 災 nobody
Что ещё неудобнее
Denis 災 nobody
А. Пакеты.
Нужна возможность быстро откатить пакет, yum downgrade норм
Dmitry
То есть конфиги и код в разных репозиториях?
Dmitry
Имхо надо смотреть в сторону соединения двух процессов - деплоя кода и конфига
Denis 災 nobody
То есть конфиги и код в разных репозиториях?
Есть сам софт, он из офепы. Есть конфиги, кб на 100. Есть ансибл, где много ещё чего лежит. Что как объединить?
Dmitry
Сейчас в голову пришло: 1. Создать репу с ролью "kamailio-configs", туда запихнуть шаблоны, файлы и все что можно видеть разрабу. 2. В репе с Ansible создать зависимость от trunk/версии роли с конфигами 3. В репе с Ansible создать роль для деплоя софта 4. в репе с Ansible создать плейбук который деплоит эти 2 роли по вебхуку от репозитория camalio-configs
Denis 災 nobody
Ну почти так и будет
Denis 災 nobody
Будет собираться нужный пакет, выкатываться с конфигом на стейж и погоняться тесты. На прод только руками в maintenance time
Dmitry
Ну почти так и будет
Ну то есть и так все работало?) тогда что не так с таким раскладом?
Denis 災 nobody
Dmitry
4 будет через неделю, 2 не планируется
Круто. Я к тому, что если так было изначально задумано (до этого вопроса), то что побудило задать вопрос?
Denis 災 nobody
ну, сам вопрос выше.. есть шаблон, который выкачен пакетом, надо его модифицировать через ансибл.