@pro_ansible

Страница 542 из 625
Maksim
09.08.2018
11:59:00
давай разбирайся, я тебе дал наводку

Michail
09.08.2018
11:59:36
)))

Maksim
09.08.2018
12:00:59
чтобы познать рекурсию...ну вы в курсе

Google
Vadim
09.08.2018
12:03:58
become_user: {{ ansible_user_id }}
во-первых это не надо - юзер уже есть во-вторых кавычки, если выражение начинается или заканчивается скобками

Michail
09.08.2018
12:05:28
угу это я уже нагуглил

Без " Ansible думает, что { - это словарик.

cent
09.08.2018
12:06:23
тогда пойдет установка в папку пользователя?
А просто env HOME=/dest_dir добавить перед curl не вариант?

Michail
09.08.2018
12:07:02
возможно

cent
09.08.2018
12:08:40
возможно
Ну, или может даже export HOME=/dest_dir && . Потому что скрипт, тоже может быть не простой

Michail
09.08.2018
12:09:46
такс, синтаксис подправил, сейчас пробую)

ага хрен там...

os.chdir(chdir)\r\nOSError: [Errno 2] No such file or directory: '/home/\"root\"'\r\n", "msg": "MODULE FAILURE", "parsed": false

что то типа такого...

cent
09.08.2018
12:12:14
кстати, как и вытягивание баш-скриптов курлом и их запуск
Ну, не в данном случае же. Если он будет писать все на ansible, то и поддерживать этот скрипт придется ему же.

Michail
09.08.2018
12:13:20
это да

Google
Michail
09.08.2018
12:13:49
видимо потому что я даю судо перед ansible-playbook

думаю в этом вся трабла..

а без судо фейлится, типа пароль нужен

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
09.08.2018
12:16:12
а без судо фейлится, типа пароль нужен
https://docs.ansible.com/ansible/2.4/ansible-playbook.html#cmdoption-ansible-playbook-k

cent
09.08.2018
12:16:13
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}
sudo всегда пароль нужен. Но Ты же можешь его записать в секреты и передавать

Michail
09.08.2018
12:17:28
так а смысл, это получится он снова будет думать что я рут и херачить

или нет..

cent
09.08.2018
12:17:53
Это, как правило, если руки так себе. Рандек с ансиблом рулит и педалит, разрабы тащатся.
А для чего этот рандек нужен? А то что-то я от жизни отстал, видимо...

так а смысл, это получится он снова будет думать что я рут и херачить
Ну, Тебе же для этого скрипта и нужен рут, правильно? Хотя, на сколько я помню, для nvm не нужен рут.

Michail
09.08.2018
12:19:00
а ну если так: nikolaipryadilshikov

--user=username --ask-sudo-pass

cent
09.08.2018
12:25:09
--user=username --ask-sudo-pass
Я вообще не пойму зачем Ты себе трахаешь мозг?) https://github.com/leanbit/ansible-nvm - попробуй уже готовое

Michail
09.08.2018
12:28:42
мы не ищем лёгких путей)))

Maksim
09.08.2018
12:35:30
с одной стороны нет ведь в стандартных пакетах, а с другой можно рядом с плейбуком в library положить

Sergey
09.08.2018
13:04:15
А для чего этот рандек нужен? А то что-то я от жизни отстал, видимо...
Удобная запускалка, знакома с частью внутренностей ансибла.

cent
09.08.2018
13:05:40
Ilya
09.08.2018
13:20:53
Подскажите, как правильно сделать условие, чтобы подставляло только тогда, когда значение есть. Что-то типа такого: shell: "find /home/user -mindepth 1 -type d {% if item != "" %}-name {{ item }}{% endif %} -execdir echo {} ';'"

bebebe
09.08.2018
13:25:58
Удобная запускалка, знакома с частью внутренностей ансибла.
Я бы уточнил что она идеальна если нужно передать управление плейбуки службе поддержки

Google
bebebe
09.08.2018
13:26:40
Они полтора года чинили ишую с параллельными джобами

cent
09.08.2018
13:37:47
Подскажите, как правильно сделать условие, чтобы подставляло только тогда, когда значение есть. Что-то типа такого: 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
09.08.2018
13:40:46
Так и не работает

