Secara teknis, Ansible adalah itu; karena itu tanpa agen; Saya telah menggunakannya untuk mengelola router, switch, server, dll.
Apa yang Anda minta adalah jika package
modul mendukung Arch Linux? Saya terlalu malas untuk menguji apakah itu mendukung Arch; tetapi jika tidak selalu ada pacman
modul ... Dan jika itu tidak berhasil ... Selalu ada menulis modul Anda sendiri.
Apa yang Anda bicarakan adalah masalah yang lebih besar dengan menjalankan beberapa distribusi yang berbeda dalam lingkungan produksi . Menjadi menyakitkan untuk mengelola jangka panjang. Inilah sebabnya mengapa itu praktik yang baik untuk tidak menjalankan banyak distribusi dalam produksi, seperti dari perspektif manajemen (murni dari kode), ini banyak pekerjaan. Cara paling jelas untuk menyiasatinya adalah dengan menggunakan Ansible when
dalam kombinasi dengan os_family
:
apt:
name: apache2
when: ansible_facts['os_family'] == "Debian"
pacman:
name: nginx
when: ansible_facts['os_family'] == "Archlinux"
Saya sudah dalam situasi di mana saya harus mengelola Server Debian dan server CentOS dalam produksi; akhirnya saya membuat pilihan untuk menjadi Debian murni karena:
- Basis kode untuk CM dipotong setengah (semua logika untuk kebiasaan khusus distro telah dihapus).
- Pengujian menjadi kurang menyakitkan (jika Anda tidak menguji kode CM Anda, maka Anda salah melakukannya).
Anda juga akan mengalami perbedaan besar; sebagai contoh:
- Beberapa paket diberi nama berbeda;
httpd
(RHEL) vs apache2
(Debian).
- Direktori konfigurasi "default" yang berbeda;
/etc/default
(Debian) vs /etc/sysconfig
(RHEL).
- Sistem init yang berbeda; meskipun
systemd
sebagian besar telah mengambil alih.
- Tidak ada SSH; misalnya WinRM untuk Windows.
Sistem Manajemen Konfigurasi adalah cara mengabstraksi lingkungan menjadi kode; dan mereka memberi Anda logika / persyaratan untuk melakukannya sendiri .
package
modul hanya panggilan modul didefinisikan dalamansible_pkg_mgr
kenyataannya untuk sistem itu. Jadi sistem pengemasan yang mendukung Ansible akan berfungsi.