Ssh yang mungkin sebagai pengguna dan jalankan memiliki root (seperti harapan)

8

Saya harus mengelola sejumlah host penting di mana hanya ada satu pengguna yang dapat mengakses dari SSH (sebut saja dia foo) dan kemudian harus login sebagai root untuk menjalankan perintah istimewa.

Pengguna Foo tidak memiliki hak sudo apa pun, jadi saya terpaksa masuk sebagai root untuk menjalankan perintah istimewa. Saya sebenarnya menggunakan skrip ekspektasi untuk melakukan pekerjaan ini (ssh login sebagai foo, login sebagai root via su) dan saya ingin beralih ke Ansible. Saya tahu saya bisa membuat pengguna baru dan memberinya hak istimewa sudo atau pada dasarnya memberikan hak istimewa sudo untuk foo tetapi apakah mungkin untuk melakukan hal yang sama yang saya lakukan dengan harapan dengan Ansible?

Saya ingin melakukan koneksi ssh sebagai foo dan kemudian menjalankan playbook atau perintah adhoc apa pun sebagai root. Saya tidak menemukan informasi apa pun dalam dokumentasi Ansible tentang hal itu, jadi saya bertanya di sini apakah seseorang sudah melakukan interogasi semacam ini.

Arka
sumber

Jawaban:

13

Dengan ansible, Anda dapat menggunakan sudoatau su:

- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami

Anda juga bisa melakukannya dari baris perintah:

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml

Fungsi ini telah tersedia sejak permintaan tarikan ini , dan hadir di 1.6.6 saat ini.

dawud
sumber
1
Terima kasih. Bagaimana Anda bisa memiliki kata sandi su yang berbeda untuk setiap host? ansible_su_pass tidak ada
Arka
Sudahkah Anda menemukan cara memilih su pass yang dimungkinkan?
jeremieca
Mulai dari 1.9.4, Anda tidak dapat memiliki kata sandi yang berbeda untuk setiap host. Anda dapat memiliki kunci ssh yang berbeda.
bschlueter