Konstantin
Строка запуска примерно такая ansible-playbook -i inventory.yml --vault-password-file vault playbook.yml
Konstantin
Konstantin
Без vault-id?
С указанием —vault-password-file
Lamobot
Попробуйте переменную в отдельный var файл положить, и проверить расшифровывается или нет так. В доке был вариант. https://docs.ansible.com/ansible/latest/user_guide/vault.html#viewing-encrypted-variables Скорее всего или в инвентарь криво уехала, или с паролем беда :)
Aliaksei
а вообще как вы используете uri модуль для запросов get\post куда-то т.е по большинству сценариев он запускается на целевой машине и вас это не парит? поделитесь кто как использует
Alexander
Народ, я тут вчера про копирование файлов спрашивал более быстрое чем copy, посоветовали синхронайз. У меня плейбук выполняется с become: yes и соответственно синхронайз падает с ошибкой: no tty present and no askpass program specified Кроме как добавления NOPASSWD для rsync в этом случае сделать ничего нельзя?
Alexander
become: no для таски? Или выбрать для неё правильного пользователя
У меня синк в /etc/subdir должен быть и владелец каталога - рут
Alexander
RHEL/CentOS 7
Grek 🇺🇦
а юзер то может туда писать?
Alexander
Юзер - может. Но владелец root.
Alexander
В принципе, это из коробки так, я мог бы переопределить.
Grek 🇺🇦
а рсинк на целевом хосте есть же?
Alexander
Есть
Alexander
С NOPASSWD отрабатывает
Alexander
Но с become я получаю ошибку "no tty present and no askpass program specified"
Sergey
У неё sudo есть
С паролем, судя по ошибке ;-)
Alexander
Ага
Sergey
Ага
Ну я так и написал - это bad practice. Кстати, а на что выписано sudo?
Alexander
Ну я так и написал - это bad practice. Кстати, а на что выписано sudo?
Я не админ целевого хоста, не могу посмотреть. А как будет лучше?
Sergey
Я не админ целевого хоста, не могу посмотреть. А как будет лучше?
Лучше - локальная УЗ с ssh-ключом, которая умеет в беспарольное sudo, вот тогда автоматизация действительно становится автоматизацией.
Alexander
Хех...
Отделение Bereke Bank
))0)
Ivan
Првиет! А ansible_env['SSH_CLIENT'] пропал или я чего-то не понимаю?
Aleksey
а его и не было никогда
Ivan
а его и не было никогда
а интернет говорит, был
Aleksey
интернет на любую тему говорит
Aleksey
это переменная оружения появляется от ssh клиента
Ivan
АГа, что-т опроизошло и теперь gather_facts надо делать руками
Ivan
спасибо
Aleksandr
Коллеги, утра. подскажите элегантный способ решения задачи. на анс перекатываюсь с салта, поэтому не все пока понимаю. * Есть роль для раскатки юзеров. * Есть дефолтные юзеры которых надо лить везде * Есть user per service/server * Есть разные площадки(цоды) пока реализовано как 1 плейбука, в которой задачи на all для разливки админов. и там же понапиханы отдельными кусками задачи для проливки юзеров в зависимости от роли сервера. вроде все ок, но выхватываю warning что такая-то роль серверов не найдена(не все сервиы есть во всех цодах) Как это правильно реализовывать в парадигме ансибла? под каждый цод сделать отдельные плейбуки?
Aleksandr
думал про вариант playbooks |_ users |_цод1 |_цод2
Aleksandr
Никто не мешает в одном плейбуке сделать несколько плеев, накатывающих юзеров на определённые группы серверов. Опять же всё зависит от того как у вас устроен инвентарь.
инвентарь разбит на цоды. инвентори-название_площадки(1,2,3,4)-название_зоны(1,2,3,4) я понимаю что можно было бы все завернуть в 1 инвентори файл и разделить зоны и цоды через чайлды и было бы нверно проще, но не хочется делать кашу в 1 файле
Aleksandr
#LDAP ноябрь
а можно исходный пост?) а то поиск по хештегу ведет в вопросы)
Lamobot
а можно исходный пост?) а то поиск по хештегу ведет в вопросы)
Это шутка канала. То что опять кто-то хочет переизобрести LDAP на ansible вместо использования профильных инструментов. :)
Lamobot
Ну и критика, что так делать не нужно.
Aleksandr
ну лдап городить тоже не хочется. вот прям от слова совсем.
Aleksandr
основная задача ключи пролить)
Sergey
ну лдап городить тоже не хочется. вот прям от слова совсем.
Ну тогда и ансибл городить не нужно по тем же мотивам.
Sergey
основная задача ключи пролить)
А отзывать их Пушкин будет?
Sergey
основная задача ключи пролить)
Основная задача, насколько я понимаю - вообще-то предоставить доступ с заданной гранулярностью. А залить фиксированные ключи Ансиблом - это не слишком удачный вариант решения основной задачи, потому что у задачи предоставления доступа изначально есть тёмный двойник - отзыв доступов. А проверить это очень просто: вот у того человека, который поставил задачу "предоставить доступ", уточни: нужно ли будет его отзывать, или он, условно, "навсегда" - до окончания срока жизни хоста?
Lamobot
Но вообще можно и одним плейбуком, просто вам нужно будет прописать пачку плеев по группам сервисов/серверов. И в group_vars/host_vars прописать пользователей, которых нужно установить, или как там у вас роль устроена. Скорее всего, будут проблемы со склеиванием списка пользователей для конкретной машины. И Сережа прав, ещё куча проблем с поддержкой и дальнейшим использованием.
Aleksandr
скажем так, ради 10 юзеров городить лдап я не буду точно. следить в моем случае это не проблема от слова совсем. временные доступы решаются проставкой экспайра на учетку. “отзыв” через абсент не вижу проблем тоже делать. ну да ладно. это уже лирика. но направление я понял, спасибо @Lamobot и на какие грабли не прыгать, тоже понял) спасибо @tnt4brain будем искать варианты.
Lamobot
о, гуд. спасибо!
Ещё есть вопрос, по каким причинам ушли от salt в сторону ansible?
Aleksandr
Ещё есть вопрос, по каким причинам ушли от salt в сторону ansible?
это скорее не только мой выбор был. сменил работу, совместно с коллегами решили что большинство за анс, а салт знают единицы + tower будет.
Lamobot
это скорее не только мой выбор был. сменил работу, совместно с коллегами решили что большинство за анс, а салт знают единицы + tower будет.
Ок. В догонку у Сережи тоже есть доклады/статьи, но я ссылок всех не помню https://habr.com/ru/post/494738/
Lamobot
Как ты решил проблему, что у тебя группа есть в обеих цодах, и у них общие групповые переменные? :)
Aleksandr
а кто-то юзает ансибл без гита? 0_о
Vladimir
Aleksandr
посмотрю спс.
Aleksandr
я кстати правильно понял что сейчас awx это тот же tower только без сапорта и по сути тупо dev ветка и полигон для тестов?
Lamobot
Я пока для себя проще сделал inventories/ DC1.yml DC2.yml group_vars/ host_vars/ При этом можно как сразу на весь инвентарь запустить плейбук -i inventories или на каждый ДЦ в отдельности -i inventories/DC1.yml
Lamobot
У меня таких немного, я их прямо в DC1.yml и DC2.yml прописал :)
Lamobot
Вроде когда-то задавали вопрос, как выделить доступные хосты из группы в отдельную? Есть краткое решение при помощи group_by модуля https://docs.ansible.com/ansible/latest/collections/ansible/builtin/group_by_module.html После любой таски, на которой недоступные хосты зафейлятся сделать # Add all active hosts to a static group - group_by: key: <название группы>
Yusif
Привет, ребята Пытаюсь вызвать модуль темплейт j2 из роли, но выдаёт ошибку о неизвестных переменных Это корректное поведение?
Yusif
Возможно.
вызов переменных в roles/x/vars/main.yml из roles/x/tasks/main.yml возможен без указания пути?
Grek 🇺🇦
А не наоборот?
Fire
вызов переменных в roles/x/vars/main.yml из roles/x/tasks/main.yml возможен без указания пути?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#understanding-variable-precedence
Yusif
Yusif
Всё пашет правильно, ребята, просто глупая опечатка была.
Yusif
Со вчерашнего вечера перерыл всё :)
Василий
Всем привет. Как сделать loop in loop: a: -1 -2 -3 b: -4 -5 -6 c: -7 -8 -9 - debug: var: SERVICE[item] loop: "{{ services }}" Запускаю так: —exrta-vars='{"services":["a","c"]}' я хочу чтобы цикл прошелся только по a,c указываю на вход список services [a,c], и теперь для каждого элемента списка services хочу вывести их значения [1,2,3],[7,8,9]
Анатолий
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/nested_lookup.html