George
т.е. ты ансиблом сам локалхост настраиваешь? я бы предложил тебе сходить по ссш, а потом создать новый коннекшен (когда будет новый bashrc), но не получится....
Alex
ансиблом я лезу на сервак который развернул ваграндом
George
Как дичайший вариант - в ансибле в шелле вызывать башник или ансибл второй )))
George
а вот как
George
ша
Alex
это все не на локалхосте
Alex
в качестве проверки могу так написать
Alex
- name: add export path become: true shell: "{{ item }}" with_items: - echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc - echo 'eval "$(rbenv init -)"' >> ~/.bashrc - echo 'export PATH="$HOME/.rbenv/src:$PATH"' >> ~/.bashrc - name: restart the terminal become: true shell: source ~/.bashrc args: executable: /bin/bash - name: install rbenv become: true command: echo $PATH > ~/123.txt
George
короче
George
https://groups.google.com/forum/#!topic/ansible-project/a8WRp5v3hXU
Alex
в файле 123.txt должны быть экспорты
George
тебе нужно что-то такое
George
1. делаешь магию с башрц 2. грохаешь ссш сессию (ну, или ребутни сервак - чего его жалеть) 3. жди новой ссш сессии 4. применяй таски дальше
Alex
я думал какой либо ответ будет в ансибл-гелекси - там есть установка руби
George
ну, там оно из коробки ставится, без этого гемора, и без ухерачивания текущих башрц
George
я так понял, что он умеет подождать и с того же места продолжиться
George
без повторного запуска
George
https://serverfault.com/questions/747604/how-can-i-have-ansible-restart-the-ssh-session-after-installing-nvm
George
вот такой же кейс
Timur
Потому что сессии принципиально разные
Alex
Это немного бессмысленная затея
ну да - если бы не перезагрузка сервака
Timur
Перезагрузить сервак из ансибла можно
Timur
А сессию баша - нет
Timur
Точнее, можно, но бессмысленно
Timur
Потому что сессии разные
Alex
Точнее, можно, но бессмысленно
то есть энсибл не как не может работать с экспортами?
George
кстати, become может так влиять?
Oleg
>> ~/.bashrc лучше заменить на lineinfile
George
он вообще у какого юзера в результате отрабатывает?
Timur
то есть энсибл не как не может работать с экспортами?
В смысле обеспечивать их работу в баше - нет
Timur
Ансибл - не баш
George
под рутом все делаю
а зачем тогда become?
Pit
Ансибл - не баш
ваша честь, протестую!
Timur
А переменные окружения в своей сессии ансибл устанавливать вполне может
Alex
а зачем тогда become?
ну это да согласен не обязательно
Pit
аргументы?
«ансибл - это баш на стероидах» (с) не помню кто на конфе
Pit
)
George
КГ/АМ
поддержу
George
👍
Pit
КГ/АМ
согласен. но звучит - смешно
Timur
Самое печальное, что многие после такого как раз и воспринимают ансибл как более продвинутый баш с удобным удаленным запуском
kevit
и у тебя один питон в который наливаются модули
Timur
И лепят плейбуки, состоящие из баша, чуть менее чем полностью
Pit
не могу пруфов нарыть. вроде на слерме было
Timur
А потом задают вопросы - как им перезапустить баш из ансибла
Timur
А то не работает что-то
Timur
ну задаем - и что с этого
С того, что это демонстрирует тотальное непонимание назначения ансибла
Alex
С того, что это демонстрирует тотальное непонимание назначения ансибла
это группа и создана что бы это понимание приходило вообще то
kevit
кейс с bashrc очень просто проверить через command: env до и после)
Timur
это группа и создана что бы это понимание приходило вообще то
Какую задачу ты пытаешься решить изначально?
Timur
Вне контекста баша
George
Какую задачу ты пытаешься решить изначально?
я это и пытался уточнить - написано же - установка руби
George
окружений
George
через rvm
George
который пячит bashrc
Timur
И при чем тут баш вообще?
Alex
вот
Alex
git clone https://github.com/rbenv/rbenv.git ~/.rbenv cd ~/.rbenv && mkdir -p ~/.rbenv/plugins git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build git clone https://github.com/rbenv/rbenv-vars.git ~/.rbenv/plugins/rbenv-vars echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc rbenv install -y 2.4.1
George
https://t.me/pro_ansible/90155
Max
И при чем тут баш вообще?
чтобы оно работало, нужен особый PATH
Max
и еще несколько переменных
Alex
просто руби поставить
kevit
скорее надо почитать https://github.com/rvm/rvm1-ansible