Linux 在ansible playbook中添加sudo_用户会使命令花费很长时间

Linux 在ansible playbook中添加sudo_用户会使命令花费很长时间,linux,ubuntu-14.04,ansible,ansible-playbook,Linux,Ubuntu 14.04,Ansible,Ansible Playbook,我正在使用一个名为homesick的gem自动将我的点文件符号链接到我的主目录,并将其作为ansible playbook的一部分来引导我的开发环境。我有以下任务来使用homesick gem和命令模块克隆点文件 - name: Use homesick to clone dotfiles repo command: homesick clone smcabrera/castillo-cabrera sudo_user: "{{ username }}" args: chdi

我正在使用一个名为
homesick
的gem自动将我的点文件符号链接到我的主目录,并将其作为ansible playbook的一部分来引导我的开发环境。我有以下任务来使用homesick gem和命令模块克隆点文件

- name: Use homesick to clone dotfiles repo
  command: homesick clone smcabrera/castillo-cabrera
  sudo_user: "{{ username }}"
  args:
    chdir: /home/{{ username }}
    creates: /home/{{ username }}/.homesick/repos/castillo-cabrera
这个很好用。非常简单——homesick gem有一个名为clone的子命令,它从github克隆一个点文件repo。我花了一点时间才弄明白,我需要
sudo_user
,因为否则它将使用根用户和根用户的主目录(/root),并且点文件将被克隆到那里——这不是我想要的。使用
sudo\u user
可以解决此问题

但是我尝试做同样的事情来进行符号链接,但它不起作用。见下文:

- name: Use homesick to symlink dotfiles to home directory
  command: homesick symlink castillo-cabrera
  sudo_user: {{ username }}
  args:
    chdir: /home/{{ username }}
    creates: /home/{{ username }}/.zshrc
很难知道出了什么问题,因为它甚至没有完成并失败,所以我可以看到错误消息——它只是挂了半个小时,然后我决定去尝试其他东西。可能这只是一个需要很长时间的过程——除了如果我在没有
sudo_user
的情况下运行同一个任务,它根本不需要时间,我会收到一条消息

- name: Use homesick to symlink dotfiles to home directory
  command: homesick symlink castillo-cabrera
  args:
    chdir: /home/{{ username }}
    creates: /home/{{ username }}/.zshrc

changed: [localhost] => {"changed": true, "cmd": ["homesick", "symlink", "castillo-cabrera"], "delta": "0:00:00.623685", "end": "2015-04-20 16:40:29.100744", "item": "", "rc": 0, "start": "2015-04-20 16:40:28.477059", "stderr": "", "stdout": "   identical  /root/.oh-my-zsh-custom\n   identical  /root/.irbrc\n
…(等等)

知道这里会发生什么吗

编辑:这是我为剧本运行的命令:

sudo ansible-playbook -s playbook.yml -i inventory -v

尝试使用
sudo
执行某些操作通常需要密码,因此Ansible可能会在密码提示处卡住,认为还会有更多操作,而没有意识到它必须输入某些内容。有两种方法可以告诉Ansible使用什么密码进行
sudo

  • 使用
    -K
    -ask sudo pass
    选项运行
    ansible playbook
    ,以便提示您输入密码
  • 将密码添加到主机名之后,将其存储在清单文件中,如下所示:

    server.example.com ansible_sudo_pass=hunter2