Как уже говорилось, ключевое слово environment
можно использовать только на уровне задач или игровой книги.
Вы сможете использовать стандартную книгу, просто добавив следующее:
---
- name: Environment
hosts: localhost
connection: local
gather_facts: False
tasks:
- name: Setup
setup:
gather_subset:
- "!all"
или
---
- name: Environment
hosts: localhost
connection: local
gather_facts: True
gather_subset:
- "!all"
Если вы отлаживаете переменную:
---
- name: Environment
hosts: localhost
connection: local
gather_facts: False
tasks:
- name: Setup
setup:
gather_subset:
- "!all"
- name: Debug
debug:
var: ansible_env.PATH
Вы получите что-то вроде:
TASK [Setup] *******************************************************************************************************************************************************
ok: [localhost]
TASK [Debug] *******************************************************************************************************************************************************
ok: [localhost] => {
"ansible_env.PATH": "/Users/imjoseangel/source/venv/ansible/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
}
А что, если вы хотите передать эту переменную в другую игру с другим инвентарем?
Просто сделай hostvars.localhost.ansible_env.PATH
- name: Environment2
hosts: windows
connection: local
gather_facts: False
tasks:
- name: Debug
debug:
var: hostvars.localhost.ansible_env.PATH
Итак,
environment:
PATH: "{{ ansible_env.PATH }}:/sbin:/usr/sbin"
Будет действителен только с набором наборов или модулем настройки в пределах указанного инвентаря, но вам не нужно разделять игровые книги.