[英]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.