Anonymous
🤷🏼‍♂️
Vladislav 👻
Если делаешь асинк, то очевидно, что у тебя последовательность может быть любая
Denis 災 nobody
На параллельном запуске возможно что не будет строго последовательно, но это фича
Ivan
как решать, всё на листы переводить?
Vladislav 👻
Если асинк, то тут надо копать именно в параллельность, в питоне был механизм регулирования параллельных выполнений, но сходу не отвечу
Vladislav 👻
Да нет там такого, если нет асинка
Vladislav 👻
Смешно, окей
Ivan
что там, ансибловые функции запрещены да?
Timur
У нас есть такие приборы Но мы вам про них не расскажем! (c) Манго-Манго
Vladislav 👻
Сделай отдельный пример
Vladislav 👻
Vladislav 👻
Ну ок, пойду тогда в выходной
Timur
Anonymous
https://t.me/ansible_dev
Антон
коллеги, подскажите пожалуйста, кто что пользует для статического анализа плейбуков и для контроля за code style?
inqfen
Yaml lint, ansible lint
Антон
ага, спасибо
Alex
А в sublime/atom оно интегрируется?
Антон
коллеги, помогите пожалуйста разобраться с массивами есть yaml с переменными вида: domains-scoupe: alfa: domain_names: - '*.xxx' - '*.yyy' - 'zzz.com' beta: domain_names: - '*.mmm.com' gamma: domain_names: - '*.nnn.org' - 'vvv.eee.info' есть переменных хостов, где указываются имена областей alfa, beta и так далее (в любой комбинации) и у меня задава пройтись по этим областям прочитал про subelements, получил вот такое: tasks: - name: test local_action: module: debug msg: '{{ item.0.ltfs-sd }}' loop: '{{ domains["beta"] | subelements ("domain_names", "skip_missing=True") }}' ругается что переменная не определена как правильно это сделать?
inqfen
ну потому что domains["beta"] нет
inqfen
вообще переменной domains нет
inqfen
там переменная наверное таки domains-scoupe должна быть
Антон
tasks: - name: test local_action: module: debug msg: '{{ item.0.beta }}' loop: '{{ domains-scoupe["beta"] | subelements ("domain_names", "skip_missing=True") }}'
Антон
поправил вот так
inqfen
кстати пишется scope)
Антон
кстати пишется scope)
=) поправлю, спасибо
Антон
ругается что "msg": "obj must be a list of dicts or a nested dict"
Антон
так, у меня вопрос более любопытный
Антон
и более концептуальный
Антон
у меня есть поименнованный массив, могу ли я в ансибле обращаться к его эменетам используя значения из другого массива?
Антон
применительно к данному случаю я в переменных хоста пишу: host_domains_scope: - beta
Антон
и смогу ли я написать что-то вроде {{ domains-scope["{{ host_domains_scope }} "]
inqfen
loop: '{{ domains["beta"] | subelements ("domain_names", "skip_missing=True") }}' тебе видимо так надо loop: "{{ domains["beta"]['domain_names'] }}"
inqfen
и смогу ли я написать что-то вроде {{ domains-scope["{{ host_domains_scope }} "]
сможешь, типа: - name: eee set_fact: result: "{{ domains_scope[item] }}" loop: "{{ host_domains_scope }}"
Антон
inqfen
В смысле вложенность циклов? Ты по листу итерируешься
Антон
аааа
Антон
просто сделать новую переменную, так понимаю?
inqfen
Так и так при итерации по листу у тебя будет эта переменная, которая каждую итерацию принимает следующее значение
inqfen
set fact для примера просто
Антон
попробую обяснить по другому.
Антон
можно ли как-то сделать чтобы в этом месте loop: "{{ domains["beta"]['domain_names'] }}" тоже был цикл? что-то вроде loop: "{{ domains["item"]['domain_names'] }}" loop "{{ variable_list }}}"
Антон
хотя возможно я хочу дичи )
Антон
при этом variable_list может иметь разный набор в зависимости от хоста
inqfen
https://docs.ansible.com/ansible/2.4/playbooks_loops.html#nested-loops
Антон
ага
Антон
похоже на правду
Антон
а 0 - это первое или последнее?
inqfen
0,1,2,....
inqfen
а вообще выглядит как то, что ты какую-то проблему себе наусложнял и сейчас героически решаешь
Антон
значит первое - 0
Антон
про Nested Loops уже для общего развития решил спросить
Антон
итить... тут даже такое есть - Looping over Parallel Sets of Data
Антон
хотя может быть крайне полезно...
Vladislav 👻
А в sublime/atom оно интегрируется?
В саблайм оба да, но ансибллинт какой-то специфичный...
Lev
В саблайм оба да, но ансибллинт какой-то специфичный...
Ансибл линт на винде заводится ныне?
Vladislav 👻
Макос 😬
Lev
Макос 😬
Да, на макос будет норм с агсиб лини
Timur
Lev
Плагин для vs code работает
Но я в саблайме сижу.. там плагин дергает ансибл линт, который хочет ансибл, который не ставится
Lev
Ансибл-Линт с ансиблом напрямую не связан же
Я 2 года назад переезжал с мака на вин. У меня ансибл линт тогда завелся в wsl только. Видимо настало время снова покопаться
Timur
А есть отдельные плагины с аналогичными функциями
Timur
Не знаю про саблайм, т.к. не пользуюсь. Для VS Code есть
Антон
Sublime+ yaml lint использую http://www.goncharov.xyz/it/sublime.html
мне в пайплайн надо =))) в гитлаб =))
Alena
Привет, подскажите пожалуйста, как правильно составить patterns модуля find, чтобы результат поиска не содержал пути, в которых есть определенные названия папок (/directory1/ и /directory2/), т.е их исключить из поиска, папки могут быть на любом уровне.
Lev
мне в пайплайн надо =))) в гитлаб =))
Вчера на эту тема переписка была активная..
Антон
И вот
угу, я вчера как раз почитав это и задумался об этом
Lev
угу, я вчера как раз почитав это и задумался об этом
Как нибудь разрожусь на статейку/митап, но вкратце так: 1. Есть jenkins 2. Есть гит репа, где лежат: * все роли * jenkinsfile 3. В jenkinsfile описан билд: * чекаутим репу * вычитываем список ролей и плйбуков * генерируем динамически стэйджи, размазывая между слэйвами: * слинтовать плэйбуки * слинтовать роли * проверить синтаксис ролей * прогнать тесты на индемпоиентность и иже с ними * запустить «е2е» тесты которые на существующие сервера катят хардкоженные сервера гонят плэйбук * если упали письмо в почту 4. Стараемся делать green build master Ессно есть прлбоемы, то как моно репо, создание вм, е2е тесты, не все индепотентно. Нет дженкинс шаред библиотек. Особо весело внедрять на существующий проект.
Timur
мне в пайплайн надо =))) в гитлаб =))
Посмотрите наши репы из lean-delivery. Там готовые примеры gitlab-ci и Travis ci есть
Vladimir ⚪️🔵⚪️
Привет
Vladimir ⚪️🔵⚪️
А можно как-то из ansible сгенерировать набор shell комманд?