Timur
Там любой ансибл-код можно тестировать. И плейбуки, и роли
Timur
Можно больше деталей?
Nikita
Можно больше деталей?
В роли есть переменяя с дефолтным значением. Это список пакетов. Хочется используя роль дописать к дефолтному значению несколько элементов в список, чтобы не писать весь список по новой
Timur
В роли есть переменяя с дефолтным значением. Это список пакетов. Хочется используя роль дописать к дефолтному значению несколько элементов в список, чтобы не писать весь список по новой
- name: Install required packages package: name: '{{ packages_base | union(packages_additional) | unique }}' state: present register: installed_packages until: installed_packages is succeeded become: true Так например?
Nikita
Примерно, попробую, спасибо
Vadik
Всем привет подскажите плиз можно ли , записывать переменные в bash script? Есть плейбук он кидает на хост систему скирапт который автоматически генерирует pks , хотелось бы с помощью vars files задать туда переменные ...
Alex
можно вызывать этот bash скрипт и передавать значения через переменные окружения - name: Ansible shell module setting environment variable shell: script.sh register: result environment: VAR1: "{{ var1 }}"
Nikita
А темлпейт не проще?
Vadik
Да вот я думаю если я зафигачу переменные в баш , и потом буду их передавать с помощью vars files..., Но всё равно это костыль
Anonymous
если да, вроде модуль есть https://docs.ansible.com/ansible/latest/modules/openssl_pkcs12_module.html
Anonymous
только доставить надо python-pyOpenSSL
Alexander
Как правильно проверить что массив пустой? Нужно чтобы when: openstack_vm_check.ansible_facts.openstack_servers срабатывало когда { "openstack_servers": [] }
Vladislav 👻
==[]
Alex
как вариант взять length
Alexander
==[]
Не подошло
Alexander
как вариант взять length
Как правильно это сделать?
Alexander
when: openstack_vm_check.ansible_facts.openstack_servers | lenght == 0 ?
Vladislav 👻
th
Vladislav 👻
И да
Alexander
Чот не хочет
Alexander
roles: - role: openstack when: openstack_vm_check.ansible_facts.openstack_servers | length == 0
Alexander
Только сейчас заметил, он не запускает таски
Alexander
Сейчас плейбук напишу полностью
Alexander
--- - name: Create OpenStack VM hosts: localhost vars_files: - group_vars/all/public_vars.yml tasks: - name: Check OpenStack registry os_server_facts: server: "{{vm_name}}" register: openstack_vm_check ignore_errors: yes - debug: var: openstack_vm_check roles: - role: openstack vars: vm_name: name when: openstack_vm_check.ansible_facts.openstack_servers | length == 0
Alexander
Таски и роли вместе вот так писать можно?
Эмиль
Добрый вечер. Кто знает, как можно сделать проверки (when) используя модуль telnet? Если это вообще можно.
Alex
> Кто знает, как можно сделать проверки (when) используя модуль telnet? WAT?
Alexander
Приоритет никак не изменить?
Alexander
Глупо как-то. Они же первее написаны
Alex
все равно ничего не понятно. Можно как то более предментно, с примерами (можно на кошечках)
Эмиль
все равно ничего не понятно. Можно как то более предментно, с примерами (можно на кошечках)
Ладно, другой вопрос. Как просто получить вывод в нормальном построчном виде. Stdout_lines не работает.
Nikita
| length ==0
Можно просто length, если он будет пустой это будет False
Alex
в смысле у пустого массива длина != 0 ?
Nikita
в смысле у пустого массива длина != 0 ?
В смысле if list вернут false если list пустой
Nikita
И задача будет пропущена
Alexander
И зачем тут инклюд если вы храните переменные в group_vars, они и так будут доступны
Это от плохого знания где и как должны лежать переменные
Alexander
Можно просто length, если он будет пустой это будет False
Нужно чтобы при пустом роль исполнялась
Nikita
А, все, понял
Nikita
Я наоборот подумал
Nikita
Тогда наверное when: var | not length
Nikita
Вы проверяйте есть ли хост в лпенстеке?
Alexander
Ага
Nikita
А разве модуль это не должен сам делать?
Nikita
Он идемпотентнтный?
Alexander
Если машина есть - он ее не создает
Alexander
Но если закончились ядра, а машина есть, то плейбук упадет
Alexander
Тогда наверное when: var | not length
На таком выдает ошибку
Alexander
openstack_vm_check.ansible_facts.openstack_servers | not length
Sergey
Нужно чтобы при пустом роль исполнялась
пустом списке или несуществующей переменной?
Alexander
Есть, сработало
Alexander
Спасибо всем
Alexander
pre_task и var is not defined исправили ситуацию
Alexander
пустом списке или несуществующей переменной?
Пустой список. Там пустой массив, как я понимаю
Alexander
when: not openstack_vm_check.ansible_facts.openstack_servers Не подходит?
Сделал с var is not defined. С ним работает
Timur
Пустой список и неопределенная переменная
Alexander
Тогда изменю, пожалуй
inqfen
Есть тут еще живые?
inqfen
Ну в общем вопрос такой, давно так не пробовал и помню, что не работало, видимо и не заработало - name: "change mongodb instances" include_role: name: "ec2-instance-change" vars: filter_dict: "tag:env": "{{ env }}" "tag:component": "mongodb" "tag:app_env": "{{ item.key }}" type: "{{ mongo[env]['type'] }}" loop: "{{ mongo |dict2items }}"
inqfen
есть импорт с лупом и loop var должна подставиться в переменную роли, по факту tag:app_env" == "{{ item.key }}"
inqfen
а не ключ словаря
inqfen
И естественно роль ни про какой item.key не знает
inqfen
Ну в общем я долбоеб
inqfen
у меня loop в vars уехал, а я не заметил
Sergey
у меня loop в vars уехал, а я не заметил
Ты ещё что-то замечаешь, в три-то часа ночи?
inqfen
в 5
inqfen
Вот как раз не очень, так что пойду-ка я спать
Sergey
Андрей
Добрый день. Вопрос по serial. Допустим , у меня 10 хостов в 5 подгруппах в одной группе (в каждой по два). Нужно последовательно работать внутри каждой подгруппы. Когда я указываю верхнюю группу и serial: 50%, ансибл делит все 10 хостов на своё усмотрение по 5. Как добиться, чтобы делил внутри каждой подгруппы?