checkdiff
- hosts: localhost gather_facts: false vars: test: - name: 1 - name: 2 dns_data: name: test dns: - txt1 - txt2 - name: 3 tasks: - debug: msg: "{{ (item.dns_data | default({}))['dns'] | default([]) | map('regex_replace', '^(.*)$','\"\\1\"') | list }}" loop: "{{ test }}" костыли конечно
checkdiff
ok: [localhost] => (item={'name': 1}) => { "msg": [] } ok: [localhost] => (item={'name': 2, 'dns_data': {'name': 'test', 'dns': ['txt1', 'txt2']}}) => { "msg": [ "\"txt1\"", "\"txt2\"" ] } ok: [localhost] => (item={'name': 3}) => { "msg": [] }
Viktor
combine =) со старым)
жесть, реальлно из костылей велосипед делаю
checkdiff
Мы пока wildcard не выписываем, поэтому тонкостей я не знаю (увидел только у вас, что там 2 записи), но вцелом сейчас не вижу большой проблемы доработать роль для двух записей, но сейчас код намного менее костыльней выглядит (имхо). P.S. роль еще не готова, но сегодня будет (надеюсь)
Viktor
{{ ((pending_challenges | json_query(query_filter)) | map(attribute='challenge_data_dns') | list | first | dict2items) | map(attribute='value') | list | first | map('regex_replace', '^(.*)$', '"\1"' ) | list }}
Viktor
так поехало
Viktor
Но почему то только без '\'
Viktor
если поставить '\"\\1\"'
Viktor
будет "\\\"mugJ_CjY2WOgRaedu2VyEuZEhIEro1-_LhLOZ5Z2zMA\\\"" что-то типо того, почему так?
Viktor
но задачу решил, спасибо всем кто помогал :)
Viktor
"value": [ "\"mugJ_CjY2WOgRaedu2VyEuZEhIEro1-_LhLOZ5Z2zMA\"", "\"8XL5HFhm3x14q24qmv5rS1nEf57l2t3w2Fk-Iuj0dtI\"" ],
checkdiff
👍
Viktor
👍
Почему без \ теперь работает?
checkdiff
мне кажется история с кавычками '"\1"' так тоже работает: - debug: var: (item.dns_data | default({}))['dns'] | default([]) | map('regex_replace', '^(.*)$','"\1"') | list "(item.dns_data | default({}))['dns'] | default([]) | map('regex_replace', '^(.*)$','\"\\1\"') | list": [ "\"txt1\"", "\"txt2\"" ],
ShadoWalkeR
Господа! Есть творческий вопрос. Смотрите - есть такая утилита для контроля доступа бинарем к ресурсам CPU как cpulimit. При её вызове она захватывает консоль. И пока не послано Ctrl+C делать с ней ничего нельзя. Как мне запустить её ансиблом, чтобы ограничивалось потребление следующей таской, после чего можно было безболезненно прибить?
ShadoWalkeR
Пока что в голову пришел способ с shell -> screen-> cpulimit
George
не нужен cpulimit
ShadoWalkeR
Да я нагруженные сервера не хочу одной тяжелой таской нагнуть. Ей по 10-15% CPU хватит, а без лимита она приоритетно выжирает все что можно
George
nice можно еще поставить
ShadoWalkeR
Тут вторая проблема - там в тяжелой таске шелл
ShadoWalkeR
И это не обойти никак
ShadoWalkeR
#странное
Я думал у моих вопросов этот хэштэг по умолчанию 😃
Sergey
https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html# Напиши systemd-юнит с типом oneshot.
Daniel
не подскажите с траблой, что-то запутался. делаю так: [all:vars] type=stage Хост в группе group1. переменная для хоста не доступна. хотя по идеи должна. нет?
ShadoWalkeR
О, а с systemd это уже идея
Илья IT
Всем привет! Помогите плиз, чот не гуглится ответ... Значит пишу плейбуку для раскатки монго кластера. Дошел до создания ползуна и тут затык: - mongodb_user: database: admin name: test password: pass123pass roles: userAdminAnyDatabase state: present и ошибка: FAILED! => {"changed": false, "failed": true, "msg": "Use of SCRAM-SHA-256 requires undigested passwords"}
Sergey
это примерно, что я и сказал
Абсолютно согласен, я только чуть дополнил..
Sergey
И какое отношение оно имеет к Ansible?
Илья IT
И какое отношение оно имеет к Ansible?
Ну раскатывается то ансиблом)))
Илья IT
Гуглил?
Ну если я говорю что не гуглится, это явно значит, не то , что рука на гугл не поднимается...
George
Ну если я говорю что не гуглится, это явно значит, не то , что рука на гугл не поднимается...
ну, сорян. Пока похоже, что ты не пробовал решить свою проблему
Sergey
Ну я вот тоже хотел....... гхм........ написать разное. Но в общем да, не пробовал. Иначе первая же ссылка в гугле по фразе тебе бы всё сказала.
Илья IT
Ок, питоновские вские свистелки я ставил. Оно проблему не решило.
Div
господа, можно я тоже вкину на вентилятор странного? за пару дней поиска я так и не смог найти ответ на вопрос, можно ли лимитировать вывод таска только ошибками?
Andrey Pavlov
Подскажите пожалуйста, как обратиться к этой переменной? Это не работает: var: system_print.stdout_lines.installed-version
Div
всякие калбэк плагини предполагают модификацию основного конфига ансибля, чего хотелось бы избежать
George
Ибо у тебя там массив строк.
Andrey Pavlov
Ибо у тебя там массив строк.
А к массиву разве не через точку и [``] обращение идёт?
George
[0], [1]...
George
Проще грепать изначально версию, иначе регистрировать ошибку
checkdiff
всмысле?
у меня всегда под рукой в ansible.cfg лежит закоментированные строки на случай, если надо будет что-то отключать/включать. #callback_whitelist = timer, profile_roles, default, actionable, skippy # http://docs.ansible.com/ansible/2.5/plugins/callback.html
Anatoliy
кто-нибудь реализовывал /system resect-configuration для микротика?
Anatoliy
кто-нибудь реализовывал /system resect-configuration для микротика?
опечатался, да, но вопрос не в этом. не получается запрос на сброс подавить
Div
всмысле?
из того, что есть в офф доках я понял, что нужно либо модифицировать ansible.cfg либо добавлять глобальные переменные для окружения ансибль.
Div
Положи его в проект, да и всё.
о! сейчас помучаю гугл на этот предмет.
Alexey
добрый день. подскажите , как сделать зависимые таски? например, запускаю контейнер с скл, следующая задача запускается и ждет готовность скл, если все ок, то идет дальше по задачам
Div
таги?
Alexey
они то тут при чем? я так понимаю, для выборки используются из большого плейбуга можно просто точечно задачи по тегам указать. хотя может я и не прав
Alexey
вообще смотрел в сторону conditions, но успешное выполнения таски, не равно готовому к запросам серверу. поэтому и вопрос, если впиливать хелсчек, то перехода к следующей задаче не будет , пока не хелсчек текущий не пройдет?
Alexey
или какие еще есть варианты для подобного?
Gleb
начать использовать ансибл правильно
Gleb
роли указанные в плейбуке выполняются последовательно - это законченный ответ на твой вопрос
checkdiff
о! сейчас помучаю гугл на этот предмет.
В корне проекта ansible.cfg обычно живет
inqfen
Всем привет! Пишу роль для сервера, который будет выполнять автоматическое продление\создание сертификатов 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, менения \"
У le есть плагин, который сам это делает
inqfen
Если dns не какой-то свой
Daniel
считываю содержимое файла через slurp и запоминаю в переменную. мне нужно затем ее использовать на остальных хостах. как это сделать? смотрю гугл, только циклы всякие предлагают, что как-то не айс
Daniel
set_fact соответственно не подходит - так как он только для конкретного хоста. а мне нужна глобальная переменная
Daniel
register не подойдет ?
переменная доступна только в пределах рантайма хоста. т.е. там где slurp + register - там будет, а на остальных - нет
Sergey
Скачай на хост-контроллер через fetch, потом делай что хочешь.
Daniel
не, ну как без этого-то )