Bagaimana cara mengatur pengguna ssh default untuk semua host di Ansible?

11

Versi yang memungkinkan 2.1

Saya memiliki file inventaris hosts

[nodes]
host1
host2
...

Dan buku pedoman sederhana site.yml

---
- hosts: all
  tasks:
    - include: tasks/main.yml

Jika saya memulai permainan,

ansible-playbook -i hosts site.yml -vvvv

Saya mendapatkan kesalahan ini untuk semua host,

ESTABLISH SSH CONNECTION FOR USER: None
fatal: [host1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
...

Namun, dengan membaca dokumen Inventaris Ansible , saya menambahkan ansible_userke hostsfile,

[nodes]
host1    ansible_user=root
host2    ansible_user=root
...

Ini menyelesaikan SSH CONNECTION UNREACHABLEkesalahan. Namun, apakah saya harus menambahkan di ansible_user=rootsebelah semua host? Atau adakah cara yang lebih sederhana untuk melakukan ini?

Howard Lee
sumber

Jawaban:

11

Periksa contoh / ansible.cfgfile default , dan Anda akan menemukan ini di bawah [defaults]:

# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root

Batalkan komentar remote_userdan atur pengguna ke apa yang ingin Anda masuki.

Di mana Ansible dapat ansible.cfg? File yang sama menjelaskan:

# nearly all parameters can be overridden in ansible-playbook 
# or with command line flags. ansible will read ANSIBLE_CONFIG,
# ansible.cfg in the current working directory, .ansible.cfg in
# the home directory or /etc/ansible/ansible.cfg, whichever it
# finds first
Deltik
sumber
Terima kasih @Deltik, apakah Anda dapat menjawab yang satu ini juga?
Howard Lee
@HowardLee: Pertanyaan Anda yang lain sebagian besar berbasis pendapat dan tidak cocok untuk Pengguna Super.
Deltik
4

Cara lain adalah menggunakan --useruntuk mendefinisikan pengguna ssh jarak jauh. Ketik ansible-playbook --helpuntuk membaca lebih lanjut. Ini adalah perintah khas saya:

ansible-playbook -i hosts site.yml --user <user> --ask-pass -vvvv

--ask-pass akan meminta untuk memasukkan kata sandi untuk --user

Howard Lee
sumber