Roman
всем привет, как будет выглядеть команда ad-hoc с модулем archive?
Vladislav 👻
Vladislav 👻
На эту тему вот тут много интересного: https://www.howtoforge.com/ansible-guide-ad-hoc-command/
Roman
Roman
как расшифровать шифрованный файл архива при выполнении плейбука?
inqfen
https://docs.ansible.com/ansible/latest/modules/unarchive_module.html
inqfen
3 секунды в гугле
Roman
3 секунды в гугле
вот кусок плейбука
- name: unzip file keys.zip
tags: unzip
unarchive:
src: /etc/openvpn/server/key.zip
dest: /etc/openvpn/server/
remote_src: yes
decrypt: yes
при выполнении я получаю ошибку
msg": "A vault password or secret must be specified to decrypt /home/sysroman/ansible/files/key.zip"
от того вопрос, что я делаю не так?
inqfen
Ты его через ansible vault что ли зашифровал?
Roman
да
inqfen
Ну тогда vault key в плейбуке укажи
inqfen
Почитай ключи запуска, там все написано
Alex
[602] Don't compare to empty string
roles/itests/jfmc/tasks/topology/ha/docker.yml:16
when: docker_ha_topology_health.stdout != ''
а в ansible-lint где то есть описание для кода 602 и best practice для каждого случая (пример как надо делать) ?
Timur
Alex
2.9
Гайрат
Alex
https://docs.ansible.com/ansible-lint/rules/default_rules.html
вроде нашел
Alex
но тут советуют
when: not docker_ha_topology_health.stdout
Timur
Timur
Пустая строка по дефолту питоном трактуется как false
Roman
es]x
Хорошего дня, подскажите, есть задача в ней шаги,. как сделать чтобы один из шагов выполнился на серверах по очереди,а не параллельно. Спасибо
Alex
Alex
смотреть на предмет serial
es]x
Alex
https://serverfault.com/questions/736452/ansible-how-to-run-one-task-host-by-host
es]x
Alexander
Denis
Всем привет!
Возник тут нубский вопрос: у меня в плейбуке есть play1 и play2, выполняются они на двух разных хостах (play1 на host1, play2 на host2), и мне нужно в play2 получить значение факта, который сетится при выполнении условия в play1. Сейчас я пытаюсь сделать это с помощью hostvars, но что-то не получается (этого факта там нет, если я правильно понимаю, из-за того, что они берутся на момент запуска плейбука).
Подскажите способ, как можно получить значение какой-нибудь сущности, засеченной в процессе выполнения плейбука на другом хосте?
Вот примерно то, как я сейчас пробую:
- hosts: host1
tasks:
- name: bla-bla
<some_task>
register: facts
- set_fact:
var1: True
when: facts.some_condition == "true"
- hosts: host2
gather_facts: yes
roles:
- { role: bla-bla-bla,
when: "hostvars['host1'].ansible_facts.var1 == 'True'" }
Timur
Всем привет!
Возник тут нубский вопрос: у меня в плейбуке есть play1 и play2, выполняются они на двух разных хостах (play1 на host1, play2 на host2), и мне нужно в play2 получить значение факта, который сетится при выполнении условия в play1. Сейчас я пытаюсь сделать это с помощью hostvars, но что-то не получается (этого факта там нет, если я правильно понимаю, из-за того, что они берутся на момент запуска плейбука).
Подскажите способ, как можно получить значение какой-нибудь сущности, засеченной в процессе выполнения плейбука на другом хосте?
Вот примерно то, как я сейчас пробую:
- hosts: host1
tasks:
- name: bla-bla
<some_task>
register: facts
- set_fact:
var1: True
when: facts.some_condition == "true"
- hosts: host2
gather_facts: yes
roles:
- { role: bla-bla-bla,
when: "hostvars['host1'].ansible_facts.var1 == 'True'" }
Там не нужны ansible_facts. К переменным другого хоста можно обращаться просто: hostvars['host1']['var1']
Timur
when: "hostvars['host1'].ansible_facts.var1 == 'True'" - так тоже делать не нужно
Timur
when: hostvars['host1']['var1'] | bool
вот так вполне достаточно
Denis
Maksim
Как можно передать переменную в переменной?
Maksim
Точнее, path: "{{ lookup('fileglob','ПЕРЕМЕННАЯ')}}"
Гайрат
Убрать кавычки?
Maksim
Убрать кавычки?
Там в начале выражения {{ }}, внутренние он разве переварит?
Гайрат
Да
tspok
У меня есть роль с хендлером, который должен перезапускать юнит daemon@{{ variable }}. Переменная variable передаётся при запуске роли. Проблема в том, что если из одного плейбука несколько раз подряд вызвать роль с разными переменныи, то хендлер выполнится однократно, с последним значением variable. Как это исправить?
Boris 🦍
Ivan
Привет!
Ставлю питон через raw test -e /usr/bin/python || (apt -qy update && apt install -y python-minimal)
некоторые убунты делают апдейт и обновление при старте ,поэтому моя таска валится из-за лока apt.
насколько я понял, у raw не может быть ретрая, что лучше сделать? обработать это внутри шелла?
Logan
Ivan
Logan
нет, насколько я помню. Ни шелл, ни смд
Ivan
Шелл точно требует
Combot
combot.org/c/-1001057194784
Anonymous
Anonymous
Anonymous
loop там не при чем, интересующуя вас таска называется "Wait for any possibly running unattended upgrade to finish"
Ivan
Gleb
одмен, тут реклама паппета
Timur
Alex
подскажите, а как бы по красивее записать такую конструкцию
- name: Get master jfmc service id
set_fact:
ha_cluster_master_service_id: "{{ ha_topology_health_result.json | json_query('nodes.\"http://' + hostvars['app_master']['private_ip'] + ':8082\".services[]') | selectattr('service_id', 'match', '^jfmc') | map(attribute='service_id') | list | first | default('master') }}"
il-da-r
Кто-нибудь сталкивался с кракозябрами при выводе stdout в таске с win_command? Как сделать читаемым вывод?
il-da-r
https://qna.habr.com/q/725635
Alexander
С кодировкой что-то делать, подозреваю
Alexander
Еще в новой винде можно переключить на utf-8 (наконец-то)
Ждун
Ставь английскую винду
Igor
Помогите плз, как сделать так чтобы ансибл понимал такой пароль - ansible_sudo_pass=Pa$$word1
Igor
если спец символов нет то все ок
Grek 🇺🇦
экранировать, использовать vault?
Sergey
Sergey
Точные ответы зависят от контекста (см. правила).
Igor
если меняешь его на букву или цифру все сразу ок
Sergey
Начнём с того, что Ansible не проверяет пароль 😉 поэтому пускать или не пускать куда-либо он не может.
Sergey
Поэтому озвучь изначальную задачу, чего сделал, что получил, что хотел бы получить.
Igor
понятное дело что он не проверяет, но из за спец символов как то его интерпритирует по своему
Sergey
Отделение Bereke Bank
Pavel
Sergey
в кавычки брать пробовали?
Как ты думаешь, что может сделать bash с двумя подряд баксами в кавычках? 😊
Ну а контекста мы не получим, судя по всему.
Отделение Bereke Bank
вообще зашифруй такой пароль ansible-vault-ом и не мучайся)
Sergey
Это всё не имете никакого отношения к Ансиблу, если что.
Igor
одинарные....
брал в одинарные, но заработало когда заменил на двойные
татяна
привет, подскажите пожалуйста, как словарь заредьюсить по листу ключей (чтобы в результирующем словаре были только такие пары ключ: значение, что ключи содержатся в заданном листе)