1. 程式人生 > 其它 >“module_stdout“: “sudo: a password is required\r\n“, “msg“: “MODULE FAILURE“, “rc“: 1}

“module_stdout“: “sudo: a password is required\r\n“, “msg“: “MODULE FAILURE“, “rc“: 1}

技術標籤:linuxssh

在用普通使用者執行ansible的playbook時候。出現下面的error:

TASK [Gathering Facts] **************************************************************************************************
fatal: [192.168.1.10]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 192.168.1.10 closed.\r\n", "module_stdout": "sudo: a password is required\r\n", "msg": "MODULE FAILURE", "rc": 1}

hosts中只寫了:

ansible_ssh_user=a
ansible_ssh_pass=1
#ansible_ssh_private_key_file=/home/a/.ssh/authorized_keys  把這個解開也並咩有生效

解決方法:
新增兩行:

ansible_become_method=sudo
ansible_sudo_pass=1(這裡有一點不好就是 root使用者的密碼是明文的)

如果環境可以給這個使用者新增sudo並且咩有密碼許可權的時候,可以簡單這樣操作:

  • 用root使用者先給這個普通使用者a新增sudo許可權(無密碼的)
    即:visudo
    新增下面資訊:

在這裡插入圖片描述
之後直接執行:

ssh-keygen
ssh-copy-id 使用者@主機ip

如果環境中沒有ssh-copy-id的命令情況下:

可以直接到這個路徑下 將id_rsa.pub 複製一份 並且改名字為authorized_keys.即:

cp -a id_rsa.pub authorized_keys

在這裡插入圖片描述