manefesto
что за дичь ?
White
хороший вопрос
White
я же не из под рута запускаю плейбук
cent
Тогда логично про эти системы помнить, что они не могут управляться с помощью Ansible "искаропки".
Сейчас уже просто туча плейбуков на raw. Вообще не проблема по поводу змеи
bebebe
у вас волчанка
White
become_user: {{ ansible_user_id }}
White
сюда матерится
White
Should be written as: with_items: - "{{ foo }}"
manefesto
давай разбирайся, я тебе дал наводку
White
)))
manefesto
чтобы познать рекурсию...ну вы в курсе
Vadim
become_user: {{ ansible_user_id }}
во-первых это не надо - юзер уже есть во-вторых кавычки, если выражение начинается или заканчивается скобками
White
угу это я уже нагуглил
White
Без " Ansible думает, что { - это словарик.
cent
тогда пойдет установка в папку пользователя?
А просто env HOME=/dest_dir добавить перед curl не вариант?
White
возможно
cent
возможно
Ну, или может даже export HOME=/dest_dir && . Потому что скрипт, тоже может быть не простой
White
такс, синтаксис подправил, сейчас пробую)
White
ага хрен там...
White
os.chdir(chdir)\r\nOSError: [Errno 2] No such file or directory: '/home/\"root\"'\r\n", "msg": "MODULE FAILURE", "parsed": false
White
что то типа такого...
cent
кстати, как и вытягивание баш-скриптов курлом и их запуск
Ну, не в данном случае же. Если он будет писать все на ansible, то и поддерживать этот скрипт придется ему же.
White
это да
White
видимо потому что я даю судо перед ansible-playbook
White
думаю в этом вся трабла..
White
а без судо фейлится, типа пароль нужен
White
fatal: [192.168.0.55]: FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "parsed": false}
Vadim
а без судо фейлится, типа пароль нужен
https://docs.ansible.com/ansible/2.4/ansible-playbook.html#cmdoption-ansible-playbook-k
White
так а смысл, это получится он снова будет думать что я рут и херачить
White
или нет..
cent
Это, как правило, если руки так себе. Рандек с ансиблом рулит и педалит, разрабы тащатся.
А для чего этот рандек нужен? А то что-то я от жизни отстал, видимо...
cent
так а смысл, это получится он снова будет думать что я рут и херачить
Ну, Тебе же для этого скрипта и нужен рут, правильно? Хотя, на сколько я помню, для nvm не нужен рут.
White
а ну если так: nikolaipryadilshikov
White
--user=username --ask-sudo-pass
cent
--user=username --ask-sudo-pass
Я вообще не пойму зачем Ты себе трахаешь мозг?) https://github.com/leanbit/ansible-nvm - попробуй уже готовое
White
мы не ищем лёгких путей)))
manefesto
с одной стороны нет ведь в стандартных пакетах, а с другой можно рядом с плейбуком в library положить
Sergey
А для чего этот рандек нужен? А то что-то я от жизни отстал, видимо...
Удобная запускалка, знакома с частью внутренностей ансибла.
Ilya
Подскажите, как правильно сделать условие, чтобы подставляло только тогда, когда значение есть. Что-то типа такого: shell: "find /home/user -mindepth 1 -type d {% if item != "" %}-name {{ item }}{% endif %} -execdir echo {} ';'"
bebebe
Удобная запускалка, знакома с частью внутренностей ансибла.
Я бы уточнил что она идеальна если нужно передать управление плейбуки службе поддержки
bebebe
Они полтора года чинили ишую с параллельными джобами
cent
Подскажите, как правильно сделать условие, чтобы подставляло только тогда, когда значение есть. Что-то типа такого: shell: "find /home/user -mindepth 1 -type d {% if item != "" %}-name {{ item }}{% endif %} -execdir echo {} ';'"
Ну, а чем так не устраивает? Только мне больше нравится так оформить: shell: > find \ /home/user \ -mindepth 1 \ -type d \ {% if item != "" %}-name {{ item }}{% endif %} \ -execdir echo {} ';'
Ilya
Так и не работает
Ilya
Я в дефолтах задаю пустой список просто, по сути должен отрабатывать, но нет
Sergey
А какой практический юзкейс?
Разработчик, желающий только жать кнопки "выбрать окружение", "выбрать версию", "задплоить".
cent
Разработчик, желающий только жать кнопки "выбрать окружение", "выбрать версию", "задплоить".
Все равно не понял в чем профит?) Оно же консольное. Можно хоть к jenkins, хоть к system() php'ному прикрутить и дергать когда вздумается. Но ладно) Проехали
Ilya
А скипает потому что: "skipped_reason": "No items in the list"
Ilya
Есть такое) Думал просто в ошибку будет сливаться
cent
Есть такое) Думал просто в ошибку будет сливаться
Ну, поведение адекватное. Как и любой другой цикл в любом ЯП.
Ilya
Тогда получается, чтбы разрулить такое вот условие, мне придется делать две разные таски(( Просто думал, по красивому можно разрулить
cent
Тогда получается, чтбы разрулить такое вот условие, мне придется делать две разные таски(( Просто думал, по красивому можно разрулить
Можно и в одну таску. Но так лучше не делать. Потом поддерживать сложнее. Да и рефакторить тоже
Ilya
Ризонный вопрос тогда - как? Это все почти личное использование, поэтому можно помудрить
cent
Ризонный вопрос тогда - как? Это все почти личное использование, поэтому можно помудрить
Ну, сам подход неверный. Если даже и для себя, или просто в стол. То все равно приходит время, когда нужно будет сделать что-то подобное. Потом берешь просто и копипастишь. А то, что сильно усложнено, невозможно просто взять и заюзать где-то еще Я уже не говорю о тому, что find - это явно не ansible way))) На 90% уверен, что можно заменить на with_fileglob
Ilya
Ага)
Constantin
Cтранный вопрос. Есть возможность пометить переменную в списке как-то, чтобы она в логах не палилась при выполнении таска с with_items?
Constantin
Я хочу получить токен от пользователя плэйбука через prompt с private: yes, потом он ставится в элементы списка, потом этот список итерируется через with_items, аnsbile выплевывает в лог все что есть в списке with_items, я хочу чтобы не выплевывал
Constantin
prompt - не идемпотентно же) Логические ошибки сложнее всего костылить. Я уже не говорю о том, что при вводе человек может ошибиться
А можете подсказать, что лучше тогда сделать, чтобы пользователь плэйбука мог свой токен вкидывать?
cent
А можете подсказать, что лучше тогда сделать, чтобы пользователь плэйбука мог свой токен вкидывать?
Ложить все в секреты. ansible-vault. И ключ секретов генерить через локальный плейбук, если его нет, в хомяк или в папку проекта под .gitignore Только так тоже может быть ошибка ввода от пользователя. Но это только один раз происходит.
Constantin
Я думал о vault, но не уверен, что токен вычистится из лога wth_items. Сейчас попробую
Constantin
Я думал о vault, но не уверен, что токен вычистится из лога wth_items. Сейчас попробую
В общем все равно токены из него выводятся при выполнении с with_items =(
Constantin
Куда выводятся?
В лог выполнения плэйбука, решил через loop_control.label
cent
В лог выполнения плэйбука, решил через loop_control.label
Ну, если намеренно не выводить, то и не выводятся. Один хрен, это же только хозяин vault-pass может дернуть плейбук. Т.о. если не писать shell: echo {{ mysecret }} >/to_backdoor_file То все гут
Constantin
Ну, если намеренно не выводить, то и не выводятся. Один хрен, это же только хозяин vault-pass может дернуть плейбук. Т.о. если не писать shell: echo {{ mysecret }} >/to_backdoor_file То все гут
Да всякое бывает, не знаю, может у него там скринридер, или запись экрана будет вестись, лучше не выводить в консоль лишнего loop_control: label: 'Ok' Вот примерно так убрал