Valeriy
Да , python не обязателен, вы правы , если использовать raw модуль. При использовании connection: docker подключение по api к демону докера идет с контролл хоста , а не с хоста в отношении которого запущен плейбук и на котором работают контейнеры. А это совсем другая и не очень интересная история .
inqfen
ну, с вашими требованиями быстрее написать модуль, тем более если все будет заключаться в выполнении команды он будет небольшой
inqfen
это нужно далеко не всем, поэтому готового и нет
Valeriy
Модуль это слишком) Хотя посмотреть что там в коде docker connection plugin наверное стоит, может его можно заставит подключаться не с контролл хоста . А пока обойдусь костылями с контейнерами и агентом или просто шелл на хосте с docker exec ))
Sheridan
Утра, камрады. Подскажите, есть ли возможность определить наличие файла в шаблонах роли? Хотелось бы фильтра например или лукап какой. delegate_to и local_action не подходит, оно хочет полный путь к файлу...
Lamobot
Есть переменная role_path https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html Есть lookup'ы разные К примеру https://docs.ansible.com/ansible/latest/plugins/lookup/fileglob.html
Sheridan
Похоже, вот такое срабатывает: - name: Есть ли сгенерированные сертификаты? set_fact: f_root_cert_filename: "{{ v_root_cert_filename }}" f_host_cert_filename: "{{ v_host_cert_filename }}" f_root_cert_exists: "{{ lookup('file', v_root_cert_filename, errors='ignore') != '' }}" f_host_cert_exists: "{{ lookup('file', v_host_cert_filename, errors='ignore') != '' }}" vars: v_root_cert_filename: "certificates/{{ target_instance }}/root.{{ primary_domain }}.crt" v_host_cert_filename: "certificates/{{ target_instance }}/{{ certificate.hostname }}.{{ primary_domain }}.crt"
kbks
Достаточно просто в модуле указать линки на sha1 и указать нужный параметр модуля
как оказалось не получится в моем случае( Проект только в процессе миграции с 2.3 версии, и сейчас еще используется именно эта версия. https://github.com/ansible/ansible/issues/48790 из-за этой баги не получается сделать с remote checksum
Sheridan
Можно узнать - зачем? Зачем определять наличие файла в шаблонах роли?
Мне могут передать сгенерированный сертификат, в этом случае я должен пользовать его на группе серверов. Если не передали - нужно сгенерировать самостоятельно
Sheridan
потому что "файлы роли" не так понятно что имеется в виду именоо role//files/ а не tasks/aaa.yaml например. А шаблоны - однозначно воспринимается как нечно не относящееся к коду. только поэтому )
Sheridan
бывший with_first_found?
нет, этот подразумевает что файл есть там или тут. А у меня файл есть или нет.
Sheridan
если нет - стартует кусок роли, который генерирует сертификаты на одном из хостов
Nick
подскажите, коллеги раньше (до v2.6 включительно) такая конструкция - name: Check nginx config command: /usr/sbin/nginx -t register: nginx_check ignore_errors: True - name: Revert config if needed command: git reset --hard {{ latestcommit.stdout }} chdir=/etc/nginx/ when: nginx_check|failed работала теперь (v2.9) выдает во такое "msg": "The conditional check 'nginx_check|failed' failed. The error was: template error while templating string: no filter named 'failed'. String: {% if nginx_check|failed %} True {% else %} False {% endif %} что там поломали? )
Alex
еще в 2.7 result | test был deprecated
Sheridan
Через 'creates:' можно вообще-то сделать
да в том то и дело, что путей куча )
Sergey
а генерятся они тоже в случанйое место? O_o
Sergey
это канал пр оаниме, или всё-таки про IaaC?
Nick
доброе, да ) вот 3 года назад роль написали - она и работала ) как теперь это должно выглядеть, подскажете?
Timur
доброе, да ) вот 3 года назад роль написали - она и работала ) как теперь это должно выглядеть, подскажете?
Такого треша в роли вообще быть не должно, на мой взгляд. Это реализация логики CI
Timur
Автоматизация должна быть в нужном месте
Timur
А автоматизировать git reset при единичном фейле теста конфига - это вообще что-то с чем-то 😀
Sheridan
а генерятся они тоже в случанйое место? O_o
Они генерятся на одном из хостов, выбранных в качестве генератора а азтем копируются в плейбуки в темп для последующего code reuse
Nick
nginx_check.failed
спасибо!
Vladislav 👻
Помогите с jinja и yaml, есть переменная vars: var1: - test1 var2: - test2 - test3 Есть темплейт на yaml конфиг: config: {{ vars }} Должно быть вот так: config: var1: - test1 var2: - test2 - test3
Vladislav 👻
ident и nice_to_yaml что-то не спасают...
Timur
А что получается?
Vladislav 👻
лучшее, что смог добиться, это config: var1: - test1 var2: - test2 - test3
Iw@n
Добрый день, подскажите пожалуйста, при запуске плейбука ansible ругается на win_stat. Мне кажется, что его нужно ставить как отдельный плагин, я прав?
Iw@n
ERROR! 'win_stat' is not a valid attribute for a Play The error appears to be in '/etc/ansible/playbook/app-playbook.yml': line 33, column 3, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: - name: "Check for existing chocolatey install." ^ here
Iw@n
Vscode не ругается на синтаксис.
Iw@n
Vladislav 👻
И что вам не так? Отступ не тот?
ну да, это же не валидный yaml, гибрид словаря со списком
Vladislav 👻
я могу конечно через цикл сделать, но это хорошо, когда структура известна на количество вложенностей, хотелось бы более унифицировано переносить yaml из переменной в темплейт как есть
Яша
возможно ли результат отдельного таска из плэйбука записать в отдельный файл? если да, то как? пока не нашел
Vladislav 👻
А если так? to_nice_yaml(indent=2)
это как раз тот самый результат, который я смог получить
Яша
Яша
отступов не хватает вроде как
Timur
Зачем вообще такой странный таск понадобился?
Vladislav 👻
Ну, увеличьте indent
ощущение, что не робит вообще 🙁
Iw@n
отступов не хватает вроде как
Два пробела. Включена проверка, было бы подчёркивание, красное потому что ещё одно расширение цветом разные отступы выделен
Timur
ощущение, что не робит вообще 🙁
Может, пакеты нужные не стоят?
Iw@n
Зачем вообще такой странный таск понадобился?
Проверяю стоит ли пакетный менеджер на винде, после через него буду вызывать установку
Timur
Все стоит 😔
Джинджа какая?
Iw@n
у вас подзадачи пошли. нужно больше золота отступов)
А сколько должно быть? Это мой первый плейбук. Сейчас два пробела
Timur
Проверяю стоит ли пакетный менеджер на винде, после через него буду вызывать установку
Зачем это проверять? Модуль шоколада ставится сам при первом вызове и так
UglyKoyote
Яша - да тут проще, надо сдвигаться относительно tasks:)
Яша
- под первой S
Iw@n
Чтобы дальше в условии проверять
UglyKoyote
кстати по форматированию кода.. может кто юзает какой плагин к виму?
Timur
Зачем вам проверять условие наличия шоколада и ставить его по этому условию, если это и так делается самим модулем шоколада?
UglyKoyote
да не всегда возможность есть его поставить :( особенно на стороне заказчика
Яша
только хотел написать про хардкор)))
Iw@n
Зачем вам проверять условие наличия шоколада и ставить его по этому условию, если это и так делается самим модулем шоколада?
Не совсем пойму. У меня шоколад возможно не установлен на машинах. Чтобы все время его не ставить, я это проверяю, а потом запускаю команды на нем
Iw@n
я солгал, прошу прощения. по 4))
Спасибо) получилось)
Timur
Если шоколад не установлен, то при первом вызове модуля шоколада он устанавливается самим модулем
Timur
Что именно в этом предложении непонятного?