Я нахожусь в процессе разработки десятков кроссплатформенных совместимых ролей Ansible, и некоторые из этих ролей должны знать о домашнем каталоге удаленного пользователя.
Прямо сейчас я использую предварительноЗадача найти домашний каталог удаленного пользователя и установить факт, содержащий этот каталог, чтобы его можно было использовать в разных ролях.
Есть ли лучший способ сделать это? Должен ли я написать роль, которая вместо этого устанавливает факт?
ansible/windows_development.yml
:
---
- hosts: all
pre_tasks:
- name: lookup home directory via $HOME (Windows)
win_shell: echo $HOME
register: home
become: no
when: ansible_os_family == 'Windows'
- set_fact:
home: "{{ home.stdout | trim }}"
roles:
- debug
- common
- development
- pycharm
- sublime-text
become: yes
become_user: Administrator
become_method: runas
ansible/roles/debug/tasks/main.yml
:
---
- debug:
msg: "{{ home }}"
Вывод:
...
TASK [debug : debug] ***********************************************************
Thursday 10 October 2019 14:46:46 -0400 (0:00:00.033) 0:00:04.516 ******
ok: [default] => {
"msg": "C:\\Users\\vagrant"
}
...