mungkin

Cara Menggunakan Fakta Kustom yang Mungkin

Cara Menggunakan Fakta Kustom yang Mungkin
Fakta seperti variabel di Ansible. Ansible menghasilkan banyak fakta, tergantung pada host yang diotomatiskan. Jika perlu, Anda juga dapat menentukan fakta/variabel khusus di Ansible.

Anda dapat menentukan tiga jenis fakta khusus di Ansible.

1) Fakta global: Fakta-fakta ini dapat diakses dari setiap host di file inventaris Anda.
2) Fakta kelompok: Fakta-fakta ini hanya dapat diakses dari sekumpulan host atau grup host tertentu.
3) Fakta tuan rumah: Fakta-fakta ini hanya dapat diakses dari host tertentu.

Dalam artikel ini, saya akan menunjukkan kepada Anda bagaimana bekerja dengan fakta-fakta kustom Ansible. Jadi, mari kita mulai.

Prasyarat:

Jika Anda ingin mencoba contoh artikel ini,

1) Anda harus menginstal Ansible di komputer Anda.
2) Anda harus memiliki setidaknya 6 host Linux yang dikonfigurasi untuk otomatisasi yang memungkinkan.

Ada banyak artikel di LinuxHint yang didedikasikan untuk Menginstal Ansible dan mengonfigurasi host untuk otomatisasi Ansible. Anda dapat memeriksanya jika diperlukan.

Menyiapkan Direktori Proyek:

Sebelum kita mulai, mari buat direktori proyek sehingga kita dapat mengatur file proyek kita.

Untuk membuat direktori proyek fakta-kustom/ di kamu RUMAH direktori, jalankan perintah berikut:

$ mkdir -pv custom-facts/playbooks,host_vars,group_vars

Sekarang, navigasikan ke fakta-kustom/ direktori sebagai berikut:

$ cd fakta-kustom/

Buat file konfigurasi Ansible mungkin.cfg di direktori proyek Anda sebagai berikut:

$ nano mungkin.cfg

Ketik baris berikut mungkin.cfg mengajukan.

[default]
inventaris           = host
host_key_checking   = Salah

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan mungkin.cfg file konfigurasi.

Sekarang, buat file inventaris Ansible tuan rumah di direktori proyek Anda sebagai berikut:

$ nano host

Ketik baris berikut di . Anda tuan rumah file inventaris.

vm1.simpul.com
vm2.simpul.com
[web]
vm3.simpul.com
vm4.simpul.com
[basis data]
vm[5:6].simpul.com

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan tuan rumah file inventaris.

Untuk membuat daftar semua host yang tersedia di file inventaris Anda, jalankan perintah berikut:

$ memungkinkan semua --list-hosts

Seperti yang Anda lihat, saya memiliki enam host di file inventaris saya.

Untuk membuat daftar host yang tersedia di jaring grup file inventaris Anda, jalankan perintah berikut:

$ web yang memungkinkan --list-hosts

Seperti yang Anda lihat, saya memiliki dua host (vm3.simpul.com dan vm4.simpul.com) dalam jaring grup file inventaris saya.

Untuk membuat daftar host yang tersedia di basis data grup file inventaris Anda, jalankan perintah berikut:

$ basis data yang memungkinkan --list-hosts

Seperti yang Anda lihat, saya memiliki dua host (vm5.simpul.com dan vm6.simpul.com) dalam basis data grup file inventaris saya.

Bekerja dengan Fakta Global yang Mungkin:

Di bagian ini, saya akan menunjukkan kepada Anda bagaimana mendefinisikan fakta/variabel global Ansible dalam file inventaris Anda dan mengaksesnya dari buku pedoman Ansible Anda. Saya juga akan menunjukkan cara mendefinisikan fakta/variabel global dalam file terpisah.

Pertama, buka tuan rumah file inventaris dengan perintah berikut:

$ nano host

Sekarang, tambahkan garis yang ditandai di . Anda tuan rumah file inventaris. Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyimpan file.

