Timur
И PATH, и переменные окружения легко задаются ансиблом без всякого баша
Max
я бы рекомендовал использовать env
George
- 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
George
вот этот фрагмент дичайший
George
и непонятно корректно ли он отрабатывает
Alex
Max
George
@tgadiev Ваши предложения?
George
я не вижу ничего плохого в редактировании .bashrc в отрыве от контекста установки руби - ну, подготавливает человек среду, чтобы потом по ссш на сервер ходить и иметь готовый PATH
Timur
Alex
последняя команда не нужна - это так просто для эксперимента
Alex
- echo 'export PATH="$HOME/.rbenv/src:$PATH"' >> ~/.bashrc
Vladislav 👻
под рутом все делаю
под рутом bashrc а сам через become делаешь небось, отсюда и проблемы
George
Max
@tgadiev Ваши предложения?
можно добавить строку в башрц, которая будет сорсить файлы из известного каталога инит скриптов. либо общего, либо личного.
Alex
Vladislav 👻
Vladislav 👻
окружение же другое, в зависимости от метода повышения привилегей
Timur
Timur
Лучше через профиль или /etc/environment
Alex
еще как
хорошо - но отдельного пользователя я не создавал
Alex
Vladislav 👻
хочешь что-то в таске добавить, смотри у модуля, как добавить переменные среды
Timur
bashrc - не системный файл конфигурации. Не стоит завязывать логику на него
Timur
Типа такого как вариант:
- name: Add another bin dir to system-wide $PATH.
copy:
dest: /etc/profile.d/custom-path.sh
content: 'PATH=$PATH:{{ my_custom_path_var }}'
Timur
А туда можно загнать и экспорт, и энвы, и черта лысого
Vladislav 👻
в плейбуке есть environment
Alex
- name: Add another bin dir to system-wide $PATH.
copy:
dest: /etc/profile.d/custom-path.sh
content: 'PATH=$PATH:$HOME/.rbenv/bin'
- name: Add another bin dir to system-wide $PATH.
copy:
dest: /etc/profile.d/custom-path.sh
content: '$(rbenv init -)'
Alex
так
Timur
George
George
код
George
и это тоже код
Max
Timur
Alex
хорошо - а source ~/.bashrc - в скрипт положить и ансиблом это скрипт дернуть?
Timur
Oleg
использую шаблон (j2), есть часть конфига:
{% for host in node.stdout_lines %}
; Default ; http://{{ host }} ; {% if host.split("-")[5] | regex_replace("^0*") | int == 1 %}true{% else %}false{% endif %}
{% endfor %}
пытаюсь построчно зафигачить, но почему то все в одну строку получается:
; Default ; http://aaa-bbb-ccc-ddd-eee-001 ; true ; Default ; http://aaa-bbb-ccc-ddd-eee-002 ; false
"stdout_lines" выглядет так:
"aaa-bbb-ccc-ddd-eee-001",
"aaa-bbb-ccc-ddd-eee-002"
в идеале должно быть так:
; Default ; http://aaa-bbb-ccc-ddd-eee-001 ; true
; Default ; http://aaa-bbb-ccc-ddd-eee-002 ; false
подскажите плиз где ошибка?
Max
George
George
код
(````код````)
kevit
George
Oleg
использую шаблон (j2), есть часть конфига:
{% for host in node.stdout_lines %}
; Default ; http://{{ host }} ; {% if host.split("-")[5] | regex_replace("^0*") | int == 1 %}true{% else %}false{% endif %}
{% endfor %}пытаюсь построчно зафигачить, но почему то все в одну строку получается:
; Default ; http://aaa-bbb-ccc-ddd-eee-001 ; true ; Default ; http://aaa-bbb-ccc-ddd-eee-002 ; false"stdout_lines" выглядет так:
"aaa-bbb-ccc-ddd-eee-001",
"aaa-bbb-ccc-ddd-eee-002"в идеале должно быть так:
; Default ; http://aaa-bbb-ccc-ddd-eee-001 ; true
; Default ; http://aaa-bbb-ccc-ddd-eee-002 ; falseподскажите плиз где ошибка?
George
спасибо
Oleksandr
может я тупой, но зачем вообще переменные окружения для rvm?
Timur
Timur
Max
Timur
Это плохой фэн-шуй
Max
Это плохой фэн-шуй
непривычный, для ... олдскула. но вполне рабочий. и в некоторых случаях... необходимый
Timur
Впрочем, мы уже оффтопим опять. Ансибл к этому мало относится
Max
угу.
kevit
да не, пытаются написать сложный код на ансибле когда можно написать простой)
Timur
Если речь о том, как ансиблом выставить нужные переменные окружения на уровне системы или пользователя - ответ выше был дан
Max
Timur
kevit
я скидывал пример
kevit
https://github.com/rvm/rvm1-ansible
kevit
там прямо авторами rvm написан ансибл, все их тараканы именно так как они хотят
Oleg
Max
т.е. создать дроп-ин файл слайсу, через ансибл.
Oleksandr
докер с нужной версией руби еще никто не успел предложить?
Timur
Timur
Timur
Суть та же