Max
я ж говорю, в прошлый раз сценарий диалога был ровно такой же
Sergey
Антон
мда... странные люди заходят порой на огонек...
Boris 🦍
Привет, поскажите, плиз.
Собираю факты с двух хостов: условно m01,m02. А конекретно, парсится некоторый файл на наличие айпиадресов.
Так вот, есть две задачи:
1) Сформировать одну общую переменную лист объеденив в неё факты двух хостов (списки айпи адресов). Вроде, решил так:
- set_fact:
blocked_cidrs: |
{{ ( play_hosts | map('extract',hostvars) |
selectattr('cidrs.meta','defined') |
map(attribute='cidrs.meta') | list | unique ) }}
Может быть, есть более правильная конструкция.
И второй кейс
2) Сформировать не общий лист, как выше, а словарь в котором host=facts, например
ip_addreses = {'m01': [ips_list], 'm02': [ips_list]}
Как решить, второй кейс, темплейтингом как-нибудь ? Первый опционально
Дико извиняюсь. Возмжно, в порыве обсуждения мой вопрос был незамечен. Попробую апнуть ) . Надеюсь, описание более или менее внятное)
Alex
было весело сегодня. @tgadiev если будут подобные кейся - пингуй, я с удовольствием заскочу на огонёк отвлечься от моего кровавого энтерпрайза. все мир
Timur
Timur
Словарь сформировать можно легко с помощью фильтра combine
Boris 🦍
Boris 🦍
Andrey
пьяный погромист - печальное зрелище.
Denis 災 nobody
Временно вернём, но под наблюдение админов
Denis 災 nobody
Одна попытка
Антон
добрые вы ребята... жаль
Nick
На мой взгляд, этот тролль был довольно уныл. Маловато было технических аргументов. Вопрос про стейт он банально слил.
Гайрат
Anatolii
Здравствуйте. Подскажите, я копирую файл, но мне пишет что
"Destination directory /install-rabbitmq/files does not exist"
Anatolii
я так понимаю команда copy не может создавать каталоги..
Гайрат
Да
Anatolii
Да
а как с этим бороться?
Anatolii
создавать шелом каталог?
Lamobot
Anatolii
ясно, спасибо)
Nick
Модуль file
А если synchronize использовать? Он сможет автоматом создать каталог?
Timur
Lamobot
Nick
В этом году надеюсь побольше ансибла юзать и поменьше ручника всякого
Гайрат
создавать шелом каталог?
Нет конечно, если это переменная service_config_file, то модулем file можно создать директорию с path: {{ service_config_file | dirname }}.
Михаил
Есть неофициальные, установка через rpm
tati_v_p
Подскажите, как сделать выполнение определенной таски в плейбуке, если совпадают условия по
when?
Alex
tati_v_p
точнее вот так, как из этой таски в плейбуке, выболнить другую таску из этого же плейбука
- name: "test"
shell: echo “123”
when:
- param != none
- param1 == true
Что нужно использовать вместо шелл?
tati_v_p
То есть условия совпадают, значит переход на таску, которая находится чуть ниже по строчкам в этом плейбуке?
И в этой таске выполняется необходимый экшен
Timur
tati_v_p
tati_v_p
инклудить таску ради одной команды не очень затея
tati_v_p
пытаюсь сделать такую конструкцию в рамках одного плейбука
Антон
А что если просто продублировать таск?
tati_v_p
Timur
Просто добавьте его в нужное место
tati_v_p
И получается, хотелось бы эту таску не писать все время. А обращаться к ней при соблюдении условий
Timur
Timur
Так и так отдельный таск
Timur
Vitaliy
https://github.com/kwoodson/ansible-role-yedit
Попробовал модуль yedit, это мне и нужно.
Если значение не отличается, не правит - тут ок.
Но при изменении значения, перестраивает (форматирует по своему, меняя местами ключи) весь целевой yml файл.
Можно ли добиться просто изменения конкретного значения, оставив весь остальной yml файл без изменений ?
tati_v_p
Не очень понял суть проблемы
Имеется ввиду, чтобы эта таска была например доступна через ansible-playbook test.yml —tags test
А если таска будет написана в рамках таск, где используются условия, то как ее вызывать без соблюдения всех условий?
Timur
tati_v_p
Вы хотите странного
т.е эту задачу не решить?
Нельзя написать одну общую таску и к ней обращаться?
tati_v_p
Запуск через tags необходим для ручного запуска плейбука именно этой таски, без соблюдения условий.
Timur
Timur
Мешать теги с условиями - плохая идея
Timur
Какую задачу вы вообще решаете?
Андрей
У Татьяны второй заход)))
Anonymous
коллеги возник вопрос, который давно мучает, есть две группы
[db_servers]
server1.example.com
[web_servers]
server1.example.com
есть перменные для плейбука например
stg/db_servers.yml
port: 12345
stg/web_servers.yml
port: 33333
если запустить роль так, где группа будет указана web_servers
ansible-playbook -i env/stg web-servers.yml -K
То переменные возьмутся из роли db_servers - то есть первого вхождения сервера в группу, то есть порт будет port: 12345? как бороиться и как быть ?
Aleksey
Aleksey
Нужен модуль питона ruamel
Vitaliy
zhag
Чет у меня не робит посоны
- name: UPDATE | Stop queues
supervisorctl:
name: fast
state: stopped
Выдает
```fatal: [ca-yyz]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"config": null,
"name": "fast",
"password": null,
"server_url": null,
"signal": null,
"state": "stopped",
"supervisorctl_path": null,
"username": null
}
},
"msg": "ERROR (no such process)",
"name": "fast"
}
Ему что нужно обязательно конфиг указывать или что?
Андрей
msg": "ERROR (no such process)"
Андрей
вот это прочитали?
zhag
Да конечно
zhag
fast:fast_00 RUNNING pid 22399, uptime 1 day, 17:45:02
fast:fast_01 RUNNING pid 22343, uptime 1 day, 17:45:03
Андрей
цель выключить сервис?
zhag
Цель остановить очереди
zhag
попробую конфиг подсунуть ему
Андрей
вообще он говорит,что процесс fast не найден
Vitaliy
Нужен модуль питона ruamel
Так нет, после установки ruamel.yaml на целевые системы, yml остаётся в прежнем виде, разве что отступы для списков убирает и bool в нижний реистр переводит.
В общем, просто добавить в зависимости ruamel.yaml и прописать для задачи переменную ansible_python_interpreter: /usr/bin/python3
tati_v_p
Какую задачу вы вообще решаете?
с тем, чтобы при при проверке разных условий выполнялась определенная таска.
Но эта таска должна так же быть доступна из этого плейбука для запуска только этой конкретной задачи, если пользователю необходимо будет запускать ее без проверки условий.
Т.е выполнить этот плейбук необходимо без тасков с проверкой условий и сделать экшен, который один общий(как для проверок, так и без них)
Mista
Вместе с ночным кадром складывается впечатление что люди хотят портал самообслуживания впилить на ансибле
Lamobot