Roman
всем привет, как будет выглядеть команда ad-hoc с модулем archive?
Vladislav 👻
На эту тему вот тут много интересного: https://www.howtoforge.com/ansible-guide-ad-hoc-command/
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 в плейбуке укажи
Roman
Ну тогда 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 для каждого случая (пример как надо делать) ?
Alex
2.9
Alex
https://docs.ansible.com/ansible-lint/rules/default_rules.html вроде нашел
Alex
но тут советуют when: not docker_ha_topology_health.stdout
Timur
Пустая строка по дефолту питоном трактуется как false
es]x
Хорошего дня, подскажите, есть задача в ней шаги,. как сделать чтобы один из шагов выполнился на серверах по очереди,а не параллельно. Спасибо
Alex
смотреть на предмет serial
Alex
https://serverfault.com/questions/736452/ansible-how-to-run-one-task-host-by-host
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
when: "hostvars['host1'].ansible_facts.var1 == 'True'" - так тоже делать не нужно
Timur
when: hostvars['host1']['var1'] | bool вот так вполне достаточно
Denis
when: hostvars['host1']['var1'] | bool вот так вполне достаточно
Ага, у меня так и сделано в других местах, тут просто скопипастил конкретно из этой роли, осталось от проверки гипотезы, что не работает из-за того, что происходит проверка значения как строки. Спасибо!
Maksim
Как можно передать переменную в переменной?
Maksim
Точнее, path: "{{ lookup('fileglob','ПЕРЕМЕННАЯ')}}"
Гайрат
Убрать кавычки?
Maksim
Убрать кавычки?
Там в начале выражения {{ }}, внутренние он разве переварит?
Гайрат
Да
tspok
У меня есть роль с хендлером, который должен перезапускать юнит daemon@{{ variable }}. Переменная variable передаётся при запуске роли. Проблема в том, что если из одного плейбука несколько раз подряд вызвать роль с разными переменныи, то хендлер выполнится однократно, с последним значением variable. Как это исправить?
Ivan
Привет! Ставлю питон через raw test -e /usr/bin/python || (apt -qy update && apt install -y python-minimal) некоторые убунты делают апдейт и обновление при старте ,поэтому моя таска валится из-за лока apt. насколько я понял, у raw не может быть ретрая, что лучше сделать? обработать это внутри шелла?
Logan
нет, насколько я помню. Ни шелл, ни смд
Ivan
Шелл точно требует
Combot
combot.org/c/-1001057194784
Ivan
Мы эти апргрейды вообще выпиливаем, но можно и оставить. В гисте решение https://gist.github.com/yurii-fisakov/3f32173b6002458269dd52ed068cb365
Спасибо, как выпилить, я понимаю, только у меня хост недолгоживущий, минут 40. Создается из образа поставщика облака, так что мне проще подождать или ретрайнкть
Ivan
Там в плее пример с “подождать”
Не знаком с loop, посмотррю сейчас, спасибо
Anonymous
loop там не при чем, интересующуя вас таска называется "Wait for any possibly running unattended upgrade to finish"
Gleb
одмен, тут реклама паппета
Timur
нет, насколько я помню. Ни шелл, ни смд
Питон требуют все модули, кроме raw
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
Помогите плз, как сделать так чтобы ансибл понимал такой пароль - ansible_sudo_pass=Pa$$word1
Не использовать символы, значение которых непонятно. Это не только чернокнижия касается 😃
Sergey
Точные ответы зависят от контекста (см. правила).
Igor
Точные ответы зависят от контекста (см. правила).
какой контекст нужен? В пароле есть символ доллара, ансибл не пускает с ним
Igor
если меняешь его на букву или цифру все сразу ок
Sergey
Начнём с того, что Ansible не проверяет пароль 😉 поэтому пускать или не пускать куда-либо он не может.
Sergey
Поэтому озвучь изначальную задачу, чего сделал, что получил, что хотел бы получить.
Igor
понятное дело что он не проверяет, но из за спец символов как то его интерпритирует по своему
Sergey
в кавычки брать пробовали?
Как ты думаешь, что может сделать bash с двумя подряд баксами в кавычках? 😊 Ну а контекста мы не получим, судя по всему.
Отделение Bereke Bank
вообще зашифруй такой пароль ansible-vault-ом и не мучайся)
Sergey
Это всё не имете никакого отношения к Ансиблу, если что.
Igor
одинарные....
брал в одинарные, но заработало когда заменил на двойные
татяна
привет, подскажите пожалуйста, как словарь заредьюсить по листу ключей (чтобы в результирующем словаре были только такие пары ключ: значение, что ключи содержатся в заданном листе)