'

Anda menambahkan fakta global di semua:vars bagian. Di sini, saya telah menambahkan web_url fakta global.

Sekarang, buat buku pedoman baru print_global_fact.yaml dalam buku pedoman/ direktori sebagai berikut:

$ nano buku pedoman/print_global_fact.yaml

Kemudian, ketik baris berikut di print_global_fact.yaml mengajukan.

- tuan rumah: semua
pengguna: mungkin
tugas:
- nama: Cetak nilai fakta global 'web_url'
debug:
msg: 'URL Web: web_url'

Tujuan dari buku pedoman ini adalah untuk mencetak web_url fakta global.

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan print_global_fact.yaml mengajukan.

Sekarang, jalankan print_global_fact.yaml buku pedoman sebagai berikut:

$ buku pedoman playbook yang memungkinkan/print_global_fact.yaml

Seperti yang Anda lihat, semua host di file inventaris saya dapat mengakses fakta global web_url.

Anda juga dapat menambahkan fakta global dalam file terpisah. Dengan cara ini, Anda dapat menjaga file inventaris tetap bersih. Mari kita lihat bagaimana melakukannya.

Pertama, mari kita singkirkan fakta global dari tuan rumah file inventaris.

$ nano host

Sekarang, hapus garis yang ditandai dari file inventaris dan tekan + X, diikuti oleh kamu dan untuk menyimpan file inventaris.

Kemudian, buat file baru semua dalam grup_vars/ direktori sebagai berikut:

$ nano group_vars/all

Untuk menambahkan fakta global web_url, ketik baris berikut di group_vars/semua mengajukan.

web_url: https://www.linuxhint.com

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan group_vars/semua mengajukan.

Untuk memeriksa apakah Anda dapat mengakses fakta global web_url, jalankan print_global_fact.yaml buku pedoman lagi sebagai berikut:

$ buku pedoman playbook yang memungkinkan/print_global_fact.yaml

Seperti yang Anda lihat, semua host di file inventaris saya dapat mengakses fakta global web_url.

Bekerja dengan Ansible Group Facts:

Di bagian ini, saya akan menunjukkan kepada Anda bagaimana mendefinisikan fakta/variabel grup Ansible dalam file inventaris Anda dan mengaksesnya dari buku pedoman Ansible Anda. Saya juga akan menunjukkan cara mendefinisikan fakta/variabel grup dalam file terpisah.

Pertama, buka tuan rumah file inventaris dengan perintah berikut:

$ nano host

Jika Anda memiliki grup tuan rumah grup 1, kemudian Anda menambahkan fakta/variabel grup untuk grup host itu di a grup1:vars bagian dari file inventaris Anda.

[grup 1]

[grup1:vars]
variabel1=nilai1
variabel2=nilai2

Misalnya, untuk menambahkan fakta/variabel grup nama domain dan database_backends Untuk jaring grup host, Anda dapat mengetikkan baris yang ditandai di file inventaris Anda.

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyimpan file inventaris.

Untuk mencetak dan menguji apakah kami dapat mengakses fakta grup, buat buku pedoman baru print_group_facts.yaml dalam buku pedoman/ direktori sebagai berikut:

$ nano buku pedoman/print_group_facts.yaml

Ketik baris berikut di . Anda print_group_facts.yaml mengajukan.

- host: web
pengguna: mungkin
tugas:
- nama: Cetak fakta grup
debug:
msg: 'Nama Domain: domain_name Latar Belakang Basis Data: database_backend'

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan print_group_facts.yaml mengajukan.

Sekarang, jalankan print_group_facts.yaml buku pedoman sebagai berikut:

$ buku pedoman playbook yang memungkinkan/print_group_facts.yaml

Seperti yang Anda lihat, tuan rumah di jaring grup dapat mengakses nama domain dan database_backend kelompok fakta/variabel.

Sekarang, mari bersihkan file inventaris dan lihat cara menambahkan fakta/variabel grup dalam file terpisah.

