簡體   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