我使用名为homesick
的gem来自动将我的点文件符号链接到我的主目录,并将其用作启动我的开发环境的完美手册的一部分。我有以下任务来使用思乡宝石和命令模块来克隆点文件。在ansible playbook中添加sudo_user使命令永久使用
- 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
这工作得很好。很简单 - 思乡宝石有一个叫做克隆的子命令,它克隆了github的dotfile回购。我花了一点时间才弄清楚的是,我需要sudo_user
,因为否则它将使用root用户和root用户的主目录(/ root),并且dotfiles将在那里被克隆 - 而不是我想要的。使用sudo_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