Pertama, buka tuan rumah berkas inventaris sebagai berikut:

$ nano fakta

Hapus garis yang ditandai dari tuan rumah file inventaris. Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan tuan rumah file inventaris.

Saat kami menambahkan variabel grup untuk jaring grup host, buat file baru jaring (sama dengan nama grup) di grup_vars/ direktori sebagai berikut:

$ nano group_vars/web

Untuk menambahkan fakta grup nama domain dan database_backend Untuk jaring grup host, tambahkan baris berikut di in group_vars/web mengajukan.

domain_name: web.linuxhint.com
database_backend: pgsql

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan group_vars/web mengajukan.

Untuk memeriksa apakah host di jaring grup dapat mengakses fakta grup, jalankan print_group_facts.yaml buku pedoman sebagai berikut:

$ buku pedoman playbook yang memungkinkan/print_group_facts.yaml

Seperti yang Anda lihat, tuan rumah di jaring grup dapat mengakses nama domain dan database_backend kelompok fakta/variabel.

Bekerja dengan Fakta Tuan Rumah yang Mungkin:

Di bagian ini, saya akan menunjukkan kepada Anda bagaimana mendefinisikan fakta/variabel host Ansible dalam file inventaris Anda dan mengaksesnya dari buku pedoman Ansible Anda. Saya juga akan menunjukkan cara mendefinisikan fakta/variabel host dalam file terpisah.

Pertama, buka tuan rumah file inventaris dengan perintah berikut:

$ nano host

Anda dapat menambahkan fakta/variabel host setelah nama DNS atau alamat IP host di file inventaris Anda sebagai berikut:

www.domain1.com      variable1=value1      variable2=value2
192.168.22.2         variabel1=nilai3       variabel2=nilai4

Misalnya, Anda dapat menambahkan fakta/variabel host nama domain dan database_backend untuk tuan rumah vm3.simpul.com dan vm4.simpul.com, seperti yang ditandai pada tangkapan layar di bawah ini.

Perhatikan bahwa nilai nama domain dan database_backend fakta/variabel berbeda untuk setiap host.

Setelah Anda selesai menambahkan fakta/variabel host, tekan + X, diikuti oleh kamu dan untuk menyelamatkan tuan rumah file inventaris.

Karena saya telah menambahkan fakta/variabel yang sama seperti pada contoh kelompok fakta/variabel, kita dapat menggunakan print_group_facts.yaml pedoman untuk menguji aksesibilitas fakta/variabel ini juga.

Jalankan print_group_facts.yaml buku pedoman sebagai berikut:

$ buku pedoman playbook yang memungkinkan/print_group_facts.yaml

Seperti yang Anda lihat, fakta/variabel host dapat diakses oleh host yang ditentukan. Nilainya juga berbeda untuk setiap host.

Karena masing-masing host berada di baris terpisah di file inventaris saya, saya dapat dengan mudah menambahkan fakta/variabel host di file inventaris saya. Namun, jika Anda menggunakan rentang untuk menentukan host di file inventaris Anda seperti yang ditandai pada tangkapan layar di bawah, Anda tidak dapat menambahkan fakta/variabel host seperti itu.

Anda dapat menambahkan fakta/variabel host dalam file terpisah, seperti yang telah Anda lakukan untuk fakta/variabel global dan grup.

Untuk menambahkan fakta/variabel host untuk for vm5.simpul.com tuan rumah, buat file baru vm5.simpul.com (sama dengan nama DNS host) di host_vars/ direktori sebagai berikut:

$ nano host_vars/vm5.simpul.com

Anda dapat menambahkan fakta/variabel host db_port dan db_name untuk tuan rumah vm5.simpul.com dengan baris berikut.

db_port: 3306
db_name: demo1

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan vm5.simpul.com mengajukan.

Dengan cara yang sama, untuk menambahkan fakta/variabel host untuk host vm6.simpul.com, buat file baru vm6.simpul.com dalam host_vars/ direktori sebagai berikut:

