Tidak boleh difahami

Cara Menggunakan Modul Daftar Boleh Dengar

Cara Menggunakan Modul Daftar Boleh Dengar
Dalam Ansible, anda boleh menjalankan perintah shell pada host Ansible anda, host yang akan anda konfigurasikan dengan Ansible. Perintah shell ini mungkin mempunyai output. Secara lalai, output diabaikan. Sekiranya anda ingin menyimpan output dalam pemboleh ubah dan menggunakannya kemudian, maka anda boleh menggunakan Ansible daftar modul. Artikel ini akan menunjukkan kepada anda cara menggunakan Ansible daftar modul untuk menyimpan output perintah dalam pemboleh ubah dan mengaksesnya kemudian di buku main Ansible anda.

Prasyarat

Sekiranya anda ingin mencuba contoh dalam artikel ini, anda mesti:

1) Adakah Ansible dipasang di komputer anda.

2) Mempunyai hos Ubuntu yang dikonfigurasi untuk automasi Ansible.

Terdapat banyak artikel mengenai LinuxHint yang dikhaskan untuk memasang Ansible dan mengkonfigurasi host untuk automasi Ansible. Anda boleh menyemak artikel ini jika perlu.

Menyiapkan Direktori Projek

Sebelum melangkah lebih jauh, sediakan direktori projek Ansible baru, hanya untuk memastikan semuanya teratur.

Untuk membuat direktori projek daftar-demo / dan semua subdirektori yang diperlukan (dalam direktori kerja semasa anda), jalankan arahan berikut:

$ mkdir -pv register-demo / playbook

Setelah direktori projek dibuat, arahkan ke direktori projek, seperti berikut:

$ cd daftar-demo /

Buat a tuan rumah fail inventori, seperti berikut:

hos $ nano

Tambahkan IP host atau nama DNS host Ubuntu anda dalam fail inventori (satu host per baris), seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Di sini, saya telah menambah Ubuntu 20 saya.04 hos LTS vm3.angguk.com di dalam ubuntu20 kumpulan.

Setelah selesai, simpan fail dengan menekan + X, diikuti oleh Y dan .

Buat fail konfigurasi Ansible tidak boleh dimakan.cfg dalam direktori projek anda, seperti berikut:

$ nano tidak boleh dimakan.cfg

Seterusnya, 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 + X, diikuti oleh Y dan .

Sekarang, cuba ping hos Ubuntu anda, seperti berikut:

$ ansible ubuntu20 -u ansible -m ping

Seperti yang anda lihat, Ubuntu 20 saya.04 hos vm3.angguk.com boleh diakses.

Contoh 1: Asasnya

Dalam contoh ini, saya akan menunjukkan kepada anda beberapa asas mengenai Orang-orang yang Tidak Boleh Diharapkan daftar modul. Saya akan menggunakan Ansible untuk menghasilkan kata laluan rawak di Ubuntu 20 saya.04 hos menggunakan pwgen perintah, simpan kata laluan dalam pemboleh ubah menggunakan daftar modul, dan cetak kata laluan di skrin.

Pertama, buat buku main baru menghasilkan_pass.keladi di dalam buku permainan / direktori, seperti berikut:

Buku main $ nano / menghasilkan_pass.keladi

Taipkan baris berikut di menghasilkan_pass.keladi fail:

- hos: ubuntu20
pengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- name: Pastikan pwgen dipasang
sesuai:
nama: pwgen
nyatakan: sekarang
update_cache: Betul
- nama: Hasilkan kata laluan
shell: pwgen -N 1 -s 30
daftar: mypass
- nama: Cetak kata laluan yang dihasilkan
nyahpepijat:
msg: "Kata laluan adalah mypass"

Setelah selesai, tekan + X, diikuti oleh Y dan , untuk menyelamatkan menjana_pass.keladi fail.

Garis berikut memberitahu Ansible untuk menjalankan buku main menghasilkan_pass.keladi pada setiap tuan rumah di ubuntu20 kumpulan. Dalam kes saya, buku main akan dijalankan pada hos vm3.angguk.com.

Dalam buku main ini, saya akan menentukan tiga tugas.

Tugas pertama akan memastikan bahawa pwgen pakej dipasang.

Tugas kedua akan menghasilkan kata laluan 30 aksara rawak menggunakan pwgen perintah. Saya akan menggunakan daftar modul untuk menyimpan kata laluan yang dihasilkan di mypass pemboleh ubah.

Tugas ketiga akan mencetak mypass pemboleh ubah menggunakan Ansible nyahpepijat modul.

Jalankan buku main menghasilkan_pass.keladi menggunakan arahan berikut:

$ ansible-playbook playbooks / menghasilkan_pass.keladi

Seperti yang anda lihat, buku main berjaya dijalankan. Kata laluan juga telah dihasilkan.

