Anonymous
я знаю кто это
Maksim
Всем доброго дня. Есть плейбук, в котором испольузется vars_prompt. Предназначение плейбука - создание пользователей. Запустили плейбук, приходит запрос на логин пользователя и после ввода на целевом хосте создаётся пользователь, копируется его ключ. Но есть проблема. При запуске такого плейбука из docker'а получаю сообщение
"Not prompting as we are not in interactive mode"
и соответсвенно не приходит запрос на ввод переменной. Можно ли это как-то обойти?
Конечно, как альтернатива, это передавать логин через extra_vars, но хотелось бы сохранить использование vars_prompt
manefesto
Читай про специфику докера
cent
cent
А есть такие, кто уже кактусов наелся с ansible docker_container, docker_image ?
В чем реально возникают проблемы?
Dez
Всем привет, подскажите как победить проблему в ansible.
В плейбуке отправляю переменную в таск.
name: "{{name}}"
port: "{{port | int}}" в таске всё обрабатывается так:
content: "{{ { 'service': { 'name': item.value.name|default(item.key) } | combine(item.value) } | to_nice_json }}"
На выходе получаю "port": "8081". Так вот вопрос, как избавиться от кавычек, то есть мне нужно инт значение порта? Если передаю число без переменной
port: 8081 то всё хорошо.
Vadim
А что такое content и зачем конвертить в json если у вас тут yaml?
Dez
потому, что отправляется это в консул, который хочет json
Dez
полностью таск выглядит вот так.
Dez
- name: consul_services
become: yes
copy:
dest: '/etc/consul/service-{{service_name}}.json'
owner: "consul"
group: "root"
mode: 0640
content: "{{ { 'service': { 'name': item.value.name|default(item.key) } | combine(item.value) } | to_nice_json }}"
with_dict: "{{ consul_services }}"
Vadim
тогда где в этом таске порт?
Dez
Вот это подсовывается из vars в content
consul_services:
"{{service_name}}":
port: "{{port | int}}"
tags: ["{{stage}}"]
Dez
И в целом всё хорошо и прекрасно, только вот порт передаётся, как строка.
Constantin
Dez
⚓️Damir
Dez
Dez
AB 🇨🇾 🍉
Всем привет! Подскажите какой-нибудь удобный способ (сервис, модуль или таска и тд) проверить не заканчивается ли действие https-сертификата в ближайшее время.
Nklya
Проверка сертификатов это больше про мониторинг, а не ансибл
Vadim
Roman
Nklya
Nklya
Я кстати видел сравнение проверок истечения сертификата и в итоге самая быстрая реализация получилась в скачивании ключа и вычитывание чиселки по офсету
Roman
я программист не настоящий, у меня так:
https://paste.fedoraproject.org/paste/aFJFtZj2FE~Xk4Kcz~zS-Q
bebebe
очень сложно, должно быть проще
echo | openssl s_client -showcerts -servername HOST -connect HOST:443 | awk ...
Danis
Как запустить таск на определенном хосте, используя метод delegate?
Oleksandr
delegate_to: hostname
Roman
у кого нибудь модуль zabbix_host работает?
fatal: [host -> localhost]: FAILED! => {"changed": false, "msg": "Failed to connect to Zabbix server: init() got an unexpected keyword argument 'validate_certs'"}
Roman
ansible 2.6.2
Womchik
руками выполняется?
Roman
в плейбуке
Womchik
руками типа zabbix_get такое выполняется?
Roman
несовсем понимаю причем тут zabbix_get, он к zabbix_api подключается же
Womchik
не модулем ансибла с этого хоста эта же операция выполняется?
Roman
да
bebebe
надеюсь долго и счастливо?
конечно оригинальный разработчик этого бота
bebebe
вплане что эти сообщение можно и не выводить, я видел с ним переписку. это типа нужно для логов
bebebe
странно что он не сделал это опционаьно
Aleksey
не странно. он не хочет делать никакое логирование. а для опциональности надо сделать бд. и хрванить в ней настройки пер канал. но это вариант логирования на его взгляд.
bebebe
да, именно это я читал, такое себе "оправдание"
bebebe
у него пробемы захостить этого бота, стейт можно хранить в публичных сервисах, начиная он git gists/repo, заканчивая google drive
bebebe
было бы желание (c)
bebebe
запустить этого бота можно в EKS (amazon kubernetes service) и хранить в s3 в рамках free tier limit, но объяснять ему на пальцах достаточно лениво, там видимо еще один "сильный инженер"
bebebe
Алексей, как кстати ваш плейбук для деплоя хомяков?
Nikita
Всем привет, подскажите пожалуйста, а как в awx/tower использовать переменные окружения? Хочу чтобы в survey автоматом подставлялся логин пользователя, под которым он в awx вошел
Nikita
Типа как в jenkins ${BUILD_USER_ID}
ep4sh
Подскажите, если для тасков (примерно для 85%) нужно повышение привелегий, то каким образом лучше оформить это в роли?
В главном плейбуке / в тасках роли / в инвентори?
подскажите best-practice)
ep4sh
да вот его куда сувать лучше
ep4sh
В главном плейбуке / в тасках роли / в инвентори?
подскажите best-practice)
Anonymous
Сейчас идёт вебинар от редхата - автоматизация сетей с помощью Ansible - https://primetime.bluejeans.com/a2m/live-event/tzvayptc
Div
добрый день, коллеги.
подскажите как правильно устанавливать плагины jenkins списком/словарем с помощью jenkins_plugin.
вариант из офф дока with_dict ругается что нет словаря, хотя я пробовал варианты словарей из тех же офф доков...
вариант с with_items отвечает :
skipping: [jenkins-test-vm] => (item=ansible) => {"changed": false, "item": "ansible", "skip_reason": "Conditional result was False"}
bebebe
Div
но мой вопрос касается именно проблемы с ansible
bebebe
а как вы поняли что нет словаря, через debug: var?
Sergey
Div
я пробовал варианты ["plugin1","plugin2"] ['plugin1', 'plugin2'] {plugin1, plugin2 }
Sergey
первое - список, второе - список, третье - хз что, но не словарь
Sergey
как-то так
Div
а как правильно?
Sergey
словарь - это:
{ "key1": "value1", "key2": "value2" }
Div
спасибо
Sergey
Andrei
Как сделать так, чтобы при деплое не указывать хост бд дважды (один раз в переменных - там он нужен чтобы создать конфиги сервисов, один раз в хостах - нужен чтобы понять куда СУБД деплоить, предполагается что БД один только хост)
Есть какой-то общепринятый подход?
В какую сторону смотреть?
bebebe
Andrei
я не это имел в виду.
Andrei
я имел в виду что в переменных (например группы) я укажу хост БД, переменная будет использована для генерации конфига приложения.
и одновременно в списке хостов мне нужно будет внести этот же хост (например в группу database)
получается что я одну и ту же информацию продублирую.
или я чего-то не понимаю или можно этого избежать?
bebebe
"{{ hostvars[groups['database'][0]].intentory_hostname }}"
Andrei
а так делают вообще? или я что-то на более высоком уровне неправильно делаю?
bebebe
я делаю, другие - не знаю
Andrei
bebebe
а что бы он искал? в примере описанном выше?
bebebe
типа hostvars['database-role'][0].inventory_hostname ?
Oleksandr
уменьшить дублируемость кода
Andrei
избежать дублирования.