формированию кода тасков?
Ну или помогите, пожаалуйста, собрать блок хитроумных тасков...
Идея - связана вот с этим постом https://t.me/pro_ansible/268169 и моим ответом на него сразу под ним.
Вот только в реальности ключ для PPA так просто не вытащишь и его нужно предваритеьно обработать (не знаю на кой ляд в каноникале так сделали.
Лежит он по адресу https://api.launchpad.net/devel/~{{user}}/+archive/ubuntu/{{repo_name}}?ws.op=getSigningKeyData и основная подстава заключается в том, что он там не в форме того, что можно было бы сразу скормить gpg для деарморинга, а в кавычках по краям файла и с буквальными "\n" вместо переносов строк.
Т.е. чтобы привести его к виду, в котором надо класть в кейринговую (не трастед, кстати) директорию, нужно сделать что-то типа
curl -s https://api.launchpad.net/devel/~{{ item.value.user }}/+archive/ubuntu/{{ item.value.name }}?ws.op=getSigningKeyData | sed -e 's@^"@@;s@"$@@' -e 's@\\n@\n@g' | gpg --dearmor
Не очень хотелось бы в таске использовать curl (дополнительная зависимость на этапе, когда пакеты ещё не поставлены), да и пайпы как-то смущают, да и редиректы тоже не очень внушают доверие.
А разбивать по разным таскам мешает то, что хотелось бы это делать в виде цикла (скормив список ppa для добавления), а о том, как сделать несклько тасков в одном цикле я так нихрена и не понял из интернетов 🤷♂️ Т.е. там лейтмотив "TL;DR: никак, но если очень хочется, то ...." и какая-то чёрная магия без подробного описания и нихрена не понятно как это повторить...
В общем, я сижу и пытаюсь что-то сочинить, но ничего рабочего не получается. Так что прошу помощи 😺
не проще ли написать баш скрипт, закинуть его жертве и там запустить?
ну... если честно, хотелось бы минимизировать заливание скриптов и их запуск, т.к. плейбук это и есть более формализованная амена этих скриптов. А то так-то и всю настройку можно в такой скрипт запихнуть... Но я уже думал о таком, да
кстати, вопрос про онлайн-конструкторы можно бы дополнить ещё вариантом с онлайн-песочницами, позволявшими бы тестировать код плейбуков, если такие есть. А то ищется только всякая херня
просто монстроузность конструкции усложняет сопровождение. может разделить задачу на две: 1. вытаскивать ключ 2. подкладывать ключ по хостам а так получается ключ каждым хостом запрашиваться будет. по ресурсам конечно мелочи, но время применения плейбука при таком подходе сильно растягивается.
ну, можно и так, да. Но в идеале бы обновление ключей бы тоже как-то автоматизировть, чтобы не руками за ними следить. А я как-то не очень силён в написании тасков для локального выполнения 😢
пока решение зреет, я бы баш скрипт подтягивания ключей в крон прописал. а вот наливку в ansible
Обсуждают сегодня