Tidak dapat menemukan file konfigurasi di "/ etc / ansible /" di Mac OS X

15

Saya menggunakan Mac OS X dan baru menggunakan Ansible . Saya lupa bagaimana saya menginstalnya. Saya berpikir melalui pip:

$ pip freeze
altgraph==0.12
ansible==1.9.2

Bagaimanapun, dari apa yang saya baca harus ada file konfigurasi /etc/ansible/, tetapi isi direktori itu hanya:

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles

Itu tidak terlihat seperti ada variabel lingkungan didefinisikan:

$ echo $ANSIBLE_CONFIG
# blank line

Kemungkinan bekerja sejauh yang saya tahu (tanpa lokal ansible.cfg, dan tidak ada di ansiblefolder di dir pengguna), tapi saya bingung.

Bisakah seseorang tolong jelaskan apa yang tidak saya dapatkan di sini?

MikeiLL
sumber

Jawaban:

14

Dari apa yang saya tahu file konfigurasi yang Mungkin ( ansible.cfg) mungkin terletak di sini untuk pengaturan konfigurasi tingkat pengguna:

~/.ansible.cfg

Serta konfigurasi seluruh sistem yang terletak di sini; di mana Anda menyatakan Anda tidak dapat menemukan file seperti itu:

 /etc/ansible/ansible.cfg

Jika entah bagaimana Anda memiliki banyak pengguna di sistem Anda, mungkin ada ~/.ansible.cfgmengambang di salah satu direktori pengguna mereka yang telah Anda lupakan?

Anda menyatakan bahwa Anda mungkin telah menginstalnya menggunakan pip, tetapi memeriksa rumus Homebrew untuk Ansible , itu baru saja dinobrak dari versi 1.9.2 ke 1.9.3 pada 4 September . Jadi mungkin Anda menginstalnya melalui Homebrew?

Dan kekhawatiran utama Anda tampaknya adalah apakah ansible.cfgperlu:

Kemungkinan bekerja sejauh yang saya tahu (tanpa lokal ansible.cfg, dan tidak ada di ansiblefolder di dir pengguna), tapi saya bingung.

Bisakah seseorang tolong jelaskan apa yang tidak saya dapatkan di sini?

Ya, itu akan berfungsi dengan baik tanpa konfigurasi. Untuk sebagian besar perangkat lunak, semua yang dilakukan file konfigurasi menimpa default sistem inti. Jadi jika ansible.cfgada yang hilang, Ansible masih akan bekerja tetapi hanya menggunakan default sistem inti. Sebagaimana dijelaskan dalam dokumentasi resmi Ansible :

Pengaturan tertentu dalam Ansible dapat disesuaikan melalui file konfigurasi. Konfigurasi stok harus memadai untuk sebagian besar pengguna, tetapi mungkin ada alasan Anda ingin mengubahnya.

Perubahan dapat dibuat dan digunakan dalam file konfigurasi yang akan diproses dalam urutan sebagai berikut:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg
JakeGould
sumber
tidak di kedua tempat. dan saya satu-satunya pengguna. Saya kira saya bisa menyalinnya dari repo git dan menempatkannya di salah satu direktori tersebut.
MikeiLL
Panggilan yang bagus. Itu tidak diinstal melalui homebrew, tapi itu versi 1.9.2. instal ulang via pip saat ini ...
MikeiLL
sekarang di 1.9.3 tetapi masih tidak dapat menemukan direktori config di salah satu dari lokasi di atas. Ada ~/.ansible/cp, dan /etc/ansible/dengan konten yang sama.
MikeiLL
Terima kasih. Masuk akal. Saya hanya tidak yakin apakah konfigurasi stok biasanya disimpan di salah satu ansible.cfgfile yang direferensikan .
MikeiLL
1
@ MikeikeL Nah, jangan khawatir tentang hal itu. Hasil edit terakhir saya adalah ketika saya akhirnya memahami kekhawatiran Anda. Jujur saya tidak bisa memikirkan perangkat lunak terkenal yang tidak beroperasi dengan logika "Saya akan memiliki standar inti, tetapi jika saya menemukan file konfigurasi pengguna yang akan menimpa default." Risiko keamanan / stabilitas besar yang Anda dapatkan ketika seluruh sistem Anda bergantung pada file konfigurasi eksternal adalah jika file itu hilang, seluruh sistem akan runtuh? Bukan rencana yang bagus. Senang Anda sekarang mengerti bahwa jika file konfigurasi hilang, tidak ada hal buruk yang terjadi.
JakeGould
13

The homebrewrumus menggantikan string /etc/ansibledi constants.pydengan /usr/local/etc/ansible. Sepertinya juju buruk bagiku.

Saya tidak punya /usr/local/etc/ansiblesetelah brew install ansible. Namun, saya memang mengkonfirmasi bahwa jika Anda memasukkan yang valid di ansible.cfgsana, itu akan dihormati (untuk saat ini).

Rekomendasi saya:

  1. Jangan gunakan brewuntuk menginstal Ansible.
  2. Secara eksplisit tentang konfigurasi Anda tidak bergantung pada global lingkungan sistem, seperti /etc/ansible/ansible.cfg.

Referensi Kode:

buat pengganti formula yang memungkinkan # 475: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py # 61: https://github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61

Mike D
sumber
homebrew bekerja di ruang pengguna sehingga semuanya di bawah / usr / lokal. Ini baik
gagarine
3

Pada OSX, saya telah menginstalasi menggunakan pip dan menemukan bahwa ansible.cfg tidak ada di / etc / ansible atau di direktori home saya.

Sumber: https://github.com/ansible/ansible/issues/18512

pip umumnya tidak menginstal file konfigurasi dan pip dengan yang dimungkinkan tidak berbeda. Jika Anda hanya ingin mencoba ansible, biasanya ini berfungsi tanpa file ansible.cfg. (Anda perlu menentukan beberapa inventaris tetapi Anda dapat melakukannya pada baris perintah daripada file jika Anda mau). Jika Anda ingin mendapatkan file konfigurasi sampel untuk diadaptasi, Anda bisa mendapatkannya dari tarball atau repositori sumber di sini: https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg

File inventaris dijelaskan di sini: http://docs.ansible.com/ansible/intro_inventory.html Untuk menentukan host untuk inventaris pada baris perintah, lakukan saja hal seperti ini:

ansible -i 'host1,host2,host3'  all -m command -a 'hostname'

Jika Anda ingin menentukan satu host melalui baris perintah, gunakan koma trailing di string inventaris:

ansible -i 'host1,' all -m command -a 'hostname'
vaichidrewar
sumber
2

Saya menemukan bahwa Homebrew tidak akan membuat /etc/ansibledirektori, juga tidak akan membuat file konfigurasi atau host. Namun jika Anda membuat /etc/ansibledirektori dan menyalin konfigurasi dari repositori github ke /etc/ansibledirektori itu akan mengenali itu sebagai konfigurasi.

Anda mungkin juga ingin masuk ke konfigurasi itu dan batalkan komentar pada baris yang menentukan lokasi inventaris juga untuk:

inventaris = / etc / ansible / hosts

Setelah melakukan ini, ansible akan melakukan cara yang sama dengan instalasi homebrew seperti halnya instalasi lainnya dan dokumentasi yang Anda temukan online dapat digunakan dengan versi homebrew.

Guardius
sumber
/ usr / local / etc / tidak dikenali. Sudah mencoba membuat direktori / etc / ansible / dan host yang dipindahkan dan ansible.cfg bekerja dengan baik!
aelkz