Переменные окружения

Ansible позволяет работать с переменными окружения различными способами. Во-первых, если вам необходимо создать переменную окружения для удаленной учетной записи, это можно сделать, добавив строку в файл .bash_profile, например:

- name: Add an environment variable to the remote user's shell.
  lineinfile: dest=~/.bash_profile regexp=^ENV_VAR= line=ENV_VAR=value

После этого все задачи получат доступ к этим переменным окружения. Чтобы использовать переменную окружения в последующих задачах, рекомендуется использовать параметр задачи register для хранения переменной окружения в переменной Ansible:

- name: Add an environment variable to the remote user's shell.
  lineinfile: dest=~/.bash_profile regexp=^ENV_VAR= line=ENV_VAR=value

- name: Get the value of the environment variable we just added.
  shell: 'source ~/.bash_profile && echo $ENV_VAR'
  register: foo

- name: Print the value of the environment variable.
  debug: msg="The variable is {{ foo.stdout }}"

Мы используем источник ∼ /.bash_profile в строке 4, потому что Ansible необходимо убедиться, что он использует последнюю конфигурацию среды для удаленного пользователя. В некоторых случаях задачи выполняются по SSH сессии, в которой $ENV_VAR еще не определен.

Linux также будет читать глобальные переменные окружения, добавленные в /etc/environment, поэтому в них тоже можно добавить переменную:

- name: Add a global environment variable.
  lineinfile: dest=/etc/environment regexp=^ENV_VAR= line=ENV_VAR=value
  sudo: yes

В любом случае, довольно просто управлять переменными окружения на сервере с помощью lineinfile. Если для приложения требуется много переменных окружения, можно использовать copy или template с локальным файлом вместо использования lineinfile с большим списком элементов.

results matching ""

    No results matching ""