$ nano host_vars/vm6.simpul.com

Anda dapat menambahkan fakta/variabel host db_port dan db_name untuk tuan rumah vm6.simpul.com dengan baris berikut.

db_port: 8877
db_name: aplikasi1

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan vm6.simpul.com mengajukan.

Untuk mencetak dan menguji apakah kita dapat mengakses fakta/variabel host, buat buku pedoman baru print_host_facts.yaml dalam buku pedoman/ direktori sebagai berikut:

$ nano buku pedoman/print_host_facts.yaml

Sekarang, ketik baris berikut di print_host_facts.yaml mengajukan.

- host: database
pengguna: mungkin
tugas:
- nama: Cetak fakta tuan rumah
debug:
msg: 'Nama Basis Data: db_name Port Basis Data: db_port'

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan print_host_facts.yaml mengajukan.

Untuk memeriksa apakah tuan rumah vm5.simpul.com dan vm6.simpul.com dapat mengakses fakta/variabel host, jalankan print_host_facts.yaml buku pedoman sebagai berikut:

$ buku pedoman playbook yang memungkinkan/print_host_facts.yaml

Seperti yang Anda lihat, tuan rumah vm5.simpul.com dan vm6.simpul.com dapat mengakses db_name dan db_port fakta/variabel tuan rumah.

Menyatukan Semuanya: Fakta yang Mungkin Diutamakan

Di bagian ini, saya akan berbicara tentang prioritas fakta/variabel yang mungkin. Jadi, mari kita mulai.

Sebelum kita mulai, mari kita bersihkan file inventaris.

Buka tuan rumah file inventaris dengan perintah berikut:

$ nano host

Hapus bagian yang ditandai dari file inventaris.

Beginilah tampilan file inventaris Anda pada saat ini.

Sekarang, tambahkan baris yang ditandai di file inventaris Anda. Baris-baris ini menambahkan fakta/variabel global fact_scope dan Pelabuhan.

Kemudian, tambahkan garis yang ditandai di file inventaris Anda. Baris ini menambahkan fact_scope dan Pelabuhan fakta/variabel untuk host di basis data kelompok.

Terakhir, tambahkan fact_scope dan Pelabuhan fakta/variabel tuan rumah untuk vm3.simpul.com dan vm4.simpul.com host, seperti yang ditandai pada tangkapan layar di bawah ini.

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyimpan file inventaris.

Untuk mencetak nilai fakta/variabel global, grup, dan host, buat buku pedoman baru fakta_preendensi.yaml dalam buku pedoman/ direktori sebagai berikut:

$ nano playbook/fact_precedence.yaml

Ketik baris berikut di fact_precedence.yaml mengajukan.

- tuan rumah: semua
pengguna: mungkin
tugas:
- nama: Cetak semua fakta
debug:
msg: 'Cakupan Fakta: fact_scope    Port: port'

Setelah selesai, tekan + X diikuti oleh kamu dan untuk menyelamatkan fact_precedence.yaml mengajukan.

Untuk mencetak fakta/variabel global, grup, dan host, jalankan fact_precedence.yaml buku pedoman sebagai berikut:

$ playbook-playbook yang memungkinkan/fact_precedence.yaml

Seperti yang Anda lihat, fakta/variabel global, grup, dan host dicetak.

Perhatikan bahwa fakta/variabel grup menggantikan fakta/variabel global (1). Juga, perhatikan bahwa fakta/variabel host menggantikan grup dan fakta/variabel global (2).

Fakta/variabel yang didahulukan dari Ansible adalah sebagai berikut:

Fakta tuan rumah > Fakta grup > Fakta global

Kesimpulan:

Setelah membaca artikel ini, Anda seharusnya dapat bekerja dengan nyaman dengan fakta/variabel global, grup, dan host Ansible. Ingat prioritas fakta kustom Ansible. Ini akan membantu Anda men-debug buku pedoman Ansible Anda dengan lebih mudah.

Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...
Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...