remote1使用remote2的事实

时间:2019-02-21 09:53:49

标签: ansible ansible-facts

我似乎错过了ansible的一些基本概念,无法正确理解。

我的主人:

[win10]
dev1
mep1

我的角色的任务是在桌面上创建链接,为此,我需要知道用户名,最好还需要用户配置文件的路径。

我尝试的任务版本:

- name: create desktop shortcut
  win_shortcut:
    src: "{{ ansible_env.ProgramFiles }}\\chrome\\chrome.exe"
    args: "--dev"
    dest: "C:\\Users\\{{ ansible_user }}\\Desktop\\chrome.lnk"
    state: present
- name: create desktop shortcut
  win_shortcut:
    src: "{{ ansible_env.ProgramFiles }}\\chrome\\chrome.exe"
    args: "--dev"
    dest: "{{ setup.ansible_facts.ansible_user_dir }}\\Desktop\\chrome.lnk"

当我担任角色时,变量代表“ dev1”远程变量,并且始终在“ mep1”远程失败,因为用户名不同。 另外,收集事实要进行两次,所以我相信我在一个荒谬的概念上会失败。

PLAY [win10] *******************************************************************

TASK [Gathering Facts] *********************************************************
ok: [dev1]
ok: [mep1]

PLAY [win10] *******************************************************************

TASK [Gathering Facts] *********************************************************
ok: [dev1]
ok: [mep1]

TASK [install_chrome : create desktop shortcut] **************************
fatal: [dev1]: FAILED! => {"args": "--dev", "changed": true, "description": "", "dest": "C:\\Users\\tom\\Desktop\\chrome.lnk", "directory": "", "hotkey": "", "icon": ",0", "msg": "Failed to create shortcut 'C:\\Users\\tom\\Desktop\\chrome.lnk'. (Unable to save shortcut \"C:\\Users\\tom\\Desktop\\chrome.lnk\".)", "src": "C:\\Program Files\\chrome\\chrome.exe", "state": "present", "windowstyle": "normal"}
ok: [mep1]

请按正确的方向推动我。

2 个答案:

答案 0 :(得分:0)

您只想对其中一台主机运行ansible剧本吗?如果是,则可以在与所需主机一起执行剧本时限制库存。 示例:

ansible-playbook playbook.yml --limit dev1

答案 1 :(得分:0)

我对错误输出的理解是,我的游戏使用的是另一台远程主机的事实。就我而言,用户名和用户配置文件位置。 看来我的游戏是正确的。 问题是“桌面”根本不在“ C:\ User \ Username”中,而是在其他地方。

很抱歉遇到这个问题;)