Ilya
Имена могут быть разные у серверов. ipa, replica.
Ilya
или вообще другие и совершенно другим количеством.
Ilya
т.е. зашел в а1 - и начал перебирать, плодить виртуалки.
Ilya
потом заешл в а2 и снова цикл по серверам
Timur
Тут уже нужна конкретика. Дайте пример кода, который вы хотите реализовать
Timur
Ilya
да, занимаюсь.
George
сорян, у меня сегодня мозг не работает
George
- 10.222.253.12
- 10.222.253.13
- 10.222.253.14
...
- 10.222.253.100
как такой массив джинджей циклом сделать в одну строчку?
Denis
Фильтр join
George
нет
George
я хочу какую-то магию типа {{ blablaba_make_list (10.222.253.12....10.222.253.100) }}
George
и чтоб оно развернулось в список
Timur
Так нужно из списка строку сделать или из строки список?
George
мне нужно сгенерировать список значений по шаблону
Denis
Странновато
Denis
Я бы, наверное, сделал таску с циклом и set_facts
Ilya
(with_nested - для наглядности, что имелось ввиду.)
{"msg": "'item' is undefined"}
George
Ilya
вот рабочий вариант:
- name: loop
debug:
msg:
- "{{ item[0] }}"
- "{{ item[1] }}"
with_nested:
- "{{ instance }}"
- "{{ a1.vm_infrastructure_options }}"
- но опять таки, а1 - нужно динамически подставлять из instance
Denis
почему? норм
Мне всегда казалось, что джинджа в ансибле используется для создания строк. Если можно создать такую строку, которую ансибл затем интерпретирует как запись массива, может сработать. Но, как по мне, странновато.
George
ну, джиндой я могу такой лист создать за три строчки джинджы.
George
ладно, сам подумаю. спасибо, блин (
George
"Если можно создать такую строку, которую ансибл затем интерпретирует как запись массива, может сработать."
однозначно
Timur
Timur
Тогда nested будет работать
Timur
Ilya
сча
Ilya
{"msg": "'list object' has no attribute 'values'"}
Timur
Timur
У вас же там просто имена
Timur
Тогда как вариант - лупом собрать данные в один список
Timur
А потом на полученный список сделать nested loop
Denis
George
вот такое и виделось, ога
Dr. L.S.Dee
Т.е., на выходе должна получиться строка, содержащая IP от 10.222.253.12 до 10.222.253.100.
Для этого нам нужно подать массив IP-адресов от 10.222.253.12 до 10.222.253.100.
А этот массив, в свою очередь, сгенерировать из первого и последнего адреса. В этом и задача?
Python, если не ошибаюсь? Понятия не имею, как именно там все происходит, но в рамках последнего (крайнего правого) октета можно и range(12, 101) [1] задать же? А потом для каждого приклеить слева остальные октеты.
____
[1] Пишут, что последнее значение в рейндж не включается O_o
Dr. L.S.Dee
А, уже.
Denis
Но еще и в одну строку))
George
George
в виде джинджа шаблона внутри блока {{ }}
George
если кому интересно
"{{ lookup('sequence', 'start=11 count=90 format=10.222.253.%d', wantlist=True) }}"
George
без циклов и прочей дичи
Timur
Респект и уважуха!
Denis
Ilya
Denis
Ilya
Denis
Но возникает вопрос, обязательно ли все инстансы разворачивать в одном плейбуке. Может проще сделать по одному плейбуку на инстанс, например, а если их нужно разворачивать несколько - использовать плейбук с import_playbook, например
Denis
Разворачивание инстанса оформить в роль, и в плейбуках вызывать ее с разными параметрами.
Ilya
Denis
Имя инстанса можно определить в переменных плейбука, и на каждый инстанс создать по плейбуку. Если список инстансов небольшой и меняется редко, возможно, так будет удобнее. Тогда одной кнопкой их можно будет разворачивать из "сверхплейбука", в котором будут последовательно импортироваться все плейбуки для инстансов.
Timur
Timur
Чуть позже сегодня попробую вариант предложить
Antuan
Есть кто-нибудь, кто с помощью Ansible работал с RouterOS и хорошо разбирается в сетях? Консультации + удаленная работа
George
ну, я так понял, что не договорились, да?
Artem
подскажите плз как в ansible копировать шифрованный с помощью ansible-vault файл на удаленный хост?
Artem
кроме предварительного дешифрования
Vladislav 👻
copy/template
Artem
ах точно пропустил, спасибо!
marantz
marantz
https://mikrotik-training.ru/kb/playbook-dlya-ansible-nastrojka-mikrotik-pki-i-openvpn-servera/
/warn
Подскажите, если пакете pip стоит параметр virtualenv - то он сам активируеться, или надо до этого прописать создание виртенва?
George
что значит сам активируется?
George
да, насколько я помню, виртенв должен быть на винчестере уже создан
/warn
То есть, надо вот это делать?
- name: prepare virtual env
shell: virtualenv "{{ zuul_project_dir }}/venv"
/warn
Понял, спасибо
Alexander
Приветствую! У меня нубский вопрос:
Как в аргументах указать сразу несколько хостов: Например
ansible -m ping -a host1, host2
ℭ𝔞𝔯𝔯𝔬𝔩
ℭ𝔞𝔯𝔯𝔬𝔩
ℭ𝔞𝔯𝔯𝔬𝔩
ℭ𝔞𝔯𝔯𝔬𝔩
Vladislav 👻
Vladislav 👻
запятая обязательна на конце
George
George
Где логика ?!
Vladislav 👻
Как спросили, так ответил