Alex
в одном случае в dest у меня указана папка, а в другом имя файла
Alex
Отделение 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
Timur
Alex
Timur
Timur
Если в dest директория, то файл скачивается в любом случае, а потом сравнивается - если ли файл с такой же контрольной суммой в указанном пути. Если суммы отличаются, файл перезаписывается. Если не отличаются, то changed: false
Alex
файлы всегда одни и теже
Alex
просто удивило то, что в одном случае возвращает поле status_code, а в другом нет
Отделение Bereke Bank
Timur
Denis
Подскажите, как решить изящнее такую задачу: есть куча клиентов и сервер, роль настраивает их все, забирает с клиентов ключи и пишет в конфиг сервера. Хочется иметь возможность запускать плейбук не на все клиенты, а только на новые.
inqfen
Denis
При этом хочу формировать конфиг сервера из темплейта, то есть нужно получить ключи с клиентов, отсутствующих в плее
inqfen
Denis
Плейбук запущен с лимитом, только на новые клиенты, при этом в конфиг на сервере нужно записать ключи всех клиентов.
Denis
Можно все ключи куда-то сложить
inqfen
Denis
Но пока некуда)
Timur
Denis
А как решается подобная проблема?
inqfen
Это путь в ад
Да не обязательно, если есть какой-то консул или подобное - нормально будет
Timur
inqfen
Timur
Или вы пытаетесь не тем инструментом решить задачу
Denis
Проблема, по сути, в том, что на всю группу работает долго
Timur
У вас по хостам группы последовательно код пробегает, что ли?
inqfen
Timur
inqfen
Ну это понятно
Denis
inqfen
Но иногда действительно нужно не трогать настроенный хост и это обычно пишут в хранилище конфигурации
inqfen
Хотя это таки редкость
Timur
inqfen
Гарантировать никак, это получается меньшее зло
inqfen
Иногда в настройку входит софт, который сам по себе неидемподентен
inqfen
Встречался с такой приложухой, для доступа к биллингу, при обращении генерится пара ключей, публичный отправляется на сервер, клиентский во внутреннюю бд отправляется, а вот чтобы заново это сгенерить, надо удалить клиента с сервера
inqfen
И если просто запустить перегенерацию, то новая пара генерится, а на текущего клиента публичный не обновляется
inqfen
Это было сделано из странных соображений безопасности (руки из жопы в общем былиу тех кто это писал), но оно вот так и с подобной данностью иногда надо работать
inqfen
Думаю ещё кейсы могут вполне быть
Timur
Тогда нужно делать immutable infrastructure и не лохматить бабушку
Tyler
Подскажие плз, у меня при следующем синтаксисе ансибл ругается, что обнаружена петля:
vars:
WSGI:
USR: "mez"
USR_HOMEDIR: "/home/"{{ WSGI.USR }}"
Можно это как-то решить, кроме ручного указания переменных или выведения из WSGI.?
Lamobot
Tyler
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 сложить?
Viktor
Sergey
неумею
Дык хороший повод освоить жи!
Viktor
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
checkdiff
"{{ list| regex_replace () }}"
посмотрите
Svyatoslav
Не проще взять certbot генерить серты и через ансибл уже с сертиами?
Viktor
Svyatoslav
ну да, но человеку нужно чтоб сегодня уже заработало))
Viktor
Timur
Svyatoslav
Dr. L.S.Dee
checkdiff
Если я правильно понял то надо из
["a","b"] сделать ["\"a\"", "\"b\""] и это единственная проблема, так?
Viktor
Viktor
И цикл идет через другой список, а мапятся они по ключу item.name
https://pastebin.com/vez1JMmh
checkdiff
Чет не догоняю в проблему так, вроде сейчас вижу, что надо обновить словарь новым элементов с значением списка. может маленький пример вход - выход в том же пастбине, а не тысяча строк выхлопа акме :)
Viktor
Viktor
как там про кащея было?
Viktor
все как в сказке :)
checkdiff
Итак
[
{
[...]<—— обновляем тут?
}
]
В списке все обновляем?
checkdiff
Двойной словарь - ок