Anatoliy
debug: msg: "{{file_check | to_nice_yaml }}"
tutunak
debug: msg: "{{file_check | to_nice_yaml }}"
А почему не debug: var: file_check ?
Anatoliy
А почему не debug: var: file_check ?
наверное, можно и так. я просто привык все через msg делать. тем более, отформатировать можно и другой вывод добавить
Гайрат
Подскажите как правильно проверять сущестование файла - stat: path: "{{ file }}" register: file_check - include: lala.yml when: file_check is defined and file_check.stat.exists == True Если файла нет, то file.stat.exist выдает ошибку
file_check вы итак записываете в прошлом таске, нкт необходимости проверять его объявление, можно просто file_check.stat.exists | bool
tutunak
Это
Ты содержимое посмотрел?
Alexander
Еще нет
Timur
Это
А переменная, которую вы в path подставляете, существует вообще?
Alexander
А переменная, которую вы в path подставляете, существует вообще?
То есть файл по ней? Не всегда. Может быть, может не быть
Timur
То есть файл по ней? Не всегда. Может быть, может не быть
Не, файл понятно. А сама переменная точно задана?
Alexander
Да
Timur
Тогда никакой неопределенности быть не может
Timur
У вас права есть на тот путь, который вы проверяете?
Alexander
Да, конечно
Timur
Выведите дебаг выхлопа
Timur
А, не
Timur
Стоп
Alexander
Минутку
Timur
Да, покажите выхлоп
Timur
Что-то странное у вас. Такого быть не должно
Anonymous
Вообще нет ансибла в репах :)
Забавно. Учитывая, что один из redhat экзаменов почти полностью про ансибл
Гайрат
Минутку
У вас опечатка, вы проверяете file, а таском выше register: file_check
Alex
У вас опечатка, вы проверяете file, а таском выше register: file_check
При чем тут это. В переменной file хранится путь к файлу, а в file_check результат проверки
Гайрат
Alex
file_check is defined неправильное условие
Гайрат
Почему?
Alex
Почему?
Даже если файла нет, то оно будет defined
Гайрат
Условие правильное, а смысла в нём нет
Alexander
Выведите дебаг выхлопа
Кажется я понял. - stat: path: "{{ file }}" register: file_check здесь я не дописал when: ..... И как раз там стоит еще одна проверка, и переменная file_check как раз и не создается в этот момент
Alex
Если смысла нет, то оно неправильное, имхо
Timur
У вас просто не вызывается модуль stat и не создается переменная
Timur
Надо полный код приводить
Alexander
Я ожидал, что он должен закончить проверку на моменте с defined
Alexander
Надо полный код приводить
Не могу, отдельный комп физически. Старался локализовать возможную проблему
Alexander
Ну и локализовал)
Alexander
Спасибо всем за наводящие вопросы
Alexander
var is defined - проверка на то, что такая переменная объявлена вообще, верно?
zhag
Парни, у меня из j2 собирается json. Как можно валидировать этот json? Структуру. Просто если невалидный json заедет на таргет хост то я уеду в глухие леса в мешке
Aleksey
Лучше возьмите jsonnet
Aleksey
Если таки никак делаете словарь и разворачивайте через {{my_dict | to_json}}
zhag
Спасибо, есть пища для размышления
Aleksey
Постарайтесь не темплейтить джсон это будет больно
Вы быстро утомитесь делать comma control
Aleksey
Я вот утомился https://code.getnoc.com/noc/noc/blob/master/templates/ddash/dash_mo.j2
Denis
Всем првет. Немного не понимаю один момент. Запускаю плейбук: ansible-playbook develop.yml --extra-vars "{'app': {'tag': '0.1.0'}}" -t test На выходе получаю: FAILED! => {"msg": "'dict object' has no attribute 'data_dir'"} Запускаю без --extra-vars и все отрабатывает нормально. Куда копать?
Denis
В defaults простая конструкция: app: tag: latest
Alexander
У меня выше похожая проблема была
zhag
--extra_vars я обычно @path/to/yml делаю
zhag
Такое ощущение что он слепить не может
Denis
У меня выше похожая проблема была
Я на старом банке рабочей такие конструкции запускал на изи. Сейчас пересел на новый пк, установил последний ansible из pip и понеслось.
Alexander
Ну у меня переменная действительно не создавалась. Вернее она была defined, но внутри не было того, на что я проверял
Denis
Такое ощущение что он слепить не может
но вот без --extra_vars норм лепит.
citius
но вот без --extra_vars норм лепит.
Возможно где-то в коде или варсах оно определяется сложным образом, или через set_fact, а extra-vars это поведение ломает. Я бы по коду порылся для начала.
Aleksey
Лучше возьмите jsonnet
https://github.com/stoned/ansible-jsonnet-lookup/blob/master/lookup_plugins/jsonnet.py
Aleksey
ого
Denis
Возможно где-то в коде или варсах оно определяется сложным образом, или через set_fact, а extra-vars это поведение ломает. Я бы по коду порылся для начала.
Не, там все проще намного. Вообще странно видет себя ansible. У меня переменные в group_vars приоритетней чем --extra_vars сейчас выходят)
Denis
Этого не может быть. Скорее всего, вы что-то путаете
Возможно, завтра перепроверю еще раз. Просто раньше эти же плейбуки работали как надо, а сейчас очень аномально себя ведут при использовании --extra_vars
Denis
Может инсталляция ансибл?
А что с ней может быть не так? Кстати раньше запускал на Fedora, сейчас с MacOS
tutunak
А что с ней может быть не так? Кстати раньше запускал на Fedora, сейчас с MacOS
Апдейты, плагины и т.п, если чистая инсталляция и не насилованная годами, то не думаю что в ней тогда проблема
Gleb
А что с ней может быть не так? Кстати раньше запускал на Fedora, сейчас с MacOS
на маке могут быть особенности там где используются системные утилиты и модули типа архив. Версия питона раньше моглать быть 3, а теперь 2 или наоборот
GithubReleases
ansible/ansible tagged: v2.9.0rc5 Link: https://github.com/ansible/ansible/releases/tag/v2.9.0rc5 Release notes: New release v2.9.0rc5
Александр
[root@gate named]# nslookup -q=A www.ansible.com 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: www.ansible.com canonical name = 330046g46.secure0032.hubspot.net. 330046g46.secure0032.hubspot.net canonical name = 330046.group46.sites.hubspot.net. 330046.group46.sites.hubspot.net canonical name = group46.sites.hscoscdn40.net. Name: group46.sites.hscoscdn40.net Address: 104.17.113.180 Name: group46.sites.hscoscdn40.net Address: 104.17.114.180 Name: group46.sites.hscoscdn40.net Address: 104.17.115.180 Name: group46.sites.hscoscdn40.net Address: 104.17.112.180 Name: group46.sites.hscoscdn40.net Address: 104.17.116.180 [root@gate named]# nslookup -q=A ansible.com 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: ansible.com Address: 104.24.16.59 Name: ansible.com Address: 104.24.17.59
Александр
Их там ломанули что ли?
Александр
Или это cloudflare балуется?
inqfen
Это cdn же
Aleksey
кто бы знал как меня бесит поведение to_yaml.
Alexander
"Фиксить не будем, это валидное поведение" ))
Denis
на маке могут быть особенности там где используются системные утилиты и модули типа архив. Версия питона раньше моглать быть 3, а теперь 2 или наоборот
Тоже были связанные с этим проблемы. Решил при помощи ansible_python_interpreter=/usr/bin/python3, после этого только некоторые модули стали работать корректно
DVG_Lab
Качнул для ознакомления роль с galaxy, там в названиях переменных двойное подчеркивание, типа apcupsd__service_environment подскажите, это зачем так? В доке не нашел...