Переменные окружения для инструкций
Можно также задать окружение для однй инструкции, используя параметр 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. Можно использовать аналогичный вид инструкции для любых других типов переменных окружения, которые необходимо задать для всей системы.