George
хз
Viktor
Спасибо, буду пробовать 🙂
George
о, гуголь помог
George
https://docs.ansible.com/ansible/latest/plugins/lookup/env.html
George
- debug: msg="{{ lookup('env','PROJECT_DIR') }} ololo"
Timur
имеется в виду получить в плейбуке как переменную
Если переменная есть в окружении, она считывается лукапом
Viktor
Спасибо большое! 🙂
Vladislav 👻
мне очень странно, что мне это очевидно, а Вам нет, @tgadiev
не очевидно, в каком bashrc: локальный или удаленный
Max
не очевидно, в каком bashrc: локальный или удаленный
и еще не факт, что переменная не выставляется внутри процесса ансибл напр. через инвентарь.
Oleg
Коллеги! делаю в jinja for loop, но почему то весь вывод в одну строку {% for host in app_nodes.stdout_lines %}'бла-бла',{% endfor %} Как заставить каждую строку с новой строки делать? Спасибо.
Vladislav 👻
сделать перенос строки, возможно в конце понадобиться пробел
Vladislav 👻
Oleg
это удаляет "," в последней строке, если не ошибаюсь
Oleg
да
а мне надо что бы с новой строки каждая старока была
Vladislav 👻
endfor вынести на новую строчку и поставить пробел по ситуации в конце строки
Vladislav 👻
если нет возомжности вынести и надо в одной строке цикл, но с переносом, тогда принудительно вывести перенос строки
Vladislav 👻
Вот нашел про пробелы http://jinja.pocoo.org/docs/2.9/templates/#whitespace-control
Viktor
Если bashrc на удалённой тачке, то придётся помудохаться, т.к. он не будет прочитан никем.
да, на удаленной. debug: var=lookup('env','PROJECT_DIR') возвращает пустое значение 🙁
[IPT] Dmitry
друзья, кто-нибудь сталкивался? The conditional check '"notify" in ansible_tags' failed. The error was: An unhandled exception occurred while templating '{{ lookup('get_tags') }}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: lookup plugin (get_tags) not found
Viktor
может перенести эту переменную в bash_profile?
и в bash_profile, и в /etc/profile прописал
[IPT] Dmitry
друзья, кто-нибудь сталкивался? The conditional check '"notify" in ansible_tags' failed. The error was: An unhandled exception occurred while templating '{{ lookup('get_tags') }}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: lookup plugin (get_tags) not found
ansible 2.7.6 config file = /etc/ansible/ansible.cfg configured module search path = [u'/home/username/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] не пойму, это какой-то отдельный плагин, который надо ставить? 🤔
George
похоже
George
да, на удаленной. debug: var=lookup('env','PROJECT_DIR') возвращает пустое значение 🙁
ну, тогда вариант засурснуть этот файл на удаленной машине и потом сделать env | grep | sed
George
кстати, про +/- я не знал в шаблоне, чтоб селективно lstrip_blocks регулировать
Viktor
ну, тогда вариант засурснуть этот файл на удаленной машине и потом сделать env | grep | sed
сделал через shell: egrep '^export PROJECT_DIR' /Users/user/.zshrc | awk -F'=' '{ print $2 }' changed_when: false register: user_home
George
Предложите лучше. У Вас все карты
George
И я взял обещание с коллеги, что он сделает нормально.... Потом
es]x
Ребят подскажите, можно ли через модуль file. при создании папки , удалять старую если она существует и только потом добавить ее заного, или надо как то через stat
George
зачем тебе это нужно?
George
я просто не догоняю зачем папку удалять, чтоб ее создать заново?
George
это как бы side-effect
es]x
я просто не догоняю зачем папку удалять, чтоб ее создать заново?
эмм. например в папке имеються какие-то временые данные которые если не удалить, заставят не коректно вести себя приложение
es]x
ну я так понял что проще через stat и when
George
там же есть примитив "папка == пустая"
George
и пересоздавать не надо
George
парни предлагают так
George
https://stackoverflow.com/a/38201611/698689
George
гуголь (30 секунд)
George
- file: path=/home/mydata/web state=absent - file: path=/home/mydata/web state=directory это самый простой путь, но фишка в том, что он всегда будет changed на обе инструкции
George
что как минимум некрасиво
es]x
ну вот поетому думаю stat проверять существует ли папка, и если да то через file state:absent when
es]x
спастб в общем
George
я вообще был уверен, что можно сделать что-то типа - file: blablabla state=directory, empty
George
но это мои фантазии
George
даже ишью есть https://github.com/ansible/ansible/issues/18910
George
https://github.com/ansible/ansible/issues/18910 - вот кстати, с файндом вариант красивее
George
@tgadiev
Timur
Ась?
George
https://t.me/pro_ansible/93332 - как сделать красиво
Timur
https://t.me/pro_ansible/93332 - как сделать красиво
Либо через стат и пересоздание по условию
Timur
Либо, как вариант, локально создаем нужную папку с нужным контентом и правами и делаем synchronize на таргет
Timur
synchronize умеет удалять лишние файлы в пути
George
спасибо. Но все не красиво. Я думаю, что действительно было бы круто, если можно было в одно действие опустошать каталог
George
отличный ответ. Я лично плюсанул (ссылка выше). Всех сочувствующих прошу сделать то же самое
es]x
анологично, плюсик поставил)
Timur
Статус waiting_for_contributor
George
я не буду, потому что @tgadiev будет злиться, но я знаю, где таких проблем нет
George
и можно идиоматично опустошать каталог 😊👍
Timur
я не буду, потому что @tgadiev будет злиться, но я знаю, где таких проблем нет
Ну, раз знаете, вас тут никто не держит, собственно 😊
George
да я так мимо проходил, в гости наведался 0)))))
Timur
Проходим, товарищ, не задерживаемся
George
я так и знал
George
прям гостеприимство так и валит