George
зачем?
George
шит (прошу прощения - конечно, гит) клоун - ХУДШИЙ из способов доставки приложений
Denis
- name: Create users postgresql_user: name: "{{ item.name }}" encrypted: "{{ item.encrypted | default(omit) }}" priv: "{{ item.priv | default(omit) }}"
Denis
Вот что будет, по сути, если item.password не задано
inqfen
есть ошибка "ansible_loop_var": "group", "changed": false, "group": { "description": "security group for admin access", "name": "admin", "rules": " - { proto: -1, from_port: -1, to_port: -1, cidr_ip: 1.1.1.1 }\n" blablabla стектрейс модулей AttributeError: 'str' object has no attribute 'get
Alexander
зачем?
типичное ру-комьюнити
George
типичное ру-комьюнити
типичный ответ типичного человека, который не понимает, чего он типично хочет
Alexander
Ещё раз подтверждение моим словам.
inqfen
rules в строку матчится
inqfen
вопрос, какова хуя, ну и как поправить
inqfen
синтаксически ансибл запрещает не кавычить эту переменную
inqfen
а закавыченная в строку биндится
inqfen
собственно если в список второй ip добавить, будет "rules": " - { proto: -1, from_port: -1, to_port: -1, cidr_ip: 1.1.1.1 }\n - { proto: -1, from_port: -1, to_port: -1, cidr_ip: 2.2.2.2 }\n"
inqfen
а не rules: [ ...... , ...... ]
Denis
Так может она никогда и не была списком
Max
ну я не до конца понимаю, какое в итоге значение будет в поле
default(omit) значит если этот плагин запускается, параметр, к которому его приклеивают - вытирается из списка параметров вызова модуля. т.е. модуль использует значение этого параметра по своему умолчанию.
Anonymous
ну примерно так и удмал , пока следственным эксперементом не подтвердил
inqfen
security_groups: - name: admin description: security group for admin access rules: "{{ admin_rule }}" она вот здесь строкой становится, томущо кавычки
inqfen
Зачем так странно?
есть набор групп, в каждой группе набор правил
inqfen
правила одинаковые
inqfen
ну и чтобы не копипастить, в цикл
Timur
есть набор групп, в каждой группе набор правил
Не, это понятно. Зачем через джинджу?
Max
типичное ру-комьюнити
"уйду от вас, злые вы?" брат, смотри, приложения доставляются механизмами ориентированными на доставку. в гит нередко кладется информация, которая с доставкой не связана. при доставке ты хочешь положить что нужно, и не класть что не нужно.
inqfen
Не, это понятно. Зачем через джинджу?
ну как бы родной темплейтинг ансибла
Timur
то же самое
Как вариант, сделать так: admin_rule: |- {% for ip in admin_ips %} - { proto: -1, from_port: -1, to_port: -1, cidr_ip: {{ ip }} } {% endfor %}
Timur
Помогает?
Timur
Но вообще json в ямле - это дичь
inqfen
не, то же самое
inqfen
почему json
inqfen
там переменная, в которой лист, в элементах которого есть словарь, в котором лист) Хоть это и jsonlike, но структуры-то питоньи
inqfen
объекты точнее
Max
А как вы на целевых машинах git clone делаете?
это нехороший знак. напр. открывает возможность хаоса: 1. ты собираешься клонишь по ветке b1 2. твой друг пушнул в ветку b1 3. на целевой тачке лег код с неожидаемыми результатами (друга)
/warn
Ещё раз подтверждение моим словам.
Главное правило чата: получать ответы на свои вопросы - твоя привилегия, а не право.
inqfen
замена на admin_rule: |- {% for ip in admin_ips %} - proto: -1 from_port: -1 to_port: -1 cidr_ip: {{ ip }} {% endfor %} дает тот же результат
Anonymous
Anonymous
а по мне коллега прав, вот почему именно как транспорт гит - это его головная боль. Вопрос то корректный
Anonymous
а то у нас как обычно - спроси чем лучше картофель копать лопатой или вилами, тебе расскажут про эксковатор и промышенную уборку в агрохолдинге плюс мировые тренды, но не ответят на простой вопрос лопата или вилы
George
так задай вопрос - лопата или вилы
Артём
- Когда я копаю картофель алюминиевой ложкой, у неё быстро гнётся ручка.
George
на его вопрос ответ простой - МЫ НЕ ИСПОЛЬЗУЕМ гит клоун на целевых тачках, ибо мы не клоуны. Есть гитлаб-раннер, есть ансибл )
George
#странного
Артём
Что именно? Я бы хотел ответ «Возьми латунную, они прочнее. Кстати, ты знаешь, что бывают экскаваторы?»
George
Ну, сорри, я должен был догадаться, что коллега хотел именно такой ответ ) а не заходить с козырей
Артём
Вообще решить проблему с минимальными модификациями исходного, по-моему, хороший вариант.
inqfen
если насрано, то не посоветовать убрать, а посоветовать сверху бумажку кинуть?)
inqfen
Это как раз минимальные модификации
George
Ну, типа "парни, я понимаю, что гит клон на целевом сервере плохо, но как бы мне эту команду вызвать на списке удаленных серверов... детали такие-то"
Артём
если насрано, то не посоветовать убрать, а посоветовать сверху бумажку кинуть?)
Да. Не считать коллегу идиотом. Предположить, что он решил проблему с учётом ограничений - было полчаса и жёлуди, сделал как мог
cent
типичное ру-комьюнити
А ты думаешь они будут молчать, потому что просто не знают ответа?)
George
Да. Не считать коллегу идиотом. Предположить, что он решил проблему с учётом ограничений - было полчаса и жёлуди, сделал как мог
к сожалению, идиотов большинство. И заранее определить степень разумности собеседника не представляется возможным. Тем более, если он не дает к этому средств
Отделение Bereke Bank
А как вы на целевых машинах git clone делаете?
мне советовали упаковывать сайт/прил-е в артифакт и деплоить уже его. в моем случае это архив с сайтом, который потом ансибл распаковывает в нужное место и меняет симлинк
Max
ну и запускай команду. надо авторизацию наладить.
Alexander
Главное правило чата: получать ответы на свои вопросы - твоя привилегия, а не право.
Я же не говорил "какие плохие, на вопросы не отвечают".
Max
👆
Max
🤣
Alexander
а модуль git чем не устроил?
Вопрос в ключах. Не хочу ключ на машине удалённой держать.
Max
Эдак я умею ) Хочется узнать, можно ли как-то без промежуточных действий.
промежуточные действия позволяют содержать env-invariant артефакт.
Max
и при развертке создавать конфигу, которая env-specific
Alexander
держи в vault в коде
Как использовать, я не понимаю. key_file аргумент хочет файл на машине исполнения
inqfen
https://docs.ansible.com/ansible/latest/modules/git_module.html#git-module
inqfen
разваултил @ сделал все что надо в тасках @ удалил
inqfen
никто его там не заставляет держать
Alexander
https://docs.ansible.com/ansible/latest/modules/git_module.html#git-module
Там ни одного примера использования ключа. Если только писать сначала его в файл на удалённой машине и давать этот файл как значение аргументу key_file
Alexander
как клонить хотите - через ссш или по хтппс?
Через ssh приватный репозиторий
George
если по ssh - ключ должен быть в каталоге пользователя, под которым ансибл туда на сервер зашел