我使用名爲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