Aleksandr
вот статья https://codereviewvideos.com/course/ansible-tutorial/video/looping-in-ansible-with-items и там в середине Looping With Dynamic Items попробую чтоли
Anonymous
коллеги, подскажите а можно как то паралельно запустить такой таск - сервисов много и хотелось бы чтобы он их не по очереди останавливал а сразу все - пример таска - name: stop services systemd: name: "{{ item.service_name }}@{{ item.node_no }}" state: stopped with_items: "{{ services}}" ignore_errors: true
inqfen
inqfen
баньте вот это
inqfen
В группе состоит
inqfen
Отбой, пардон
Timur
вот статья https://codereviewvideos.com/course/ansible-tutorial/video/looping-in-ansible-with-items и там в середине Looping With Dynamic Items попробую чтоли
За такой код я бы больно бил "тольстый-тольстый проволока", или по-русски - ломом
Daniel
всем привет. пытаюсь сделать: {{ postgresql_version | regex_replace('\.', '') }} но ругается на синтаксическую ошибку. мол экранировать так нельзя - не нравится '\.' . Мне нужно в строке заменить точку. чяднт?
Aleksandr
За такой код я бы больно бил "тольстый-тольстый проволока", или по-русски - ломом
так я и выясняю как правильно сделать, я ж не знаю покачто делаю так: одним таском выясняю какие контейнеры есть на хостах, а потом передаю их список в loop и норм работает 😊
Daniel
\\.
спасибо. еще подумал, но решил что было бы странно так делать )
Timur
Это ж убиццо апстену: - name: "create website directory - {{ item.item.name }}" file: dest="/var/www/{{ item.item.directory }}" mode=775 state=directory owner="{{ nginx_user }}" group="{{ nginx_group }}" recurse=no when: item.stat.exists == False with_items: "{{ website_directory_exists.results }}"
Timur
Строчный синтаксис в плейбуке, сравнение с False...
Aleksandr
я извиняюсь, что такое "строчный синтаксис"?
Aleksandr
это вот это - "{{ website_directory_exists.results }}" ?
Timur
я извиняюсь, что такое "строчный синтаксис"?
Это вот это: mode=775 state=directory Вместо mode: 775 state: directory
Aleksandr
Это вот это: mode=775 state=directory Вместо mode: 775 state: directory
ааа! понял, спасибо. даже не заметил всегда в yml пишу через :
#Rλatan
Делаешь jinja template в vars вида: mathced_items: | ... После чего подгружаешь файл через include_vars Либо пиши модуль на python, но больше похоже на то что ты взял не тот инструмент
Может пригодится, разобрался https://stackoverflow.com/questions/59814211/how-to-reduce-a-list-against-another-list-of-patterns set_fact: files_to_cleanup: | {{ files_to_cleanup | reject('search', item) | list loop: "{{ whitelisted_patterns }}"
Aleksey
Коллеги, что там такое происходит ? https://github.com/ansible/molecule/commit/16342db4ed5a99a91bedb487570780c69ccdcbf3
Aleksey
молекула больше не будет работать с gce ? вообще ни с кем работать не будет ? даёшь только докер и подман ?
Kirill
Коллеги как за джоинить список через запятую в одинарных кавычках
Kirill
не получаеться и все
Kirill
уточню не элементы списка а запятая должна быть в кавычках
Kirill
угу
Kirill
там SQL запрос генериться
Kirill
'item1'||','||'item2'
Kirill
собственно надо разделитель ||','||
Lamobot
собственно надо разделитель ||','||
'{{ testlist|join("'',''")}}'
Lamobot
'{{ testlist|join("'',''")}}'
Timur
Коллеги, что там такое происходит ? https://github.com/ansible/molecule/commit/16342db4ed5a99a91bedb487570780c69ccdcbf3
Они там большой рефакторинг затеяли. Различные драйвера выносят за пределы основного кода молекулы - в отдельные репы. И их можно будет подключать как плагины
Aleksey
но репа пуста
Alex
а как можно проверить, что переменная является валидным json'ом?
Alex
from_json фильтр
ошибку выдает
Alex
TASK [Task1] *** ok: [127.0.0.1] => changed=false ansible_facts: api_response: 404 page not found TASK [Task2] *** fatal: [127.0.0.1]: FAILED! => msg: |- the field 'args' has an invalid value ({'msg': '{{ api_response | from_json }}'}), and could not be converted to an dict.The error was: Extra data: line 1 column 5 (char 4)
Maksim
И снова всем привет. Коллеги, подскажите как правильно сконфигурировать firewalld Смотрю в доку https://docs.ansible.com/ansible/latest/modules/firewalld_module.html Хочу сделать создание сервисов, и привязку к ним портов, но нужного мне не вижу
Maksim
- name: add firewall rules firewalld: zone: public port: 5432/tcp permanent: yes state: enabled immediate: yes service: postgresql На это ругается
Maksim
Может нужно что-то одно указывать, или порт или сервис
да, я понимаю. Но если firewall не знает о нужных мне сервисах, мне их сначала надо добавить, а потом привязать. Как это сделать?
-
- name: add firewall rules firewalld: zone: public port: 5432/tcp permanent: yes state: enabled immediate: yes service: postgresql На это ругается
The service must be listed in output of firewall-cmd --get-services. там есть postgresql в выводе?
Maksim
The service must be listed in output of firewall-cmd --get-services. там есть postgresql в выводе?
postgres есть. но у меня среди прочих есть сервисы которых там нет, и юнитов для них тоже нет
-
postgres есть. но у меня среди прочих есть сервисы которых там нет, и юнитов для них тоже нет
как вариант таскать к каждому фаерволу файлы с сервисами? https://firewalld.org/documentation/howto/add-a-service.html
#Rλatan
Кто знает что определяется первым в ролях defaults или vars ? если для примера в defaults есть перменная deb.defaults а в vars deb.current. Таск вызывает package: name: "{{ deb.defaults + deb.current }}"
Timur
#ненадотак
#Rλatan
проверяю что выдаст, дефалтс кажется первым выполняется
Timur
проверяю что выдаст, дефалтс кажется первым выполняется
Неважно, что первым. Важно - у чего больше приоритет.
Timur
У vars приоритет выше
inqfen
проверяю что выдаст, дефалтс кажется первым выполняется
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Timur
Не используйте переменные роли в vars, которые хотите менять в плейбуке или инвентаре
inqfen
1 самый низкий
#Rλatan
доки по ансибл самые отвратительные и не полные, лучше в сорсы смотреть сразу там хоть логику можно понять, но кто пишет доки не понятно.
inqfen
artb1sh
inqfen
Почитай доки chef, вот где хардкор
artb1sh
Почитай доки chef, вот где хардкор
Доки по saltstack идиальны
inqfen
они еще и друг другу в паре мест противоречат, потому что в разное время писалось
artb1sh
@saltstack
inqfen
Доки по saltstack идиальны
Они кратки и хороши я бы сказал
inqfen
В плане объяснения как оно работает ансибл лучше
inqfen
Доки солта можно читать только если знаешь хотя бы базово питон
#Rλatan
куру Guix сейчас
#Rλatan
мегрировать буду стак свой, ансибл сломанны и меняется по 10 раз на дню
inqfen
мегрировать буду стак свой, ансибл сломанны и меняется по 10 раз на дню
Именно поэтому самая юзаемая система пуша всего
inqfen
Никто же тебя насильно не сажает, берёшь и не используешь его