@pro_ansible

Страница 440 из 625
Maksim
13.04.2018
09:18:18
не понял

Ievgen
13.04.2018
09:20:51
тут есть что то похожее

https://serverfault.com/questions/734560/ansible-become-user-not-picking-up-path-correctly

Google
Salem
13.04.2018
09:21:19
оно не дает шелл в точности как у юзера

Maksim
13.04.2018
09:24:45
если целяешься под рутом, то можешь в блоке сделать become_method: su и в начала блока что-то вроде shell: source ~/.bashrc

Ievgen
13.04.2018
09:27:45
если целяешься под рутом, то можешь в блоке сделать become_method: su и в начала блока что-то вроде shell: source ~/.bashrc
а этот source не закончится случайно там же где и начался? на уровне таска shell?

Maksim
13.04.2018
09:28:12
если всё засунешь в block то нет

Ievgen
13.04.2018
09:29:25
я так не извращаюсь, но good to know

Maksim
13.04.2018
09:30:55
почему же ? мне надо выполнить определенные действия под непривилигированным юзером, пихаю в block и вуаля, но, мы допустим в блок можем запихать определенные дествия и запускать только при условии что when:....

я вот такое сделал become: true become_method: sudo become_user: root when: ('"nothing added to commit but untracked files present" not in git_api_commit.stdout' and '"nothing added to commit but untracked files present" not in git_api_commit.stdout')

Ievgen
13.04.2018
09:33:10
я не про блок, а про переменные, блок офигенен

@mamyrkhanov а как ты вызываешь rbenv можно таск глянуть?

просто есть очевидные решения типа сделать source что то прямо в таске вызова rbenv или запустить через например bash -c

Aleksei
13.04.2018
09:45:29
А есть в ансибле что-то встроенное для того чтобы обеспечить dual control на запуск тасков?(типа я хочу запустить, но кто-то еще должен подтвердить этот запуск)

Adil
13.04.2018
09:45:40
@mamyrkhanov а как ты вызываешь rbenv можно таск глянуть?
command: rbenv install 2.0.0 Делал с добавлением become: true и с become_user: user1 и без них , во всех 4ех вариациях. В .bashrc и .profile удалял non interactive команду пропуска

Думал сделать как обычно это делается, без указания точных путей

Google
Adil
13.04.2018
10:01:52
fatal: [35.196.209.175]: FAILED! => {"changed": true, "cmd": ["rbenv", "install", "2.0.0"], "delta": "0:00:00.017395", "end": "2018-04-13 10:01:30.504790", "msg": "non-zero return code", "rc": 1, "start": "2018-04-13 10:01:30.487395", "stderr": "rbenv: /home/user1/.rbenv/versions/2.0.0 already exists", "stderr_lines": ["rbenv: /home/user1/.rbenv/versions/2.0.0 already exists"], "stdout": "", "stdout_lines": []}

Ievgen
13.04.2018
10:04:57
А ставишь для какого юзера?

Ievgen
13.04.2018
10:05:24
Да для какого?

Для user1 если, то в ошибке говорится что версия 2.0.0 уже стоит

Или я чего то не понимаю

Nklya
13.04.2018
10:07:05
А еще можно подойти с другой стороны и подумать а зачем вся эта хрень с rbenv вообще делается?

Adil
13.04.2018
10:09:35
вот ответ от всех вариации

PATH

- name: check check shell: rbenv install 2.3.3

fatal: [35.196.209.175]: FAILED! => {"changed": true, "cmd": "rbenv install 2.3.3", "delta": "0:00:00.002273", "end": "2018-04-13 10:12:49.139387", "msg": "non-zero return code", "rc": 127, "start": "2018-04-13 10:12:49.137114", "stderr": "/bin/sh: 1: rbenv: not found", "stderr_lines": ["/bin/sh: 1: rbenv: not found"], "stdout": "", "stdout_lines": []}

rbenv: not found потому что он не возвращает PATH от необходимого юзера, хотя все для этого делается

А еще можно подойти с другой стороны и подумать а зачем вся эта хрень с rbenv вообще делается?
чтобы можно было управлять версиями руби, например когда у тебя несколько проектов требующих разные версии руби

Nklya
13.04.2018
10:16:50
докер, не?

Ievgen
13.04.2018
10:17:30
а тыцни ка в command или shell bash -c "echo $PATH"

Adil
13.04.2018
10:18:27
Для user1 если, то в ошибке говорится что версия 2.0.0 уже стоит
она стоит потому что я установил еще на user0, т.е тот кто изначально сделал подключение

