Получить экспортированную переменную среды в ansible - PullRequest
1 голос
/ 20 февраля 2020

У меня есть файл env, который присутствует на целевой машине, и он содержит определенное количество переменных с командой экспорта (сама команда экспорта присутствовала внутри файла).

export AB_HOME=/et/dev/abinitio/abinitio-V3
export PATH=${AB_HOME}/bin:${PATH}

Я выполнил env файл с использованием приведенной ниже книги воспроизведения, и я попытался прочитать переменные, которые экспортируются с использованием output1, который является регистровой переменной в моей книге воспроизведения. Но я могу видеть, что моя переменная регистра пуста. Есть ли способ получить переменные, которые все экспортируются. Я не знаю имени переменных, которые присутствуют внутри файла, поэтому я не могу использовать команду ECHO.

- hosts: dev
  gather_facts: false
  tasks:   
    - name: get the environment variables
      shell: "su <id> & . ./.env"
      args:
        chdir: /path to the file
      register: output1

    - debug: var=output1.stdout_lines 

1 Ответ

0 голосов
/ 20 февраля 2020

стандартный вывод для export не возвращается, поэтому вы не видите никакого вывода. Вместо этого вы можете проверить код rc:

- debug: var=output1.rc

Чтобы ansible распечатать ранее экспортированные переменные, просто запустите export или export -p и напечатайте stdout_lines таким же образом, как и раньше.

tasks:   
    - name: get the environment variables
      shell: "export -p"
      register: output

    - debug: var=output.stdout_lines
...