Vladislav 👻
В двойных классическое экранирование
George
Бывает и обратное - когда кавычки лишние. Я с этим ямлем уже устал бороться
Vitaliy
[WARNING]: could not parse environment value, skipping: [u'{{ proxy_env | default("") }}' 🙊
Vitaliy
ansible 2.8.4
George
Что у тебя в proxy_env?
Timur
без ковычек ansible-lint сказал - фу.
В некоторых случаях кавычки необходимы. Тогда стоит юзать одинарные
George
Что-то типа PROXY=http://ololo:3428 ?
Timur
В двойных классическое экранирование
Вот именно. Там backslash - спецсимвол
George
Блин
George
Т.е. он определен и пустой массив
George
Я бы не делал так
Vladislav 👻
вот так точно работает
Timur
proxy_env: []
В энве не должно быть списков, емнип
Timur
Это словарь
Vitaliy
ну это по дефолту. У кого нет доступа в инет и нужен прокси proxy_env: http_proxy: http://192.168.152.9:3128 https_proxy: http://192.168.152.9:3128
Timur
👎
???
George
Сделай по-другому
Vitaliy
Я всегда использую проксю, но есть ребята и с прямым доступом в инет со своих серверов....
Vitaliy
Сделай по-другому
так? environment: "{{ proxy_env | default({}) }}"
Timur
так? environment: "{{ proxy_env | default({}) }}"
Да. Только кавычки одинарные поставь
Vitaliy
ок
George
environment: HTTP_PROXY: {{ http_proxy | default ("") }} HTTPS_PROXY: {{ https_proxy | default("") }}
George
Или типа того
George
Т.е. задать названия самих переменных жёстко
Vitaliy
ага
George
А вот содержимое - подставлять по мере необходимости
Timur
environment - словарь, а не список!
George
Нет
Почему? Я типа псевдокод фиганул. Думаю, подогнать под синтаксис ансибла сможете
Timur
У тебя список вместо словаря
George
Давайте переделаем
George
https://t.me/pro_ansible/109960 так?
George
Фишка в том, что если эти переменные пустые, то все должно пойти в обход прокси, напрямую
George
Но это прям application specific
Timur
proxy_env: http_proxy: '{{ http_proxy_var | default(omit) }}' https_proxy: '{{ https_proxy_var | default(omit) }}' Вот так должно работать по идее
Timur
А кавычки лучше одинарные ставить, если специально не требуется обратное
Timur
Я знаю только 3 случая, когда необходимы двойные кавычки
Vitaliy
environment: "{{ proxy_env | default({}) }}"
так же не помогло. Если в переменных proxy_env: []. Попробую сл. совет
Vitaliy
но нужно чтобы по умолчанию небыл задан адрес прокси сервера. Это доп опция, которая используется при необходимости. Поэтому я комментил.
Timur
[] - пустой список {} - пустой словарь
Timur
Не путать!
Vitaliy
ааа )
Vitaliy
Ну я же не про
Timur
Просто запомните: в environment должен быть словарь. Пусть пустой, но словарь, а не список
Vitaliy
С вот таким дефолтом переменной все ок: proxy_env: {} # http_proxy: http://192.168.152.9:3128 # https_proxy: http://192.168.152.9:3128
Vitaliy
Нет доступа в инет, снимаешь коммент и пишешь свой ip proxy_env: http_proxy: http://192.168.152.9:3128 https_proxy: http://192.168.152.9:3128
George
Вот и разобрались Итого было две проблемы, а не одна )
inqfen
граждане
inqfen
если у меня есть роль, у которой в зависимостях есть другие
inqfen
То при ее старте, она их запускает
inqfen
Это поведение можно как-то изменить?
inqfen
Чтобы вызывать не перед своей ролью, а в процессе выполнения инклюдить
inqfen
Какого рода зависимости?
ну в dependencies в meta другие роли
Timur
ну в dependencies в meta другие роли
Лучше не использовать такой способ
inqfen
Да, неудобно, юзаю, чтобы не поддерживать requirements на всех проектах с 3мя ролями, а не с 1. Это одна требует 2 зависимые роли определенных версий
inqfen
Соответственно везде в requirements надо держать корректные версии
inqfen
А так обновил роль, в meta поменял версии зависимостей - и все
inqfen
А в чем проблема с requirements?
Ну в том, что кому-то другому надо обновить 1 запись в requirements и не читать readme, что туда надо еще прописать и каких оно должно быть версий для какой версии роли
inqfen
Ну я свою роль не один использую потому что
inqfen
Нас тут в компании больше одного человека)