Alex
Как выглядит таск?
хмм, по ходу нашел причину, но не пойму это баг или фича
Alex
в одном случае в dest у меня указана папка, а в другом имя файла
Отделение Bereke Bank
в каком формате?
DNS:foo,DNS:bar и т.д. Если речь об этом
Отделение Bereke Bank
А ну и для IP адресв IP Address:...
Alex
по идее надо делать цикл по groups groups A dictionary/map with all the groups in inventory and each group has the list of hosts that belong to it
Alex
until: download_file1_result Что сие значит?
обрезалось, там стоит is succeeded
Timur
в одном случае в dest у меня указана папка, а в другом имя файла
Тогда понятно. Если в dest указан файл и не стоит force: true, то если файл уже есть, он скачиваться не будет
Timur
Если в dest директория, то файл скачивается в любом случае, а потом сравнивается - если ли файл с такой же контрольной суммой в указанном пути. Если суммы отличаются, файл перезаписывается. Если не отличаются, то changed: false
Alex
файлы всегда одни и теже
Alex
просто удивило то, что в одном случае возвращает поле status_code, а в другом нет
Отделение Bereke Bank
по идее надо делать цикл по groups groups A dictionary/map with all the groups in inventory and each group has the list of hosts that belong to it
Да это понятно. Но мне нужно получается два дикта склеить. Один с хостнеймами, второй с адресами. Это возможно?
Denis
Подскажите, как решить изящнее такую задачу: есть куча клиентов и сервер, роль настраивает их все, забирает с клиентов ключи и пишет в конфиг сервера. Хочется иметь возможность запускать плейбук не на все клиенты, а только на новые.
Denis
При этом хочу формировать конфиг сервера из темплейта, то есть нужно получить ключи с клиентов, отсутствующих в плее
Denis
Плейбук запущен с лимитом, только на новые клиенты, при этом в конфиг на сервере нужно записать ключи всех клиентов.
Denis
Где-то вешать им признак настроенности
В принципе можно, если дать возможность принудительно его игнорить
Denis
Можно все ключи куда-то сложить
Denis
Но пока некуда)
Denis
А как решается подобная проблема?
inqfen
Это путь в ад
Да не обязательно, если есть какой-то консул или подобное - нормально будет
Timur
Или вы пытаетесь не тем инструментом решить задачу
Denis
Проблема, по сути, в том, что на всю группу работает долго
Timur
Проблема, по сути, в том, что на всю группу работает долго
А какая разница, какая группа? У вас параллельность не работает нормально?
Timur
У вас по хостам группы последовательно код пробегает, что ли?
Timur
Скорее параллельно 5 как из коробки
Это решается увеличением форков
inqfen
Ну это понятно
inqfen
Но иногда действительно нужно не трогать настроенный хост и это обычно пишут в хранилище конфигурации
inqfen
Хотя это таки редкость
inqfen
Гарантировать никак, это получается меньшее зло
inqfen
Иногда в настройку входит софт, который сам по себе неидемподентен
inqfen
Встречался с такой приложухой, для доступа к биллингу, при обращении генерится пара ключей, публичный отправляется на сервер, клиентский во внутреннюю бд отправляется, а вот чтобы заново это сгенерить, надо удалить клиента с сервера
inqfen
И если просто запустить перегенерацию, то новая пара генерится, а на текущего клиента публичный не обновляется
inqfen
Это было сделано из странных соображений безопасности (руки из жопы в общем былиу тех кто это писал), но оно вот так и с подобной данностью иногда надо работать
inqfen
Думаю ещё кейсы могут вполне быть
Timur
Тогда нужно делать immutable infrastructure и не лохматить бабушку
Tyler
Подскажие плз, у меня при следующем синтаксисе ансибл ругается, что обнаружена петля: vars: WSGI: USR: "mez" USR_HOMEDIR: "/home/"{{ WSGI.USR }}" Можно это как-то решить, кроме ручного указания переменных или выведения из WSGI.?
Viktor
Всем привет! Пишу роль для сервера, который будет выполнять автоматическое продление\создание сертификатов letsencrypt. Структура получается сложной, так как он должен принимать в переменных список хостов с разными видами подтверждений владения, выполнять запрос ACME, выполнять действия для подтверждения, затем забирать сертификаты. Есть затык с вилдкард сертификатом, ACME требует создать 2 TXT записи, одна для *.домен.корневой, вторая для домен.корневой, выдает мне это в виде "challenge_data_dns": { "_acme-challenge.домен.корневой": [ "mugJ_CjY2WOgRaedu2VyEuZEhIEro1-_LhLOZ5Z2zMA", "8XL5HFhm3x14q24qmv5rS1nEf57l2t3w2Fk-Iuj0dtI" ] Мне нужно привести к виду "value": [ "\"aaaaa\"", "\"bbbbb\"" ], Код отвечающий за эти действия https://pastebin.com/vez1JMmh Пример входящих данных vars: domains_certs: - name: '*.vsc1t.домен.корневой' state: present alternative_names: - 'DNS:vsc1t.домен.корневой' challenge: dns-01 - name: vik.домен.корневой state: present Пример данных при запросе подтверждения от ACME: https://pastebin.com/HLmheQiQ Мне нужно раскрыть список и к каждому его элементу добавить \"элемент\", при этом желательно мен создавать новый список так как соответствие запроса и действия проверяется через item.name, менения \"
Sergey
Всем привет! Пишу роль для сервера, который будет выполнять автоматическое продление\создание сертификатов letsencrypt. Структура получается сложной, так как он должен принимать в переменных список хостов с разными видами подтверждений владения, выполнять запрос ACME, выполнять действия для подтверждения, затем забирать сертификаты. Есть затык с вилдкард сертификатом, ACME требует создать 2 TXT записи, одна для *.домен.корневой, вторая для домен.корневой, выдает мне это в виде "challenge_data_dns": { "_acme-challenge.домен.корневой": [ "mugJ_CjY2WOgRaedu2VyEuZEhIEro1-_LhLOZ5Z2zMA", "8XL5HFhm3x14q24qmv5rS1nEf57l2t3w2Fk-Iuj0dtI" ] Мне нужно привести к виду "value": [ "\"aaaaa\"", "\"bbbbb\"" ], Код отвечающий за эти действия https://pastebin.com/vez1JMmh Пример входящих данных vars: domains_certs: - name: '*.vsc1t.домен.корневой' state: present alternative_names: - 'DNS:vsc1t.домен.корневой' challenge: dns-01 - name: vik.домен.корневой state: present Пример данных при запросе подтверждения от ACME: https://pastebin.com/HLmheQiQ Мне нужно раскрыть список и к каждому его элементу добавить \"элемент\", при этом желательно мен создавать новый список так как соответствие запроса и действия проверяется через item.name, менения \"
А почему нельзя это в нормальный модуль на Python сложить?
Sergey
неумею
Дык хороший повод освоить жи!
Viktor
checkdiff
Всем привет! Пишу роль для сервера, который будет выполнять автоматическое продление\создание сертификатов letsencrypt. Структура получается сложной, так как он должен принимать в переменных список хостов с разными видами подтверждений владения, выполнять запрос ACME, выполнять действия для подтверждения, затем забирать сертификаты. Есть затык с вилдкард сертификатом, ACME требует создать 2 TXT записи, одна для *.домен.корневой, вторая для домен.корневой, выдает мне это в виде "challenge_data_dns": { "_acme-challenge.домен.корневой": [ "mugJ_CjY2WOgRaedu2VyEuZEhIEro1-_LhLOZ5Z2zMA", "8XL5HFhm3x14q24qmv5rS1nEf57l2t3w2Fk-Iuj0dtI" ] Мне нужно привести к виду "value": [ "\"aaaaa\"", "\"bbbbb\"" ], Код отвечающий за эти действия https://pastebin.com/vez1JMmh Пример входящих данных vars: domains_certs: - name: '*.vsc1t.домен.корневой' state: present alternative_names: - 'DNS:vsc1t.домен.корневой' challenge: dns-01 - name: vik.домен.корневой state: present Пример данных при запросе подтверждения от ACME: https://pastebin.com/HLmheQiQ Мне нужно раскрыть список и к каждому его элементу добавить \"элемент\", при этом желательно мен создавать новый список так как соответствие запроса и действия проверяется через item.name, менения \"
Если я не ошибаюсь там в ответе acme есть структура в виде маппинга: domain: txt record
Viktor
Если я не ошибаюсь там в ответе acme есть структура в виде маппинга: domain: txt record
Да, есть, она есть в пастебине выше. Эту струтуру нужно переделать добавить \" перед каждым эл-том
checkdiff
"{{ list| regex_replace () }}" посмотрите
Svyatoslav
Не проще взять certbot генерить серты и через ансибл уже с сертиами?
Viktor
"{{ list| regex_replace () }}" посмотрите
пробовал он весь лист завернет в \"
Lamobot
Да, есть, она есть в пастебине выше. Эту струтуру нужно переделать добавить \" перед каждым эл-том
А зачем в структуру? Не проще при создании TXT записи делать? line: '{{ item.record }} IN TXT "{{ item.value }}"'
checkdiff
пробовал он весь лист завернет в \"
Каждый элемент списка. Вчера только тестил
checkdiff
Не проще взять certbot генерить серты и через ансибл уже с сертиами?
Сам недавно отказался от сертбота. Так получается множество зависимостей
Svyatoslav
ну да, но человеку нужно чтоб сегодня уже заработало))
Viktor
ну да, но человеку нужно чтоб сегодня уже заработало))
нет, бота на пердлагать, все ансиблом
Viktor
Каждый элемент списка. Вчера только тестил
посмотри код, он в пастебине выше https://t.me/pro_ansible/107570
Svyatoslav
😂😂
Dr. L.S.Dee
Спасибо.
checkdiff
Если я правильно понял то надо из ["a","b"] сделать ["\"a\"", "\"b\""] и это единственная проблема, так?
Viktor
И цикл идет через другой список, а мапятся они по ключу item.name https://pastebin.com/vez1JMmh
checkdiff
Чет не догоняю в проблему так, вроде сейчас вижу, что надо обновить словарь новым элементов с значением списка. может маленький пример вход - выход в том же пастбине, а не тысяча строк выхлопа акме :)
Viktor
как там про кащея было?
Viktor
все как в сказке :)
checkdiff
Итак [ { [...]<—— обновляем тут? } ] В списке все обновляем?
Viktor
Итак [ { [...]<—— обновляем тут? } ] В списке все обновляем?
да точнее [ {..} {..} {..} .. {днс_дата:{ днс: [тут обновляем]}} .. {} ]
checkdiff
Двойной словарь - ок