繁体   English   中英

在 ansible 中以 root 身份登录后执行任务

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM