Timur
Timur
Timur
Она, вообще говоря, и так есть уже :)
Alex
Timur
Timur
Timur
Alex
Timur
Alex
Как сделать архив ансиблом? На удалённой машине нет места, хочу чтобы архив на машине с которой запускается ансибл создался архив.
Andrey
Evgeny
Alex
Evgeny
10 гигов архива будет передаваться 20 минут. На все это время просядет сеть. Применительно к ansible здесь нет bad practice, а архитектурно - узкое место сеть. Если окружение не требовательно к сети, то все нормально. Если нет - то желательно ограничить скорость sync с помощью опции rsync_opts: "--bwlimit=10M"
𝚔𝚟𝚊𝚙𝚜
Привет, хочется иметь возможность запускать плейбуки для групп объектов, но на одном хосте.
К примеру есть:
* юзеры в ldap
* образы на хосте
* виртуалки в libvirt
и т.п.
Сейчас каждый такой объект описывается как хост для ansible, чтобы можно было использовать --limit опцию для запуска плейбука только для определенных объектов или групп объектов.
Есть ли более подходящая абстракция для этого?
Bogdan (SirEdvin)
Инвентари?
Bogdan (SirEdvin)
Или еще есть фильтры по тегам для ролей, можно зайти с другой стороны.
Bogdan (SirEdvin)
Ну и лимит работает по группам: https://ansible-tips-and-tricks.readthedocs.io/en/latest/ansible/commands/#limit-to-one-or-more-hosts
Timur
Timur
А по ней делать луп
𝚔𝚟𝚊𝚙𝚜
да limit прекрасно работает, и по группам и по хостам, но мне не хочется оперировать хостами, я хочу оперировать объектами на хостах
Timur
Timur
Который передаётся любым удобным способом
Timur
Зачем регекспом?
Timur
Передаёте переменную как готовый словарь
Timur
В формате yaml
Timur
А там внутри уже любой набор данных может быть
𝚔𝚟𝚊𝚙𝚜
хм, ну ок допустим, а как сформировать этот словарь?
𝚔𝚟𝚊𝚙𝚜
допустим есть такой инвентори:
users:
group_a:
alice:
name: alice
dir: /home/alice
bob:
name: bob
dir: /home/bob
group_b:
fry:
name: fry
dir: /home/fryи плейбук mkdir.yaml который создает dir для каждого из них
𝚔𝚟𝚊𝚙𝚜
как мне запустить плейбук для:
1) юзеров в group_a,
2) всех юзеров
3) только для bob
𝚔𝚟𝚊𝚙𝚜
в случае когда alice, bob и fry - хосты, а group_a и group_b - группы хостов, это работает прекрасно:
1) ./mkdir.yaml -l group_a
2) ./mkdir.yaml
3) ./mkdir.yaml -l bob
𝚔𝚟𝚊𝚙𝚜
Bogdan (SirEdvin)
𝚔𝚟𝚊𝚙𝚜
то есть описывать объекты непосредственно в ролях?
Но ведь это тоже неправильно, объекты должны храниться в inventory, правильно?
Vadim
Vadim
пусть хосты читают нужные значения из общего словаря?
Vadim
ложишь словарь в vars.yml, хост устанавливает себе факт dir: users[inventory_hostname]['dir'] - и поехали
Sergey
Sergey
Условно, канеш, но иначе - башсибл.
𝚔𝚟𝚊𝚙𝚜
𝚔𝚟𝚊𝚙𝚜
звучит как переизобретение групп
Вот и я о том же, стоит ли овчинка выделки, если с подходом каждый объект - это отдельный хост, есть раздеоение на группы и --limit и так отлично работает.
Vadim
Vadim
разве что факты пересекаются, тут будет весело
𝚔𝚟𝚊𝚙𝚜
Sergey
𝚔𝚟𝚊𝚙𝚜
спасибо за дельные мысли
𝚔𝚟𝚊𝚙𝚜
вот что официальная дока говорит кстати:
tasks:
- import_tasks: wordpress.yml wp_user=timmy
- import_tasks: wordpress.yml wp_user=alice
- import_tasks: wordpress.yml wp_user=bob
𝚔𝚟𝚊𝚙𝚜
интересно а tags можно из inventory брать для каждого item в with_itmes :)
Vadim
𝚔𝚟𝚊𝚙𝚜
не, я про
- import_tasks: wordpress.yml
vars:
wp_user: "{{ item }}"
tags: "{{ item }}"
with_items: "{{ foo }}"
Asten
with_items deprecated же. loop
𝚔𝚟𝚊𝚙𝚜
Asten
Мне ансибл 2.7 говорит так)
Asten
В 2.11 выпилят совсе
𝚔𝚟𝚊𝚙𝚜
прекрасно
𝚔𝚟𝚊𝚙𝚜
Vadim
тэги - порождение сатаны
Ivan
Vadim
Вай?
созданы чтобы отвлекать от написания нормальных плейбуков и групп
Ivan
Легко сказать
Dmitry
Но скажу честно - я завязывают логику на теги, это и правда удобно
Dmitry
Vladislav 👻
Vladislav 👻
Я всегда пишу из расчета, запустил один плейбук и у меня вся инфра готова
Sergey
Vladislav 👻
А теги использую только на верхнем уровне в плейбуке в основном, тупо захотел только install или только config
Gleb
Vladislav 👻
но я могу написать плейбук all.yml в котором наинклудить все плейбуки и спокойно развернуть с нуля все
𝚔𝚟𝚊𝚙𝚜
а roles: не деприкейтнули еще в пользу import_role ?