[英]Executing task after being logged as root in ansible
在使用 ssh 連接后,我正在嘗試隨后運行任務。 我在我的劇本中使用這個連接
- name: connect using password # task 1; this task set/connect me as root
expect:
command: ssh -o "StrictHostKeyChecking=no" myuser@********
responses:
"password:":
-my password
-my password
delegate_to: localhost
該任務很好,我可以看到我已連接。 現在的問題是,當我嘗試運行后續任務時,例如:
- name: copy folder # task 2 in the same playbook
copy:
src: "files/mylocalfile.txt"
dest: "etc/temp"
mode: "0777"
我有以下消息:
"msg: etc/temp not writable"
如何以 root 身份繼續執行在task1
中連接的剩余任務?
我相信這可能不是 ansible 問題,而是 linux 問題。 您的用戶在 /etc/wheel 中嗎?
Ansible 具有指令become
,如果您連接的用戶被允許升級權限,它將讓您以 root 身份執行任務。 您想以特權運行的任務類似於:
- name: copy folder # task 2 in the same playbook
become: yes
copy:
src: "files/mylocalfile.txt"
dest: "etc/temp"
mode: "0777"
如果您需要指定要運行任務的用戶,可以使用become_user
,如果您有特權用戶的密碼,您可以要求 ansible 在運行 ansible-playbook 時提示輸入密碼,使用--ask-become-password
。
以下鏈接提供有關 ansible 中權限提升的文檔:
https://docs.ansible.com/ansible/latest/user_guide/become.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.