Google
Ievgen
13.04.2018
10:19:17
вообще то "stderr": "rbenv: /home/____user1___/.rbenv/versions/2.0.0 already exists",

так и должно быть?

user1

докер, не?
человеку надо rbenv поставить просто, а ты ему докер сразу

жесток

Adil
13.04.2018
10:23:17
так и должно быть?
сори. я тут подставил. На самом деле там user0

Nklya
13.04.2018
10:24:40
человеку надо rbenv поставить просто, а ты ему докер сразу
2018 год на дворе. докер как раз и нужен, чтобы вот такими приседаниями не заниматься

Ievgen
13.04.2018
10:27:09
да хоть 2049, если докера нет по каким то причинам, то это не повод для решения простой задачи вписывающейся в существующую инфраструктуру внезапно его впиливать

обмажутся докерами...

Adil
13.04.2018
10:28:05
докер не вариант

Ievgen
13.04.2018
10:28:10
хотя на самом деле это так же не повод не задуматься о возможности применения )

а PATH нужный где живет?

Ievgen
13.04.2018
10:31:08
что сказал bash -c "echo $PATH" под нужным юзером?

ну и короче можно либо засоурсить нужный файл с PATH или сделать типа так command: zsh -lc "{{home_dir}}.rbenv/bin/rbenv install {{ ruby_version }}" попалось на глаза

естественно вместо zsh то что тебе хочется

Adil
13.04.2018
10:36:46
а PATH нужный где живет?
нужный PATH живет в user1

Ievgen
13.04.2018
10:38:21
user1 где? .bashrc? .bash_profile?

но не суть, ~/.rbenv/bin/rbenv есть всегда?

вызови так и не мучайся "{{home_dir}}.rbenv/bin/rbenv install {{ ruby_version }}"

Anton
13.04.2018
10:39:57
можете пояснить смысл опции async? асинхронное выполнение. запускаю, что с ней, что без неё. не вижу разницы

Google
Ievgen
13.04.2018
10:40:17
не ждет от таска ответа сразу

если мне памятъ не изменят

Anton
13.04.2018
10:40:39
ну это я прочитал, а что это значит?

Ievgen
13.04.2018
10:40:59
запускает и идет дальше

Anton
13.04.2018
10:41:12
а обычно не идёт ?

Adil
13.04.2018
10:41:17
но не суть, ~/.rbenv/bin/rbenv есть всегда?
я удалил с user0, теперь он выдает rbenv: not found

Anton
13.04.2018
10:41:22
там же таски и так парарелно запускаются

Admin
ERROR: S client not available

Ievgen
13.04.2018
10:41:22
а потом ты можешь опросить результат, если таск долгий

паралельно в рамаках группы хостов, но последовательно на каждом

Maksim
13.04.2018
10:42:11
так

ванговать не умеем

Adil
13.04.2018
10:42:27
делаю все это дело на google vm серварах

Anton
13.04.2018
10:42:27
паралельно в рамаках группы хостов, но последовательно на каждом
всмысле? следующий таск что ли выполнять пойдёт ?

на хосте и так один таск

Ievgen
13.04.2018
10:42:57
one-by-one

Anton
13.04.2018
10:43:14
что это значит, не могу суть уловить

Ievgen
13.04.2018
10:43:23
а async позволяет запустить оne не ожидая результата запустить two

а потом проверить результат one

иначе one начался, закончился, начался two

Google
Anton
13.04.2018
10:43:58
вот есть у меня 10 хостов и я создаю один таск, что будет с async и без ?

Ievgen
13.04.2018
10:44:20
забей на 10

у тебя есть 1 хост

таски выполняются последовательно

без async

выполняется таск, регистрируется результат

потом следующий

10 хостов 1 таск паралельно на 10ти хостах, потом 2 паралельно на 10ти

Anton
13.04.2018
10:47:15
ну кароч асинхронное выполнения тасков в пределах хоста, ясно.

Ievgen
13.04.2018
10:47:18
да

Anton
13.04.2018
10:47:38
спасибо

Ievgen
13.04.2018
10:47:45
есть еще strategy free

но могут быть нюансы

async штука хорошая на самом деле

Anton
13.04.2018
10:49:28
мне надо было долгий таск запустить и дождаться пока он выполнится, без переходов на следующией

я понял что async мне нафиг не нужен )

Ievgen
13.04.2018
10:49:45
ага, не нужен

Anton
13.04.2018
10:49:51
там просто что то про ссш таймауты было, это и смутило

Ievgen
13.04.2018
10:49:58
а вот strategy free

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