Saya mencoba menjalankan tugas Ansible tertentu sebagai pengguna yang berbeda dari yang menjalankan playbook. .yml
File saya terlihat seperti ini:
---
- hosts: staging_servers
tasks:
- name: check user
remote_user: someusername
shell: whoami
Menjalankan tugas ini menunjukkan kepada saya bahwa whoami
perintah mengembalikan pengguna yang berbeda dari yang saya tetapkan dalam tugas (tepatnya, mengembalikan pengguna yang didefinisikan dalam hosts
file yang dipanggil ubuntu
).
Saya juga mencoba mendefinisikan tugas seperti ini:
---
- hosts: staging_servers
tasks:
- name: check user
sudo: yes
sudo_user: someusername
shell: whoami
tapi kemudian saya mendapatkan Missing sudo password
kesalahan, meskipun ada baris dalam sudoers
file yang mengatakan someusername ALL=(ALL) NOPASSWD:ALL
dan mengeluarkan perintah dengan sudo
pada mesin remote karena someusername
tidak meminta saya untuk kata sandi.
Jadi, bagaimana saya bisa menjalankan tugas tertentu sebagai pengguna yang berbeda yang bukan pengguna yang ditentukan dalam hosts
file atau root
dirinya sendiri?
sumber
remote_user
default untuk pengguna saat ini di mesin lokal Anda - seperti halnya ssh, sebenarnya.Missing sudo password
error. Apakah ada cara untuk menghindari meminta kata sandi untuk pengguna tertentu?ubuntu ALL=(someusername) NOPASSWD: ALL
tapi saya harus memikirkan keamanan di balik ini ... Apakah ada cara lain selain menambahkan baris ini ke sudoers?Perhatikan bahwa setelah Ansible 1.9,
sudo
kata - kata itu diganti denganbecome
, dengan demikianmenjadi (pun intended):
Lihat lebih spesifik di sini: /programming//a/22749788/402727
sumber