Timur
Так легко все порушить
Timur
Запустить плейбуку с группой all на весь инвентарь и везде задеплоить одно и то же
Timur
Включая прод
Aleksei
В теории можно, но у нас все имена разделены по env'ам, а определённый env дёргается либо через tag, либо это отдельный файл
Timur
И никаких тегов не нужно
Timur
Держать инвентарь разных стейджей в отдельных файлах - это бест практис
Aleksei
Держать инвентарь разных стейджей в отдельных файлах - это бест практис
Т.е. каждая сущность (например, кластер фронтов, кластер MQ-серверов и т.д.), по хорошему должна иметь отдельный файл для каждого из окружений. Так?
Timur
Да
Timur
Несколько сущностей одного стейджа можно в один инвентарь объединять с разными группами
Timur
Но разные стейджи лучше разносить по разным файлам
Timur
Чтобы можно было, не меняя плейбук и ролей и не закладывая туда лишнюю логику привязки к структуре групп, накатывать конфигурацию на различные стейджи, просто меняя инвентарь при вызове плейбуки
Timur
Собственно, как раз то, что у вас и есть. Вы засунули все стейджи в один инвентарь и пытаетесь разделять их на уровне логики плейбук, ролей и темплейтов
Timur
А это боль
Timur
Не надо так
Pavel
Не надо так
+ а еще когда добавится еще окружение - придется переписывать роль
Oleg
А так? failed_when: not sysctl_result.stdout
а так не важно 0 или 1 все равно успешно проходит плэйбук)
Timur
Ага
Timur
А если вот так: failed_when: not sysctl_result.stdout | bool
Oleg
Ага
так огонь. можно кратенько что за bool?)
Timur
Фильтр, преобразующий строковые и числовые значения в логические
Timur
"0" или "False" превращает в логическое False
Aleksei
Не надо так
Буду иметь ввиду. Спасибо за совет
Mikhail
Коллеги, почему то не устанавливается Subject Alternative Name, делают так: - name: Generate a Self Signed OpenSSL certificate with subject openssl_certificate: ├ path: "/root/cert/{{ item }}.pem" ├ privatekey_path: /root/cert/ca-key.pem ├ csr_path: "/root/cert/{{ item }}.csr" ├ provider: selfsigned ├ subject_alt_name_strict: yes ├ subject_alt_name: ├ ├ - "{{ ansible_hostname }}" ├ ├ - "{{ hostvars[ansible_host] }}" ├ ├ - INTERNAL_IP loop: ├ - "kubernetes" ├ - "{{ ansible_hostname }}"
Oleg
Фильтр, преобразующий строковые и числовые значения в логические
а можно как то сразу тут же прикрутить и сообщение почему плэйбук завершается?
Oleg
просто как я понимаю, если я потом напишу debug то он уже не выполнится, тк уже плэйбук должен завершиться...
Timur
https://docs.ansible.com/ansible/latest/modules/fail_module.html
Timur
- fail: msg: "Oh, god, no! Fail again!" when: not sysctl_result.stdout | bool как-то так
Mikhail
Раскройте тезис, пожалуйста
Генерирую сертификат, в котором нужен определеный alter subject, subject_alt_name почему то не устанавливает его
Timur
Генерирую сертификат, в котором нужен определеный alter subject, subject_alt_name почему то не устанавливает его
Что значит «не устанавливает»? Дайте нормальное описание. Если можно - с выхлопом плейбуки
Mikhail
# openssl x509 -text -in cs470402.pem | grep -A 1 "Subject Alt" X509v3 Subject Alternative Name: DNS:system:node:cs470402
Mikhail
по логам всё ок
Mikhail
сделал через модуль openssl_csr при формирование request
Timur
Покажите полный код
Mikhail
нет, оказалось не сделал, поменялся не alter subject а CN.
Mikhail
не работает такая конструкция, ошибка на строчке ├ subject_alt_name: ├ ├ - "test" - openssl_csr: ├ path: "/root/cert/{{ item.file_name }}.csr" ├ privatekey_path: "/root/cert/{{ item.file_name }}-key.pem" ├ country_name: RU ├ organization_name: *** ├ email_address: ***@***.com ├ common_name: "{{ item.common_name }}" ├ subject_alt_name: ├ ├ - "test" loop: ├ - { file_name: "service-account", common_name: 'service_accounts' } ... Ошибка: OpenSSL.crypto.Error: [('X509 V3 routines', 'v2i_GENERAL_NAME_ex', 'missing value'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]
Mikhail
разобрался, нужен именно такой синтаксис: subject_alt_name: ├ ├ - "DNS:test"
Евгений
Добрый вечер. Подскажите пожалуйста, При попытке подключиться к виндовой машине, с именем пользователя Администратор - возникает ошибка "msg": "basic: 'latin-1' codec can't encode characters Как победить?
Vladislav 👻
Подскажите, куда можно положить папочку files в inventory для конкретной роли?
Vladislav 👻
и как к ней обращаться?
Vladislav 👻
а как мне тогда разрулить что для дев, а что для прод?
inqfen
Можешь по именам
inqfen
А если файлы почти одинаковые, различаются переменные, то сделай темплейт
Vladislav 👻
неее, у меня файлы - это пачка различных yml, они заливаются по маске loop: "{{ lookup('fileglob', '*.rules.yml').split(',') }}"
Egor
а как мне тогда разрулить что для дев, а что для прод?
Можно в темплейтах сделать через переменную.
Vladislav 👻
теперь я хочу, чтобы часть файлов была общая, часть только для дева, а часть только для прода
inqfen
Ну сделай там поддкаталоги в файлах
inqfen
Common, dev, prod
MRY
Есть хороошие статейки на тему составления плейбуков с конструкциями if else и try catch ?
Vladislav 👻
хотелось бы динамический список иметь на основе фактов, а не список файлов
inqfen
И копируюй окружениеспециричные с item = env
inqfen
Типа того
inqfen
хотелось бы динамический список иметь на основе фактов, а не список файлов
Ну вот логически в голове подумай, чем эти файлы отличаются
inqfen
Какой есть признак куда его
Vladislav 👻
это алерты на прометеус, там даже название файла может совпадать, а содержимое отличаться
inqfen
А они большие?
Vladislav 👻
может и десяток килобайт в одном быть
inqfen
Воу
inqfen
Значит пили по директориям, только так
Vladislav 👻
а как это при инвентори рулить, типа сделать переменную с названием папки?
Vladislav 👻
получается, мне постоянно мучить роль, чтобы поменять что-то для только прода/дева?
inqfen
Так это файлы роли или плейбука?
Vladislav 👻
роли
inqfen
Если они не статичны, в плейбук вынеси
inqfen
А то роль странная получается, она должна реюзаться, но в ней тем не менее специфичные файлы
Vladislav 👻
🤔
simplemice.eth
товагищи.... появилась задача в тележеньку проклятую ивенты слать.... знаю что есть telegram_module ( но просто в каждую таску добавлять не оч както) или есть готовый бот для этого?
simplemice.eth
который допустим по рестапи к авх будет цеплятся и оповещать
simplemice.eth
если кто делал что-то подобное подскажите чо куда копать
simplemice.eth
Охоспаде, нафига?
что бы малоли што, если таска запаролась получить в тележеньку мсг
simplemice.eth
костыльно слишком