Я в дефолтах задаю пустой список просто, по сути должен отрабатывать, но нет

Sergey
09.08.2018
13:45:28
А какой практический юзкейс?
Разработчик, желающий только жать кнопки "выбрать окружение", "выбрать версию", "задплоить".

cent
09.08.2018
13:48:19
Разработчик, желающий только жать кнопки "выбрать окружение", "выбрать версию", "задплоить".
Все равно не понял в чем профит?) Оно же консольное. Можно хоть к jenkins, хоть к system() php'ному прикрутить и дергать когда вздумается. Но ладно) Проехали

Ilya
09.08.2018
13:49:06
А скипает потому что: "skipped_reason": "No items in the list"

Ilya
09.08.2018
13:50:07
Есть такое) Думал просто в ошибку будет сливаться

cent
09.08.2018
13:50:57
Есть такое) Думал просто в ошибку будет сливаться
Ну, поведение адекватное. Как и любой другой цикл в любом ЯП.

Ilya
09.08.2018
13:52:17
Тогда получается, чтбы разрулить такое вот условие, мне придется делать две разные таски(( Просто думал, по красивому можно разрулить

cent
09.08.2018
13:54:15
Тогда получается, чтбы разрулить такое вот условие, мне придется делать две разные таски(( Просто думал, по красивому можно разрулить
Можно и в одну таску. Но так лучше не делать. Потом поддерживать сложнее. Да и рефакторить тоже

Ilya
09.08.2018
13:54:58
Ризонный вопрос тогда - как? Это все почти личное использование, поэтому можно помудрить

cent
09.08.2018
13:59:03
Ризонный вопрос тогда - как? Это все почти личное использование, поэтому можно помудрить
Ну, сам подход неверный. Если даже и для себя, или просто в стол. То все равно приходит время, когда нужно будет сделать что-то подобное. Потом берешь просто и копипастишь. А то, что сильно усложнено, невозможно просто взять и заюзать где-то еще Я уже не говорю о тому, что find - это явно не ansible way))) На 90% уверен, что можно заменить на with_fileglob

Ilya
09.08.2018
14:09:55
Ага)

Constantin
09.08.2018
14:40:52
Cтранный вопрос. Есть возможность пометить переменную в списке как-то, чтобы она в логах не палилась при выполнении таска с with_items?

Google
Constantin
09.08.2018
14:46:14
Я хочу получить токен от пользователя плэйбука через prompt с private: yes, потом он ставится в элементы списка, потом этот список итерируется через with_items, аnsbile выплевывает в лог все что есть в списке with_items, я хочу чтобы не выплевывал

Constantin
09.08.2018
14:49:30
prompt - не идемпотентно же) Логические ошибки сложнее всего костылить. Я уже не говорю о том, что при вводе человек может ошибиться
А можете подсказать, что лучше тогда сделать, чтобы пользователь плэйбука мог свой токен вкидывать?

cent
09.08.2018
14:53:28
А можете подсказать, что лучше тогда сделать, чтобы пользователь плэйбука мог свой токен вкидывать?
Ложить все в секреты. ansible-vault. И ключ секретов генерить через локальный плейбук, если его нет, в хомяк или в папку проекта под .gitignore Только так тоже может быть ошибка ввода от пользователя. Но это только один раз происходит.

Constantin
09.08.2018
14:54:54
Я думал о vault, но не уверен, что токен вычистится из лога wth_items. Сейчас попробую

