Alex
чтобы не было пересечений
DVG_Lab
Понял спасибо, то есть какого специального смысла нет
Alex
насколько знаю никакого сокрального смысла нет.
DVG_Lab
Ясно, спс
marantz
ok
marantz
y
Aleksey
- name: Download and unarchive VictoriaMetrics release binary unarchive: src: "{{ victoriametrics_download_url }}" dest: "{{ victoriametrics_root }}" mode: 0750 owner: "{{ victoriametrics_system_user }}" group: "{{ victoriametrics_system_group }}" remote_src: True notify: - Restart Victoria Metrics Insert service - Restart Victoria Metrics Select service - Restart Victoria Metrics Storage service у меня есть такой таск который тащит бинари. таск отлично работает когда все три сервиса запущены на одном хосте( под что он и писался). но ожидаемо падает когда сервисы раскинуты между хостами. не соображу как подшаманить лучше
Отделение Bereke Bank
сделать три группы, три роли, запускать нужную роль на нужной группе
Alex
- name: Check topology health uri: url: http://localhost:8046/router/api/v1/topology/health method: GET register: get_topology_health_result until: get_topology_health_result.json is defined and get_topology_health_result.json | json_query('nodes.*.services[].state') | select('match', 'HEALTHY') | list | length == 4 retries: 12 delay: 5 подскажите, а как бы красиво записать условие в until? Чтобы не в одну строку. Там просто еще одно условие надо добавить будет и получается ОЧЕНЬ длинное условие
Aleksey
сделать три группы, три роли, запускать нужную роль на нужной группе
установка будет одниаковой придется дублировать код установки
Aleksey
установка будет одниаковой придется дублировать код установки
я ужасный человек. - name: Restart Victoria Metrics Select service become: true systemd: daemon_reload: true name: vm-select state: restarted обоготилось и теперь работает when: - "'victoria_metrics_select' in groups" - inventory_hostname in groups['victoria_metrics_select']
Aleksey
не вижу разницы
Aleksey
но готов поменять своё мнение при наличии объяснений
Timur
не вижу разницы
У вас в роли захардкожены имена групп получается
Timur
Я предлагаю обойтись без этого
Timur
Никакой привязки к группам в роли не нужно
Aleksey
У вас в роли захардкожены имена групп получается
да. это разумно. это был почти единственный аргумент который я был готов принять
Egor
да и не должно быть, роль - она сущность иного порядка
Timur
Просто в notify указываете одну переменную - и все
Timur
А значение переменной можете любым способом задавать - через инвентарь, плейбуку и т.п.
Aleksey
зато читаемо))
зато три роли гонять тесты в ci
Timur
И в хендлерах тоже никакой дополнительной логики не нужно тогда
Timur
Не нужно никаких трёх ролей
Timur
Перестаньте предлагать откровенную дичь
Timur
Обычная задача. Элементарный вызов хендлеров через параметр. Все
Timur
Не нужно лишних сущностей
Timur
Ансибл - это просто
NM
Ансибл - это просто
И просто и надежно. После Chef и Puppet
Andor
И просто и надежно. После Chef и Puppet
просто и надёжно как шелл-скрипт
NM
просто и надёжно как шелл-скрипт
Да вот я тоже стараю все через bash/shell делать и по мнимуму пыхтона..
NM
Но вот сегодня конечно же crio-inckubator удобнее было ставить через классику с пыхтоном 😉 только пыхтон 2.7 не тройка - упаси бог
Alexander
А что там?
Ну я на неоднозначное форматирование натыкался
Alexey
как мне зафейлить плейбук, если [не] выполняется какое-то условие? например, у меня в восстановленном в бэкапе PG должна быть БД с определённым именем дальше я её переименовываю и там чота с ней делаю... вот вдруг её нет в бэкапе, переименование я не запускаю, если в postgresql_info.databases её нет... но дальшейшие действия хочется не делать вообще , если такй БД нет, и с фейлом , т.к. это ненормально... мне представляется это некой dummy таской с условием failed_when: ... но я такой не нашёл, а dbg не подходит, т.к. она выполнится и при невыполнении условия..
Alexey
assert? fail + when?
блин ))) по общему списку-то я и не искал... а в каком разделе они - хз )) спасибо
Павел П.
А вот ещё фигня на 2.8.5: запускаю поейбук, все ок, и так раз пять. Запускаю шестой раз - и с минуту ничего не происходит, он тупо ничего не делает и только потом начинает выполнение. Параллельно на сервере ничего не происходит
Если вдруг кому интересно - судя по всему энтропии не хватало на сервере с которого ансибл запускался. Давно уже задержки перед выполнением плейбука нет после её "увеличения".
Timur
блин ))) по общему списку-то я и не искал... а в каком разделе они - хз )) спасибо
Все ансибл модули есть вот здесь: https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html
Timur
И да - для вашей задачи логичнее использовать assert
Timur
Он может и кастомное сообщение выдавать в случае фейла
Radik
привет всем извините за глупый вопрос но в доке я что-то поплыл и нужного не увидел как мне в варс инвентори правильно сделать список значений переменной, чтоб в таске сделать луп просто по имени списка?
Andor
просто делай список
Andor
--- all: children: local: hosts: localhost: vars: ansible_python_interpreter: python3 my_list_variable: - part1 - part2 - something-else
Radik
my_list_variable: - item1: part1, item2: blabla1 - item1: part2, item2: blabla2 - something-else
Radik
нужно что-то вроде такого
Radik
чтоб в списке было 2 перменных и при каждом лупе он брал 2 значения из разных переменных
Timur
нужно что-то вроде такого
Это называется "список словарей"
Radik
принято
Andor
https://gettaurus.org/docs/YAMLTutorial/#Lists-and-Dictionaries
Timur
Типа такого нужно? - item1: part1 item2: blabla1 - item1: part2 item2: blabla2 - something-else: ololo
Radik
ну и типа чтоб у списка было имя и в таске луп по имени просто
Timur
Ну, задайте имя
Alexey
Все ансибл модули есть вот здесь: https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html
Да, спасибо. Я знаю, просто не поискал про нему почему-то :)
Radik
спасибо сейчас переварю)
Radik
спасибо!)
Radik
ещё такой вопрос - item1: part1 item2: {{item1}}blabla - item1: part2 item2: {{item1}}blabla - something-else: ololo
Radik
как во второй итем подставлять значение первого?
Radik
грустно
Lamobot
Выносить item1 в отдельную переменную и использовать его уже через jinja
Radik
т.е. по сути 2 списка делать в каждом будет item1?
Lamobot
item: part1 list: - item1: {{ item }} item2: {{item}}blabla - item1: part2 item2: {{item}}blabla - something-else: ololo
Radik
нене мне нужно чтоб каждый item2 юзал значение своего item1 сорян за корявое изложение
Timur
Yaml такое не позволяет
Timur
Скорее всего, вы неправильно выбираете структуру данных
Lamobot
Можно попробовать якоря https://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#yaml-anchors-and-aliases-sharing-variable-values Или генерить список программно
Radik
хорошо буду менять логику тасков
Timur
Можно узнать, как исходная задача звучит?
Timur
Вполне вероятно, что есть более простой способ решить вашу задачу
Radik
я воздержусь, извините дабы не выглядеть уж совсем крайне глупым выставляя свою идиотскую задачу) Спасибо я понял, что делаю хрень)
Aleksey
https://github.com/brianshumate/ansible-consul/blob/master/defaults/main.yml#L149 так плохо тоже да ?