Установите переменную окружения, используя соляную тушку
Я пишу несколько формул сокета, которые будут устанавливать пакет tomcat. но после установки я должен установить JAVA_HOME в файле /etc/default/tomcat 7. Есть ли возможность установить JAVA_HOME? Или есть ли возможность изменить или добавить JAVA_HOME в переменную окружения (т.е. В файлы .bashrc или .profile)?
Мой файл pillar.example будет иметь следующие данные:
tomcat_version: 7
java_home: '/usr/lib/jvm/java-7-oracle'
Ответы
Ответ 1
В качестве альтернативы настройке .bashrc или .profile вы можете просто установить значение JAVA_HOME прямо в /etc/default/tomcat 7:
tomcat_configuration:
file.append:
- name: /etc/default/tomcat7
- text: export JAVA_HOME={{ pillar['java_home'] }}
Если по какой-либо причине file.append
не подходит, соль предлагает file.replace и (новый в 0.18.0) file.blockreplace.
Ответ 2
Зависит от области действия переменной среды:
Если это для одного пользователя, то экспорт в локальный .bash_profile пользователя будет работать, например.
JAVA_HOME:
# File.append searches the file for your text before it appends so it won't append multiple times
file.append:
- name: /root/.bash_profile
- text: export JAVA_HOME={{ pillar['java_home'] }}
Вам, вероятно, потребуется выйти из системы для этого пользователя, прежде чем использовать эту переменную.
С другой стороны, если вы хотите экспортировать эту переменную глобально. Вероятно, вы захотите использовать /etc/profile.d
JAVA_HOME:
file.append:
- name: /etc/profile.d/myglobalenvvariables.sh
- text: export JAVA_HOME={{ pillar['java_home'] }}
Хотя я бы рекомендовал использовать file.managed при создании нового script. Вы, конечно, все равно должны регистрировать всех своих пользователей, чтобы переменные распространялись.