Ivan
Пррвиет! Переменная строковая, содержит чёрти что, пример: http_proxy: http://user123:pass123@192.168.168.48:3128 Хочу таск в зависимости от наличия переменной. Что-то лучше, чем : when: - http_proxy is defined - http_proxy | bool есть?
Ivan
раньше было без |bool, но ругалось, если переменная сложная, даже в каывках
Timur
Если просто наличие переменной, то http_proxy is defined вполне достаточно
Ivan
Наличие будет всегда, но она будет пустая
Timur
Или вам нужно убедиться, что она не пустая?
Ivan
то есть !="" надо обработать
Aleksey
синтаксис | sucsess был. дропнули
Timur
when: - http_proxy is defined - http_proxy | length
Timur
Наличие будет всегда, но она будет пустая
Если наличие предполагается всегда, то зачем вам is defined тогда?
Ivan
Если наличие предполагается всегда, то зачем вам is defined тогда?
Хороший вопрос. Скорее это соломка, если а вдруг её не будет. Хотя тогда плейбук вывалится на неизвестной переменной?
Timur
Хороший вопрос. Скорее это соломка, если а вдруг её не будет. Хотя тогда плейбук вывалится на неизвестной переменной?
Да, если не будет, то свалится. Тут вопрос лишь в том, допускает ли ваш сценарий вариант отсутствия данной переменной или нет
Timur
В роли легко обеспечить присутствие параметра, просто задав его в defaults
Ivan
Спасибо за совет. В дефолтах они есть и возможно я откажут от define, но пока оно не ломает, лишний раз трогать не буду.
Timur
В остальном - как выше написано. http_proxy | length
Timur
В версии 2.8 завезут фикс для bare vars
Timur
Тогда можно будет просто писать when: http_proxy
Timur
Как в питоне
Timur
Любая непустая строка будет true
Timur
Есть вариант сделать переменную частью словаря
Timur
Например, param.http_proxy
Timur
Тогда можно и сейчас просто в питоновском стиле conditional юзать
Timur
when: param.http_proxy
Andrey
А не имеет же значения, где become указан? В начале или в конце...!? - name: Intall Jenkins as a Service become: yes include_role: name: mhutter.docker-systemd-service
Andrey
ругается что прав не хватает...
Ivan
when: param.http_proxy
Спасибо!
Timur
Но что за странности с отступами?
Andrey
Но что за странности с отступами?
это телеграмм что-то поправил, беком сразу под name на том же уровне...
Aleksey
when: param.http_proxy
а откуда берется param ?
Andrey
Что может быть, анзибл не может видимо скопировать файл, хотя я уже файл там создал и права ему поставил 777 Ошибка вот такая: Destination /etc/systemd/system not writable Права на папку вот такие: drwxr-xr-x 19 root root 4096 Feb 25 14:08 system/ become yes выставлен
George
selinux?
George
ты под каким пользователем-то ломишься?
George
может он на root не переключается включи вербоуз моуд
Timur
а откуда берется param ?
Ниоткуда. Сам создаешь
greydjin
есть на оф. сайте иерархия перегрузки переменных, т.е. список какая масть кроет какую.
Да, спасибо, прочитал. В моем случае, с аккаунтами, хотел чтобы в all были описаны имена дефолтных аккаунтов, а в подгруппах дописывать дополнительные аккаунты без указания дефолтных, но не получилось. Получается что список из групп перезаписывает список all. Я ничего не упустил, нельзя ведь в группах добавлять элементы в список all?
Nikita
Всем привет, подскажите, можно ли в ansible замутить вывод с конкретной таски?
Nikita
Результата. У меня есть 2 таски, одна ищет файлы, другая их удаляет. При удалении выводится результат по каждому файлу, и вывод занимает очень много места в логах
Nikita
Да никаким, просто аутпут. ansible запускается в тимсити, и лог тимсити становится нечитабельным
Nikita
Никаких, просто плейбук и 2 таски
Timur
Никаких, просто плейбук и 2 таски
Как выглядит вывод - можете показать?
Nikita
https://pastebin.com/raw/B1tMBnby
Timur
https://pastebin.com/raw/B1tMBnby
У вас все файлы в одной директории?
Nikita
Нет, есть поддиректории
Timur
Это неважно. Удаляете всю директорию?
Timur
Или только определенные файлы выборочно?
Nikita
Нет, у меня эксклюд стоит на тип файлов
Nikita
- name: find files into {{ dir }} find: paths: "{{ dir }}" excludes: "*logs*" recurse: yes file_type: any register: app_files - name: clear app directory {{ dir }} file: state: absent path: "{{ item.path }}" with_items: - "{{ app_files.files }}"
Timur
А если вот так? NINJA ENERGISING, [25.02.19 19:21] - name: find files into {{ dir }} find: paths: "{{ dir }}" excludes: "*logs*" recurse: yes file_type: any register: app_files - name: clear app directory {{ dir }} file: state: absent path: '{{ item.path }}' loop: '{{ app_files.files }}' no_log: True
Nikita
Вывод укороченный получается, но он есть
Nikita
Я уже пробовал
Timur
Можно добавить в конфиг ансибла stdout_callback=selective
Timur
Попробуйте
Timur
И еще bin_ansible_callbacks=True
Nikita
Ну тогда у меня по всем задачам не будет аутпута
Nikita
А мне нужно по конкретной
Oleksandr
Башсибл с find -delete ;)
Timur
Вы можете выбирать - для каких тасков делать аутпут, а для каких - нет
Nikita
Да, извиняюсь, с full_skip перепутал
Timur
Подходит вариант?
Timur
В режиме дебага и с этим плагином вывод будет виден для всех тасков
Nikita
Не знаю ещё, сейчас разберусь как он работает и проверю
Timur
К таскам, которые хотите видеть, добавляете: tags: [print_action]
Nikita
В принципе да, а для gather facts как его выставить?:)
Nikita
ну первой такской же идет сбор фактов и её результат тоже скипается в выводе
Timur
Там все равно ничего важного
Nikita
Ладно, попробую, спасибо за помощь!
Timur
Если очень нужно, можете добавить явным образом: - setup: tags: [print_action]