在Ansible Playbook中为远程用户的主目录执行查找

时间:2019-10-10 19:07:42

标签: ansible

我正在开发数十个跨平台兼容的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"
}
...

0 个答案:

没有答案