Tetapi, mengapa pemboleh ubah tersebut mypass mencetak begitu banyak barang?

Nah, pemboleh ubahnya mypass adalah objek yang mengandungi beberapa sifat penting.

Sifat terpenting bagi setiap daftar pemboleh ubah adalah seperti berikut:

cmd - Perintah yang dijalankan untuk menghasilkan output.

stdout - Keluaran arahan.

stderr - Ralat output arahan.

mulakan - Tarikh dan masa ketika perintah mula dilaksanakan.

akhir - Tarikh dan masa ketika arahan selesai dilaksanakan.

delta - Masa yang diambil untuk menjalankan perintah. Ini adalah perbezaan antara akhir dan juga mulakan harta benda.

stdout_lines - Array yang mengandungi setiap baris output perintah. Sama seperti stdout, tetapi stdout memisahkan garis menggunakan watak baris baru (\ n) dan bukannya tatasusunan.

stderr_lines -  Array yang mengandungi setiap baris output ralat arahan. Sama seperti stderr, tetapi stderr memisahkan garis menggunakan watak baris baru (\ n) dan bukannya tatasusunan.

Sekiranya anda hanya mahu mencetak / mengakses rentetan kata laluan (yang sangat mungkin), anda boleh mencetak / mengakses stdout harta tanah mypass pemboleh ubah dalam buku main anda, seperti yang ditandakan pada tangkapan skrin di bawah.

Buku main $ nano / menghasilkan_pass.keladi

Setelah selesai, jalankan buku main menjana_pass.keladi lagi. Hanya rentetan kata laluan yang akan dicetak, seperti yang anda lihat pada tangkapan skrin di bawah.

Itu merangkumi asas-asas Ansible daftar modul.

Contoh 2: Kandungan Direktori Kedai

Dalam contoh ini, saya akan menunjukkan kepada anda cara menyimpan kandungan direktori dalam pemboleh ubah menggunakan Ansible daftar modul, serta cara mengulanginya.

Pertama, buat buku main baru dapatkan_dir_contents.keladi di dalam buku permainan / direktori.

Buku main $ nano / get_dir_contents.keladi

Seterusnya, taipkan baris berikut di dapatkan_dir_contents.keladi buku permainan:

- hos: ubuntu20
pengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- nama: Senaraikan semua fail dan direktori di / home / ansible
shell: ls / rumah / tidak boleh dimakan
daftar: dir_contents
- nama: Mencetak kandungan direktori menggunakan gelung
nyahpepijat:
msg: "item"
gelung: "dir_contents.stdout_lines "

Setelah selesai, tekan + X, diikuti oleh Y dan , untuk menyelamatkan menghasilkan_pass.keladi fail.

Dalam buku main ini, saya akan menentukan dua tugas.

Tugas pertama menyenaraikan semua kandungan / rumah / termakan direktori dan menyimpannya di dir_contents pemboleh ubah.

Tugas kedua mencetak dir_contents pemboleh ubah.

Jalankan dapatkan_dir_contents.keladi buku permainan, seperti berikut.

$ ansible-playbook playbooks / get_dir_contents.keladi

Seperti yang anda lihat, stdout_lines harta disimpan kandungan direktori sebagai tatasusunan. The stdout harta benda juga disimpan dalam kandungan direktori. Sifat ini dipisahkan oleh watak barisan baru (\ n). Dalam contoh ini, stdout_lines harta benda senang diusahakan.

Seterusnya, lakukan lelaran ke atas isi direktori menggunakan gelung.

Untuk melakukan ini, buka dapatkan_dir_contents.keladi buku permainan dan ubah tugas kedua, seperti yang ditandakan pada tangkapan skrin di bawah.

Buku main $ nano / get_dir_contents.keladi

Di sini, saya berulang kali dir_contents.stdout_lines array menggunakan gelung dan mencetak item array menggunakan Ansible nyahpepijat modul. Dalam tugas ini, yang barang pemboleh ubah ialah pemboleh ubah gelung yang digunakan untuk melakukan lelaran ke atas elemen array.

Jalankan dapatkan_dir_contents.keladi buku permainan, seperti berikut:

$ ansible-playbook playbooks / get_dir_contents.keladi

Seperti yang anda lihat, kandungan / rumah / termakan direktori dicetak di skrin.

Contoh 3: Direktori Sandaran

Dalam contoh ini, saya akan menunjukkan kepada anda cara membuat sandaran direktori menggunakan Ansible daftar, fail, dan salinan modul.

Pertama, buat buku main baru sandaran_home_dir.keladi di dalam buku permainan / direktori, seperti berikut:

Buku main $ nano / backup_home_dir.keladi

Seterusnya, taipkan baris berikut di sandaran_home_dir.keladi fail.

