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
ну, там оно из коробки ставится, без этого гемора, и без ухерачивания текущих башрц
Alex
George
я так понял, что он умеет подождать и с того же места продолжиться
George
без повторного запуска
Timur
George
https://serverfault.com/questions/747604/how-can-i-have-ansible-restart-the-ssh-session-after-installing-nvm
George
вот такой же кейс
Timur
Потому что сессии принципиально разные
Timur
Перезагрузить сервак из ансибла можно
Timur
А сессию баша - нет
Timur
Точнее, можно, но бессмысленно
Timur
Потому что сессии разные
Oleg
George
George
кстати, become может так влиять?
Alex
Oleg
>> ~/.bashrc лучше заменить на lineinfile
George
он вообще у какого юзера в результате отрабатывает?
Alex
Timur
Timur
Ансибл - не баш
Timur
А переменные окружения в своей сессии ансибл устанавливать вполне может
Timur
Alex
.
George
Pit
аргументы?
«ансибл - это баш на стероидах» (с) не помню кто на конфе
Pit
)
Timur
George
George
👍
Pit
КГ/АМ
согласен. но звучит - смешно
George
kevit
Timur
Самое печальное, что многие после такого как раз и воспринимают ансибл как более продвинутый баш с удобным удаленным запуском
kevit
и у тебя один питон в который наливаются модули
Timur
И лепят плейбуки, состоящие из баша, чуть менее чем полностью
Pit
не могу пруфов нарыть. вроде на слерме было
Timur
А потом задают вопросы - как им перезапустить баш из ансибла
Timur
А то не работает что-то
Alex
George
Alex
kevit
кейс с bashrc очень просто проверить через command: env до и после)
George
Timur
Timur
Вне контекста баша
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
и еще несколько переменных
Alex
просто руби поставить
George
kevit
скорее надо почитать https://github.com/rvm/rvm1-ansible