es]x
Timur
Timur
Там любой ансибл-код можно тестировать. И плейбуки, и роли
Timur
Timur
Можно больше деталей?
Nikita
Можно больше деталей?
В роли есть переменяя с дефолтным значением. Это список пакетов. Хочется используя роль дописать к дефолтному значению несколько элементов в список, чтобы не писать весь список по новой
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
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
Vladislav 👻
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
все равно ничего не понятно. Можно как то более предментно, с примерами (можно на кошечках)
Nikita
| length ==0
Можно просто length, если он будет пустой это будет False
Nikita
Alex
в смысле у пустого массива длина != 0 ?
Nikita
И задача будет пропущена
Nikita
Alexander
Alexander
Nikita
А, все, понял
Nikita
Я наоборот подумал
Nikita
Тогда наверное when: var | not length
Nikita
Вы проверяйте есть ли хост в лпенстеке?
Alexander
Ага
Nikita
А разве модуль это не должен сам делать?
Nikita
Он идемпотентнтный?
Alexander
Alexander
Если машина есть - он ее не создает
Alexander
Но если закончились ядра, а машина есть, то плейбук упадет
Alexander
Alexander
openstack_vm_check.ansible_facts.openstack_servers | not length
Sergey
Alexander
Есть, сработало
Alexander
Спасибо всем
Alexander
pre_task и var is not defined исправили ситуацию
Timur
Alexander
Timur
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 уехал, а я не заметил
inqfen
в 5
inqfen
Вот как раз не очень, так что пойду-ка я спать
Sergey
Андрей
Добрый день. Вопрос по serial. Допустим , у меня 10 хостов в 5 подгруппах в одной группе (в каждой по два). Нужно последовательно работать внутри каждой подгруппы.
Когда я указываю верхнюю группу и serial: 50%, ансибл делит все 10 хостов на своё усмотрение по 5.
Как добиться, чтобы делил внутри каждой подгруппы?