Constantin
09.08.2018
15:00:02
Я думал о vault, но не уверен, что токен вычистится из лога wth_items. Сейчас попробую
В общем все равно токены из него выводятся при выполнении с with_items =(

Admin
ERROR: S client not available

Constantin
09.08.2018
15:02:37
Куда выводятся?
В лог выполнения плэйбука, решил через loop_control.label

cent
09.08.2018
15:05:46
В лог выполнения плэйбука, решил через loop_control.label
Ну, если намеренно не выводить, то и не выводятся. Один хрен, это же только хозяин vault-pass может дернуть плейбук. Т.о. если не писать shell: echo {{ mysecret }} >/to_backdoor_file То все гут

Constantin
09.08.2018
15:09:34
Ну, если намеренно не выводить, то и не выводятся. Один хрен, это же только хозяин vault-pass может дернуть плейбук. Т.о. если не писать shell: echo {{ mysecret }} >/to_backdoor_file То все гут
Да всякое бывает, не знаю, может у него там скринридер, или запись экрана будет вестись, лучше не выводить в консоль лишнего loop_control: label: 'Ok' Вот примерно так убрал

Constantin
09.08.2018
15:15:30
Constantin
09.08.2018
15:21:49
Проблема: если использовать loop или with_items в таске, то в лог выводится содержимое каждого item. В item лежат чувствительные данные, которые не хочется палить в консоль или лог-файл. Как решение, которое я нашел: добавить к таску loop_control.label: 'Ok' — в таком случае, вместо содержимого item Ansible выплюнет в лог Ok, для каждого элемента списка + сервера в группе

Terminator
09.08.2018
15:22:19
@quantopirotroid будет жить. Поприветствуем!

Constantin
09.08.2018
16:10:30
no_log не подойдет?
Я не пробовал, если честно, уже решил проблему

Google
Boris
09.08.2018
16:37:50
Ребят, подскажите. Можно ли как-то заново зарегистрировать(перечитать) переменные из host_vars , если имя хоста определется модулем 'register' и совпадает с именем хоста в host_vars ?

Т.е в плейбуке, к примеру я регистрирую имена хотов так - name: "Get inventory name by cron name" local_action: 'command ls /tmp/hosts' register: dst_hosts

dst_host у меня зарегался как myserver.com

в host_vars есть такой сервер со всеми нужными переменными, как-то могу их использовать?

cent
09.08.2018
17:27:19
Ребят, подскажите. Можно ли как-то заново зарегистрировать(перечитать) переменные из host_vars , если имя хоста определется модулем 'register' и совпадает с именем хоста в host_vars ?
Можно.) Но советую остановиться, потому что уже попахивает жуткими костылями и великами. Лучше все сделать так, чтобы было понятно из конфигов, а не мутной подгрузкой переменных внутри плейбука

Nikita
10.08.2018
04:55:51
Всем привет, подскажите пожалуйста, если я хочу использовать callback, то мне надо скопировать его допустим в ~/.ansible/plugins/callback?

Fedor
10.08.2018
05:24:33
You can activate a custom callback by either dropping it into a callback_plugins directory adjacent to your play, inside a role, or by putting it in one of the callback directory sources configured in ansible.cfg.

https://docs.ansible.com/ansible/2.6/plugins/callback.html

Nikita
10.08.2018
06:07:11
https://docs.ansible.com/ansible/2.6/plugins/callback.html
Ага, читал. Странно, что callback входит в пакет ansible, но чтобы его вызвать нужно его копировать себе

Maksim
10.08.2018
06:08:03
а что это такое вообще за колбэки ?

Nikita
10.08.2018
06:09:37
а что это такое вообще за колбэки ?
Точно определение не дам, но я использовал callback foreman, чтобы при запуске плейбуков или команд он все факты о хосте писал в foreman

Maksim
10.08.2018
06:10:03
это типа сборка фактов ?

Nikita
10.08.2018
06:10:06
Мне просто надо в foreman добавить инфу о паре сотен виртуалок, чтобы он после этого стал inventory для ansible

это типа сборка фактов ?
Нет. Это больше модули, которые управляют данными, которые возвращает ansible

Banschikov
10.08.2018
06:12:10
это типа сборка фактов ?
Мне кажется что это передача данных в другой какой-то сервис, чтобы он мог работать с ними. мое предположение)

Nikita
10.08.2018
06:12:29
Callback plugins enable adding new behaviors to Ansible when responding to events. By default, callback plugins control most of the output you see when running the command line programs, but can also be used to add additional output, integrate with other tools and marshall the events to a storage backend.

Собственно из доки

Banschikov
10.08.2018
06:14:09
Собственно из доки
Не совсем понятно. Тебе получается с помощью ansible нужно собирать данные о нодах и передавать их в foreman

Страница 542 из 625