- hos: ubuntu20
pengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- nama: Dapatkan direktori rumah / isi rumah / kandungan
shell: ls / rumah / tidak boleh dimakan
daftar: dir_contents
- name: Buat direktori baru / tmp / ansible
fail:
jalan: / tmp / tidak boleh dimakan
nyatakan: direktori
- nama: Direktori rumah sandaran / rumah / tidak boleh / tmp / ansible
salinan:
src: / home / ansible / item
dest: / tmp / tidak boleh dimakan /
remote_src: Betul
gelung: "dir_contents.stdout_lines

Setelah selesai, tekan + X, diikuti oleh Y dan , untuk menyelamatkan sandaran_home_dir.keladi fail.

Dalam buku main ini, saya akan menentukan tiga tugas.

Tugas pertama menyimpan kandungan / rumah / termakan direktori (direktori yang akan saya sandarkan) di dir_contents pemboleh ubah menggunakan Ansible daftar modul.

Tugas kedua membuat direktori baru / tmp / tidak boleh dimakan menggunakan Ansible fail modul. Ini adalah direktori di mana sandaran akan disimpan.

Tugas ketiga melengkung melalui dir_contents.stdout_lines susunan dan menggunakan Ansible salinan modul untuk menyalin setiap direktori ke / tmp / tidak boleh dimakan / direktori.

Jalankan sandaran_home_dir.keladi buku permainan, seperti berikut:

$ ansible-playbook playbook / backup_home_dir.keladi

Seperti yang anda lihat, di Ubuntu 20 saya.04 LTS host, sandaran berjaya.

Contoh 4: Jalankan atau Langkau Tugas

Dalam contoh ini, saya akan menunjukkan kepada anda cara menjalankan atau melangkau tugas, bergantung pada pemboleh ubah yang telah anda daftarkan, menggunakan daftar modul.

Pertama, buat buku main baru daftar_kondisi.keladi di dalam buku permainan / direktori seperti berikut:

Buku permainan / daftar_kondisi $ nano.keladi

Seterusnya, taipkan baris berikut di daftar_kondisi.keladi fail.

- hos: ubuntu20
pengguna: tidak boleh dimakan
menjadi: Benar
tugas:
- nama: Menyenaraikan kandungan direktori
shell: ls / rumah / ansible / ujian3
daftar: dir_contents
- nama: Periksa sama ada direktori kosong
nyahpepijat:
msg: "Direktori kosong."
bila: dir_contents.stdout == ""

Setelah selesai, tekan + X, diikuti oleh Y dan , untuk menyelamatkan daftar_kondisi.keladi fail.

Dalam buku permainan ini, saya telah menentukan dua tugas.

Tugas pertama menyimpan kandungan / rumah / ansible / ujian3 direktori di dir_contents pemboleh ubah.

Tugas kedua memeriksa sama ada dir_contents.stdout adalah rentetan kosong, atau sama ada direktori / rumah / ansible / ujian3 kosong. Sekiranya direktori kosong, mesejnya Direktori kosong akan mencetak.

Jalankan daftar_kondisi.keladi buku permainan, seperti berikut:

$ ansible-playbook playbook / register_conditions.keladi

Seperti yang anda lihat, buku main berjaya dijalankan.

Sejak direktori / rumah / ansible / ujian3 kosong, buku main mencetak mesej Direktori kosong.

Seterusnya, buat fail baru di / rumah / ansible / ujian3 direktori.

$ touch test3 / myfile

Sejak / rumah / ansible / ujian3 direktori tidak lagi kosong, tugasnya Periksa sama ada direktori kosong dilangkau, seperti yang anda lihat dalam tangkapan skrin di bawah.

$ ansible-playbook playbook / register_conditions.keladi

Kesimpulannya

Orang-orang yang boleh dipercayai daftar modul sangat berguna untuk automasi pelayan. Artikel ini menunjukkan kepada anda asas-asas daftar modul, termasuk contoh penggunaan Ansible daftar modul untuk penyimpanan dan cadangan direktori, dan untuk menjalankan tugas direktori.

Bagaimana Saya Membuat Proksi Berbalik di Nginx?
Pelayan proksi standard hanya berfungsi mengikut permintaan pelanggan mereka dengan memberikan penyaringan dan privasi kandungan. Apabila kita membinc...
Persediaan SSL Nginx di Linux
SSL (singkatan dari lapisan soket selamat) adalah protokol web yang menjadikan lalu lintas antara pelayan dan pelanggan selamat dengan mengenkripsi. P...
Cara Mengaktifkan dan Menyahdayakan Nginx Cache
Apabila anda mengaktifkan caching di Nginx Plus, ia menyimpan respons dalam cakera cache, dan ini digunakan lebih jauh untuk merespon klien tanpa mena...