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
Lamobot
Lamobot
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']
Timur
Timur
Aleksey
не вижу разницы
Aleksey
но готов поменять своё мнение при наличии объяснений
Timur
Я предлагаю обойтись без этого
Timur
Никакой привязки к группам в роли не нужно
Egor
да и не должно быть, роль - она сущность иного порядка
Timur
Просто в notify указываете одну переменную - и все
Timur
А значение переменной можете любым способом задавать - через инвентарь, плейбуку и т.п.
Отделение Bereke Bank
Timur
И в хендлерах тоже никакой дополнительной логики не нужно тогда
Timur
Не нужно никаких трёх ролей
Timur
Перестаньте предлагать откровенную дичь
Timur
Обычная задача. Элементарный вызов хендлеров через параметр. Все
Timur
Не нужно лишних сущностей
Timur
Ансибл - это просто
Egor
NM
Andor
NM
Но вот сегодня конечно же crio-inckubator удобнее было ставить через классику с пыхтоном 😉 только пыхтон 2.7 не тройка - упаси бог
Alexander
А что там?
Ну я на неоднозначное форматирование натыкался
Alexey
как мне зафейлить плейбук, если [не] выполняется какое-то условие?
например, у меня в восстановленном в бэкапе PG должна быть БД с определённым именем
дальше я её переименовываю и там чота с ней делаю...
вот вдруг её нет в бэкапе, переименование я не запускаю, если в postgresql_info.databases её нет... но дальшейшие действия хочется не делать вообще , если такй БД нет, и с фейлом , т.к. это ненормально...
мне представляется это некой dummy таской с условием failed_when: ...
но я такой не нашёл, а dbg не подходит, т.к. она выполнится и при невыполнении условия..
Sergey
Andor
Alexey
assert? fail + when?
блин ))) по общему списку-то я и не искал... а в каком разделе они - хз ))
спасибо
Павел П.
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 значения из разных переменных
Radik
принято
Andor
https://gettaurus.org/docs/YAMLTutorial/#Lists-and-Dictionaries
Timur
Типа такого нужно?
- item1: part1
item2: blabla1
- item1: part2
item2: blabla2
- something-else: ololo
Radik
Radik
ну и типа чтоб у списка было имя
и в таске луп по имени просто
Timur
Ну, задайте имя
Alexey
Radik
спасибо
сейчас переварю)
Radik
спасибо!)
Radik
ещё такой вопрос
- item1: part1
item2: {{item1}}blabla
- item1: part2
item2: {{item1}}blabla
- something-else: ololo
Radik
как во второй итем подставлять значение первого?
Lamobot
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
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
так плохо тоже да ?