1
我是Ansible的新手。試圖將一些文件複製到遠程機器上。 我能夠複製到遠程服務器的tmp文件夾,但無法複製到特定的用戶文件夾。Ansible:無法從遠程機器切換用戶
我認爲如果我們可以切換到特定的用戶是可能的。但我無法使用劇本。
請幫我解決這個問題。
問候, KP
我是Ansible的新手。試圖將一些文件複製到遠程機器上。 我能夠複製到遠程服務器的tmp文件夾,但無法複製到特定的用戶文件夾。Ansible:無法從遠程機器切換用戶
我認爲如果我們可以切換到特定的用戶是可能的。但我無法使用劇本。
請幫我解決這個問題。
問候, KP
這是一個權限問題。用於連接到主機的用戶無權寫入其他用戶文件夾。
如果您有權訪問用戶帳戶(例如,您的SSH密鑰被接受),你可以簡單地通過remote_user
定義每個任務的用戶:
- copy: src=...
dest=...
remote_user: <SET_OWNER_HERE>
如果你用不上,你可以使用sudo
標誌來執行具有root
權限的任務。但要確保你正確設置權限或用戶可能無法讀/寫這些文件:
- copy: src=...
dest=...
owner=<SET_OWNER_HERE>
group=<SET_GROUP_HERE>
mode=0644
sudo: yes
此外,您還可以定義作爲與sudo_user
執行sudo命令的用戶名:
- copy: src=...
dest=...
sudo: yes
sudo_user: <SET_OWNER_HERE>
如果sudo
需要您輸入密碼,則必須提供該密碼,否則該任務將永久掛起而不會出現任何錯誤消息。
您可以在全球範圍內ansible.cfg
定義此:
ask_sudo_pass=True
或者當你打電話給你的劇本傳遞選項:
ansible-playbook ... --ask-sudo-pass
謝謝您的答覆。我嘗試了第二種方法,但是遊戲書被卡在文件複製任務中。 – 2015-02-11 09:58:00
這可能意味着任務停留在sudo密碼提示處。如果sudo需要您輸入密碼,您可以配置Ansible在播放過程中向您發問:Global setting:http:在命令行中輸入「pass」。我更新了包含此信息的答案。 – udondan 2015-02-11 10:15:04
--- - hosts:test tasks: - name:Copy Files copy:src =/local_user/test.sh dest =/remote/location/another/user(kp)/ bin/owner = kp group = kp mode = 0644 sudo:yes命令我使用的是ansible-playbook -i hosts劇本/ commands.yml --user sshuser --ask -pass --ask-sudo -pass時su密碼問我給密碼用於登錄到遠程機器上的kp用戶。那是對的嗎? – 2015-02-11 11:19:25