Переменные окружения для инструкций

Можно также задать окружение для однй инструкции, используя параметр environment для конкретной инструкции. Предположим, что необходимо установить HTTP-прокси для определенного файла:

- name: Download a file, using example-proxy as a proxy.
  get_url: url=http://www.example.com/file.tar.gz dest=~/Downloads/
  environment:
    http_proxy: http://example-proxy:80/

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

vars:
  var_proxy:
    http_proxy: http://example-proxy:80/
    https_proxy: https://example-proxy:443/
    [etc...]

tasks:
  - name: Download a file, using example-proxy as a proxy.
    get_url: url=http://www.example.com/file.tar.gz dest=~/Downloads/
    environment: var_proxy

Если прокси-сервер должен быть установлен на уровне системы, то следует использовать глобальный файл /etc/environment:

# In the 'vars' section of the playbook (set to 'absent' to disable proxy):
  proxy_state: present

# In the 'tasks' section of the playbook:
- name: Configure the proxy.
  lineinfile:
    dest: /etc/environment
    regexp: "{{ item.regexp }}"
    line: "{{ item.line }}"
    state: "{{ proxy_state }}"
  with_items:
    - { regexp: "^http_proxy=", line: "http_proxy=http://example-proxy:80/" }
    - { regexp: "^https_proxy=", line: "https_proxy=https://example-proxy:443/" }
    - { regexp: "^ftp_proxy=", line: "ftp_proxy=http://example-proxy:80/" }

Это позволяет включить или выключить прокси сервер (с помощью переменной proxy_state), и с помощью одной инструкции установить прокси HTTP, HTTPS и FTP. Можно использовать аналогичный вид инструкции для любых других типов переменных окружения, которые необходимо задать для всей системы.

results matching ""

    No results matching ""