inqfen
неважно, включен или выключен - он существует
Игорь
в ответе только absent
restarted
running
stopped, котрые так же валидны в запросе
inqfen
Игорь
inqfen
Это цель
inqfen
restarted - должен быть перезапущен, started - запущен - absent - удален, present - существовать, в любом состоянии
Игорь
в ответах видимо pending/restarting/running/stopped
Игорь
ну да, я поленился лезть
Игорь
это значения не имеет все равно
Игорь
невозможно понять, надо просто запомнить.
inqfen
Вообще ты юзаешь старый модуль
inqfen
https://docs.ansible.com/ansible/latest/collections/community/aws/ec2_instance_module.html
А в новом как раз вполне однозначно написано - Goal state for the instances.
inqfen
Но вообще по моему опыту, как раз рулить инстансами за редкими исключаениями ансиблом неудобно
inqfen
Там еще различные косяки у модулей встречаются, которые приходится обрабатывать программированием на ансибле, что уже плохо
Игорь
Игорь
разных
Игорь
в данном случае есть 1-10 иммутабельных инстансов, которые разом поднимаются и удаляются
Игорь
inqfen
Игорь
Sergey
Sergey
90+ инстансов в 5 регионах.
inqfen
400+ в штуках 10) Таки - неудобно)
Игорь
Игорь
это даже не один экземпляр более-менее развесистого сайта
inqfen
Да размер не показатель, кому-то и при 1000+ будет норм, кому-то и с 10 не норм
inqfen
Одному вот надо создавать отдельные диски, потом цеплять их к инстансам у которых рут разделы меняются - второму не надо
Игорь
можно кейс для первого? зачем инстансу менять рутовый раздел?
inqfen
можно кейс для первого? зачем инстансу менять рутовый раздел?
Ну вот был 200, а потом нужен 100, а потом 50, а потом 300, бывает вполне и такое. Причем данные на нем не важны, а вот данные на подцепленном диске (или вообще на efs) это не трогает. Инстанс можно без проблем пересоздать - но вот в ансибле если ты скажешь - инстансу нужен новый размер рутового диска - он скажет пардон, он не меняется. Терраформ инстанс пересоздаст
inqfen
а если у тебя создано 10 дисков и 10 инстансов например (count, for_each) - он подцепит для пересоздавшихся и диски в том же порядке
Alex
Anonymous
пытаюсь сохранить факты делегированных машин на хостовую. Почему эта конструкция не работает?
---
- name: gather
setup:
gather_subset:
- '!all'
- '!any'
- hardware
delegate_to: "{{ item }}"
delegate_facts: true
loop: "{{ servers }}"
- name: print
debug:
msg: "{{ hostvars[servers].ansible_default_ipv4.address }}"
loop: "{{ servers }}"
В доках ансибла описана delegate_facts, сделанная специально для этого. Но нужные переменные во время второго таска отсутствуют
Timur
Всем привет! Ошибка при попытке установить модуль cisco.ios через ansible-galaxy: ERROR! Unexpected Exception, this is probably a bug: <urlopen error _ssl.c:1107: The handshake operation timed out>, я так понимаю проблема не у меня, кто сталкивался?
Div
это не ошибка ансибля. у вас проблемы с сертификатом. возможно вы за прокси с ssl\tls inspection сидите.
Lamobot
Timur
Timur
Vladimir
Vladimir
пускай безопасники смотрят чем занимаешься :)
Lamobot
Anonymous
Anonymous
пойду дальше гуглить в общем
Sergey
Lamobot
Anonymous
а мне нельзя там ничего указывать, делаю роль, в которую массив с адресами приходит
Anonymous
в любом случае сейчас попробую добавить их в инвентори для проверки
tutunak
А офф доки по ansible-test нет? Что зачем? В последних чейнж логах она фигурирует. Зачем оно нужно не могу понять
Anton
Господа, кто-нибудь управлял секьюрити группами ec2 через ансибл? Вы использовали прям такие конструкции, которые указаны в мануале? Как-то то, что создается через веб не равно тому, что создает ансибл
tutunak
Fire
Fire
Так не работает)
Anonymous
Anonymous
я как-то неправильно обозначаю элемент листа или че? Почему он пытается обратиться к 'item', а не к элементу, указывающим на него?
- name: dsgaerg
debug:
msg:
- "{{ tosca_hash + hostvars.item[0].item[1] }}"
with_nested:
- "{{ groups['servers'] }}"
- "{{ facts_params }}"
———
The task includes an option with an undefined variable. The error was: \"hostvars['item']\" is undefined\
Sergey
Anonymous
@tnt4brain а как тогда?
{"msg": "template error while templating string: expected name or number. String: {{ tosca_hash + hostvars.['item[0]'].['item[1]'] }}"}
{"msg": "template error while templating string: expected name or number. String: {{ tosca_hash + hostvars.[item[0]].[item[1]] }}"}
Sergey
Anonymous
ой ой внатуре
Viktor
Привет, мне бы хотелось в inventory1 задавать переменные из inventory2, inventory3, конкретно:
redis_all_hosts: "{{ redis_dev_hosts + redis_prod_hosts }}", где redis_dev_hosts кладется в inventory2, redis_prod_hosts - в inventory3.
У меня такое получится?
Sergey
Viktor
Какую задачу решаешь?
У меня один redis-sentinel для двух окружений.
Из inventory2 делаются редисы дева, из inventory3 редисы прода, инвентори1 смотрит на переменные из inv2, inv3 и апдейтит redis-sentinel
Lamobot
Viktor
Или же, могу я задавать инвентори в самом плейбуке, а не в командной строке?
Vladislav 👻
мы дублируем значения в группе all
Vladislav 👻
т.к. в группе можно иметь множество файлов, то общие файлы называются уникально и одинаково между инвентори
Vladislav 👻
симлинк на группу хреново, симлинк на каждый файл - лень
Anton
Господа, кто-нибудь управлял секьюрити группами ec2 через ансибл? Вы использовали прям такие конструкции, которые указаны в мануале? Как-то то, что создается через веб не равно тому, что создает ансибл
Неужели все для aws тераформ используют? Если сравнивать эталонный сервер через модуль ec2_group_info с теми, которые я создал через ансибл, то никаких отличий нет, но у модул ec2_group диф показывает дополнительные строчки
Может так будет понятнее, в чем проблема.
"ip_ranges": [
{
"cidr_ip": "22.33.44.55/24"
- },
+ }
+ ],
+ "ipv6_ranges": [],
+ "prefix_list_ids": [],
+ "user_id_group_pairs": []
+ },
+ {
+ "ip_protocol": "-1",
+ "ip_ranges": [
{
"cidr_ip": "11.22.33.44/32",
"description": "prometheus"
- },
+ }
+ ],
+ "ipv6_ranges": [],
+ "prefix_list_ids": [],
+ "user_id_group_pairs": []
+ },
Max
симлинк на группу хреново, симлинк на каждый файл - лень
как-то тоже сложно. по моей схеме нужно стянуть из гита два репа - с глобальными переменными и роль с локальными переменными. далее запустить плейбуку с указанием двух инвентори.
т.к. глоабльные переменные хранятся в одном файле, то не будет такого, что в какой-то роли забыли поменять что-то
Yks
как можно избежать "the output has been hidden due to the fact that 'no_log: true” если оно во внешней роли?
Пытался через екстраварс засетить log=true и no_log=false но чего то не помогает(
Yks
=(
Vitaly
Приветствую люди. Кто знает,
Когда делаю так:
- name: Setup java agents for jboss
hosts: jboss
roles:
- { role: java_jboss, when: ansible_os_family == 'RedHat', become: yes}
- { role: java_jboss_win, when: ansible_os_family == 'Windows'}
То переменные из Windows роли доступны в Linux роли (несмотря на то что по when роль не должна была загрузиться.). В итоге это ломает плейбук
Если делаю так:
- name: Setup java agents for jboss
hosts: jboss
tasks:
- include_role:
name: java_jboss
apply:
become: yes
when: ansible_os_family == "RedHat"
- include_role:
name: java_jboss_win
when: ansible_os_family == "Windows"
То все нормально, переменные не “шарятся”
Это ожидаемое поведение? ansible 2.10