George
Возьми первый элемент списка (нулевой)
Anton
тю. спасибо)
Anton
masterip | join('\n') решилось
Anton
ещё вопрос. нужно как то проверить есть ли коннект с одного хоста ко второму К примеру пингануть через Shell могу, как то можно вернуть ответ есть ли коннект или нет ?
George
Возьми, сохрани в переменную, распарси. И лучше не пинг, а nc -vz IP PORT
Anton
точно) я же могу шелл вернуть стдаут
George
Зачем шелл на пустом месте?
чтоб отрефакторить
Timur
Модуль пинг и всякие wait_for отлично работают
George
https://t.me/pro_ansible/105988 я его упомянул, моя совесть чиста
Roman
Привет! Подскажите, можно ли указать ANSIBLE_SKIP_TAGS в inventory, чтобы для группы хостов не выполнялись шаги с определенным тегом?
Roman
через —skip-tags получается, но хотелось бы именно в коде задать
Pit
Привет! Подскажите, можно ли указать ANSIBLE_SKIP_TAGS в inventory, чтобы для группы хостов не выполнялись шаги с определенным тегом?
Можно через when условие прописать, а переменные из этого условия к хостам в варсах прибить
Oleg
столкнулся с проблемой таска выполняется на хостах, но во время выполнения делегирует проверку наличия файла (указанного в переменной file_name) на другой хост и в случае отсутствия файла должна прекратиться - name: Check uploaded file(s) exists stat: path: "/path/to/file" delegate_to: 'host_with_file' when: file_name != '' register: Check_file - fail: msg: "Sorry file(s) is not exists" when: Check_file.stat.exists == 'false' and file_name != ''но таска не прекращается(
Oleg
прошу помощи
Владимир
Сам столкнулся с этой же проблемой, модуль fail не отрабатывает, не завершает playbook. В чем дело пока не разобрался.
Yakov
Check_file.stat.exists == 'false а там точно стринг, а не False ?
Oleg
Check_file.stat.exists == 'false а там точно стринг, а не False ?
ну при -vvv вот какой результат: {"changed": false, "stat": {"atime": 1551089569.0, "attr_flags": "", "attributes": [], "block_size": 65536, "blocks": 8, "charset": "us-ascii", "checksum": "c4a4bbf87fd9805e833fa42b5dc37bc472eeb0c0", "ctime": 1565775263.879804, "dev": 80, "device_type": 0, "executable": false, "exists": true, и тд и тд
Oleg
"exists": true ну или false
Yakov
ну да, он булевый, попробуй от этого плясать, и пока что убрать 2 условие
Владимир
Владимир
Владимир
У меня так
Oleg
ну да, он булевый, попробуй от этого плясать, и пока что убрать 2 условие
всмысле надо что то типо такого попробовать not var | bool?
Владимир
и тоже не отрабатывает
Oleg
where not ( Check_file.stat.exists )
всмымле вот так,наверное: when: not var | bool
Anatoliy
stats судя по выводу и так уже bool
Anatoliy
а сравниваете со строкой
Anatoliy
where .stats == false если исходный пример брать
Anatoliy
а 'false' == true на самом деле
Anatoliy
точнее так 'false' | bool == true
Yakov
точнее так 'false' | bool == true
без приведения типов тоже по идее true. ведь все что не 0 == true
Anatoliy
ну как бы да, но он неявно приводит
Yakov
частности) в любом случае, вариант сравнения стринга с булом это не вариант)
Sergey
В исходниках bool
Владимир
Спасибо!
Oleg
Сейчас опробуем все варианты!
Sergey
уффффф лютый баян ты запросил..... посмотрю дома.
0xDEFACE
мужики привет
0xDEFACE
Подскажите пожалуйста у меня есть роль в которой есть дефолтные переменная словарь. мне нужно в плейбуке один из ключей словаря определить, но когда я пытаюсь это сделать перетираю своей переменной дефолтную
0xDEFACE
Как переопределяешь ? Фильтр combine тебе по идее поможет
roles: - role: base-ros mikrotik_firewall: address_list: - list: 'FRIENDS' address: '192.168.0.0/16' disabled: 'no'
0xDEFACE
сейчас чтобы заработало поставил в ansible.cfg hash_behavior = merge
0xDEFACE
но я бы не хотел такое поведение глобально
George
1. Засунь словарь в переменную (другую) 2. Смержи словари (я написал - при помощи фильтра) 3. Укажи при вызове роли итоговую переменную
George
4. Отрефакторь
George
https://stackoverflow.com/questions/25422771/merging-dictionaries-in-ansible/33226471#33226471
Tadeusz
лол
Timur
https://stackoverflow.com/questions/25422771/merging-dictionaries-in-ansible/33226471#33226471
Зачем давать ссылки на всякий треш?
Timur
Про фильтр combine сказано верно. Его вполне достаточно
Sergey
ага внезапно
Извини, что-то я не нашёл файлика. Скорее всего, там было что-то не слишком интересное, так что стёр.
Sergey
закончили уже?
Давно - в марте ещё 😃
Maksim
Всем привет
Maksim
Подскажите, как запустить из плейбука ансибла процесс в фоновом режиме
Maksim
Какую задачу решаешь?
Мне надо запустить minio сервер. Просто при запуске он ждет ввода, мне его либо в фоновый режим надо отправлять, либо делать в виде демона
Gleb
а как же shell: nohup minio server &
Albert
либо контейнер: https://docs.min.io/docs/minio-docker-quickstart-guide.html
Maksim
Это для тествого задания, я, если честно, не очень хочу так заморачиваться. Максимум хотел в крон его впилить)
Maksim
Я про systemd unit, например
Maksim
Спасибо за советы, пошел читать
Viktor
Добрый день. В плейбуке есть такой блок: vars: creds: - {user: aaa, pass: qwerty} - {user: bbb, pass: asdfgh} tasks: - name: Ansible Template template: src: hello_world.j2 dest: out.txt Все работает хорошо, и при добавлении новых данных в creds в исходящем файле создается соотвествующие записи. Но, мне еще нужно переменную для только первого юзера записать в другой файл. Подскажите, пожалуйста, как это можно сделать? Так не работает - "{{ var.username[0] }}"
Maksim
Сделай systemd-юнит, запускай через systemctl
Хотя можно произвести хорошее впечатление, да и полезно для опыта. https://linux-notes.org/pishem-systemd-unit-fajl/ Это пойдет?
Viktor
Спасибо большое! 🙂
Oleg
Коллеги, можно ли в Ансибл как то сделать сравнение имен файлов? Типо что введенная мною переменная (например, файл.тхт) соответствует названию файла, который лежит в целевом каталоге?
Mihail
Коллеги, можно ли в Ансибл как то сделать сравнение имен файлов? Типо что введенная мною переменная (например, файл.тхт) соответствует названию файла, который лежит в целевом каталоге?
да через https://docs.ansible.com/ansible/latest/modules/find_module.html можно получить список файлов (можно отфильтровать по названию) результат сохранить (register), ну и смотреть уже нашло файл с таким именем или нет