Установите переменные среды в экземпляре AWS - PullRequest
0 голосов
/ 03 июня 2018

Я создаю AMI в EC2 с terraform с этим ресурсом:

resource "aws_instance" "devops-demo" {
  ami           = "jnkdjsndjsnfsdj"
  instance_type = "t2.micro"
  key_name      = "demo-devops"
  user_data     = "${file("ops_setup.sh")}"
}

Пользовательские данные выполняют сценарий оболочки , который устанавливает Java JRE:

  sudo yum remove java-1.7.0-openjdk -y
  sudo wget -O /opt/server-jre-8u172-linux-x64.tar.gz --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/server-jre-8u172-linux-x64.tar.gz"
  sudo tar xzf /opt/server-jre-8u172-linux-x64.tar.gz
  export JAVA_HOME=/jdk1.8.0_172
  export JRE_HOME=/jdk1.8.0_171/jre
  export PATH=$JAVA_HOME/bin:$PATH

Но ни одна из переменных среды не работает.Однако, если я подключаюсь по ssh к экземпляру и выполняю команду экспорта, все работает нормально.

Есть ли способ определить переменные среды с помощью terraform?

1 Ответ

0 голосов
/ 03 июня 2018

Использование команды export устанавливает только те переменные для текущей оболочки и всех процессов, которые запускаются из этой оболочки.Это не постоянная настройка.Все, что вы хотите сделать постоянным, должно быть установлено в /etc/environment.

Например, в userdata:

echo "JAVA_HOME=/jdk1.8.0_172" >> /etc/environment

Это добавит строку JAVA_HOME=/jdk1.8.0_172 в этот файл.Обратите внимание, что вы не должны использовать export внутри этого файла.

Переменная PATH, вероятно, уже определена в файле /etc/environment, и вам нужно будет перезаписать ее соответствующим образом, если вы собираетесь добавить дополнительныепути к нему.

В этом ответе .

есть очень много подробностей о настройке переменных среды.
...