Artikel ini akan menunjukkan kepada anda cara memasang pelbagai pakej perisian pada host CentOS / RHEL menggunakan gelung Ansible. Oleh itu, mari kita mulakan.
Prasyarat
Sekiranya anda ingin mencuba contoh dalam artikel ini,
1) Anda mesti memasang Ansible di komputer anda.
2) Anda mesti mempunyai sekurang-kurangnya host CentOS / RHEL 7 atau 8 yang dikonfigurasi untuk automasi Ansible.
Terdapat banyak artikel mengenai LinuxHint yang dikhaskan untuk Memasang Ansible dan mengkonfigurasi host untuk automasi Ansible. Anda boleh melihatnya sekiranya diperlukan.
Menyiapkan Direktori Projek
Sebelum melangkah lebih jauh, kami akan membuat direktori projek, hanya untuk memastikan semuanya teratur.
Untuk membuat direktori projek centos-pkg / dan semua subdirektori yang diperlukan (dalam direktori kerja semasa anda), jalankan arahan berikut:
$ mkdir -pv centos-pkg / buku permainan
Setelah direktori projek dibuat, arahkan ke direktori projek, seperti berikut:
$ cd centos-pkg /
Seterusnya, buat a tuan rumah fail inventori, seperti berikut:
hos $ nano
Tambahkan nama IP atau DNS host (vm3.angguk.com, dalam kes saya) host CentOS / RHEL anda dalam fail inventori (satu hos setiap baris).
Setelah selesai, simpan fail dengan menekan
Buat fail konfigurasi Ansible tidak boleh dimakan.cfg dalam direktori projek anda, seperti berikut:
$ nano tidak boleh dimakan.cfg
Kemudian, taipkan baris berikut di tidak boleh dimakan.cfg fail.
[lalai]inventori = tuan rumah
host_key_checking = Salah
Setelah selesai, simpan tidak boleh dimakan.cfg fail dengan menekan
Cuba ping semua host CentOS / RHEL yang telah anda tambahkan di tuan rumah fail inventori, seperti berikut:
$ ansible all -u ansible -m ping
Seperti yang anda lihat, hos CentOS 8 saya boleh diakses.
Memasang Pakej Perisian Tunggal
Bahagian ini akan menunjukkan kepada anda cara memasang satu pakej perisian menggunakan dnf atau yum modul Ansible pada hos CentOS / RHEL anda.
Pertama, buat buku main baru pasang_pakej.keladi di dalam buku permainan / direktori, seperti berikut:
Buku main $ nano / install_package.keladi
Seterusnya, taipkan baris berikut di pasang_pakej.keladi fail.
- tuan rumah: semuapengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- nama: Pasang pakej httpd
dnf:
nama: httpd
nyatakan: sekarang
update_cache: Betul
Setelah selesai, simpan fail dengan menekan
Di sini, saya hanya menambah satu tugas, Pasang pakej httpd. Tujuan tugas ini adalah untuk memasang httpd pakej di CentOS / RHEL 8.
CentOS / RHEL 7 tidak menggunakan dnf pengurus pakej, ia menggunakan yum pengurus pakej. Jadi, jika anda menggunakan CentOS / RHEL 7, ubah dnf ke yum, seperti yang ditandakan pada tangkapan skrin di bawah. Tidak diperlukan perubahan lain.
The nama pilihan digunakan untuk memberitahu dnf atau yum modulkan nama pakej yang anda cuba pasangkan. Dalam kes ini, ia akan menjadi httpd pakej.
The negeri pilihan digunakan untuk memberitahu dnf atau yum modul tindakan (i.e. pasang, tingkatkan, hapus) ia harus menggunakan pakej yang diberikan. Dalam kes ini, tindakannya adalah hadir.
Nilai yang disokong dari negeri pilihan adalah:
hadir - akan memasang pakej jika belum dipasang.
terkini - akan memasang pakej jika belum dipasang; jika sudah dipasang, modul akan memeriksa kemas kini; jika versi kemas kini pakej tersedia, ia akan memasang versi baru.
tidak hadir - akan mengeluarkan pakej jika dipasang.
Sekiranya kemas kini_cache pilihan ditetapkan ke Betul, cache repositori pakej DNF / YUM akan dikemas kini sebelum pakej dipasang.
Jalankan pasang_pakej.keladi buku permainan, seperti berikut:
playbook $ ansible-playbook / install_package.keladi
Seperti yang anda lihat, buku main pasang_pakej.keladi berlari dengan jayanya.
Seperti yang anda lihat, httpd pakej dipasang pada host CentOS 8 saya, yang telah saya tambahkan pada saya tuan rumah fail inventori.
$ sudo dnf senarai dipasang | grep httpd
Sekiranya anda menggunakan CentOS / RHEL 7, gunakan yum pengurus pakej dan bukannya dnf pengurus pakej untuk mengesahkan sama ada pakej dipasang.
$ sudo yum list terpasang | grep httpd
Memasang Pelbagai Pakej Perisian Menggunakan loop with_items
Bahagian sebelumnya dari artikel ini menunjukkan kepada anda cara memasang satu pakej perisian pada host CentOS / RHEL anda menggunakan Ansible dnf/yum modul. Bahagian ini akan menunjukkan kepada anda cara memasang pelbagai pakej perisian pada host CentOS / RHEL anda menggunakan Ansible dengan_item gelung.
Pertama, buat buku main baru pasang_pakej.keladi, seperti berikut:
$ play playbooks / install_packages.keladi
Taipkan baris berikut di pasang_pakej.keladi fail.
- tuan rumah: semuapengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- nama: Pasang semua pakej
dnf:
nama: 'item'
nyatakan: sekarang
update_cache: Betul
dengan_item:
httpd
php
vsftpd
Setelah selesai, tekan
Di sini, saya telah menentukan nama pakej (httpd, php, vsftpd) yang ingin saya pasang menggunakan dengan_item gelung.
Saya telah menggantikan nama pakej dengan pemboleh ubah barang. The barang pemboleh ubah akan dikemas kini dengan nama pakej dalam setiap lelaran.
Jalankan pasang_pakej.keladi buku permainan, seperti berikut:
$ ansible-playbook playbooks / install_packages.keladi
Seperti yang anda lihat, buku main pasang_pakej.keladi berlari dengan jayanya.
The httpd, php, dan vsftpd pakej dipasang pada host CentOS 8 saya, seperti yang anda lihat dalam tangkapan skrin di bawah.
$ sudo dnf senarai dipasang | grep httpdsenarai $ sudo dnf dipasang | grep php
$ sudo dnf senarai dipasang | grep vsftpd
Memasang Pelbagai Pakej Perisian Menggunakan Gelung gelung
Bermula dari Ansible 2.5, cara yang disyorkan untuk menggunakan gelung dalam buku main anda adalah dengan menggunakan gelung kata kunci, bukannya dengan_item kata kunci. Itulah sebabnya anda melihat mesej amaran ketika saya menjalankan pasang_pakej.keladi buku main di bahagian awal artikel ini.
Bekerja dengan gelung menggunakan gelung kata kunci sangat mudah.
Pertama, buka buku main pasang_pakej.keladi (dari contoh sebelumnya), seperti berikut:
$ play playbooks / install_packages.keladi
Di dalam pasang_pakej.keladi buku main, ganti istilahnya dengan_item dengan sebutan gelung, seperti yang ditandakan pada tangkapan skrin di bawah. Anda tidak perlu mengubah perkara lain.
Setelah selesai, tekan
Jalankan pasang_pakej.keladi buku permainan, seperti berikut:
$ play-playbook playbooks / install_packages.keladi
Seperti yang anda lihat, tugasnya Pasang semua pakej berlari dnf/yum modul tiga kali secara keseluruhan; sekali untuk setiap gelung barang.
The httpd, php, dan vsftpd pakej dipasang pada host CentOS 8 saya, seperti yang anda lihat dalam tangkapan skrin di bawah.
$ sudo dnf senarai dipasang | grep httpd$ sudo dnf senarai dipasang | grep php
$ sudo dnf senarai dipasang | grep vsftpd
Memasang Pelbagai Pakej Perisian menggunakan Array Syntax
Bahagian awal artikel ini menunjukkan kepada anda cara menggunakan dengan_item dan gelung gelung di Ansible untuk memasang beberapa pakej perisian di CentOS / RHEL 7 atau 8, tanpa pengulangan kod. Bahagian ini akan menunjukkan kepada anda bagaimana melakukan perkara yang sama dengan sintaks array yang lebih mudah.
Pertama, buka pasang_pakej.keladi buku permainan, seperti berikut:
$ play playbooks / install_packages.keladi
Alihkan dengan_item atau gelung bahagian dari tugas dan ubah nama pilihan untuk ['httpd', 'php', vsftpd '], seperti yang ditandakan pada tangkapan skrin di bawah.
Setelah selesai, tekan
Di sini, setiap tali yang dipetik di dalam kurungan persegi ([]) adalah elemen array (nama pakej perisian, dalam kes saya). Setiap elemen array harus dipisahkan dengan koma (,). Anda boleh menambah sebilangan elemen array yang anda mahukan. Saya hanya menambah tiga elemen, httpd, php, dan vsftpd.
Jalankan pasang_pakej.keladi buku permainan, seperti berikut:
$ ansible-playbook playbooks / install_packages.keladi
Seperti yang anda lihat, pakej perisian httpd, php, dan vsftpd dipasang pada hos CentOS 8 saya.
senarai $ sudo dnf dipasang | grep httpd$ sudo dnf senarai dipasang | grep php
$ sudo dnf senarai dipasang | grep vsftpd
Kesimpulannya
Artikel ini, menunjukkan kepada anda cara menggunakan dengan_item dan gelung gelung, serta sintaks Array, dengan Orang-orang yang Boleh Dengar yum/dnf modul untuk memasang pelbagai pakej perisian pada hos CentOS / RHEL 7 atau 8 anda.
Untuk maklumat lebih lanjut, periksa dokumentasi rasmi Ansible.
[1] Dokumentasi rasmi gelung Ansible
[2] Dokumentasi rasmi Ansible with_items
[3] Dokumentasi rasmi modul dnf Ansible
[4] Dokumentasi rasmi modul Ansible yum