Ini adalah artikel kedua dalam seri menggunakan peran sistem Ansible. Pada artikel sebelumnya, saya memperkenalkan Anda pada Ansible dan peran sistem dan memberikan beberapa contoh. Peran sistem membantu Anda mengelola tugas tingkat OS seperti SELinux, mengelola pengaturan jaringan, NTP, dll. Dalam artikel itu, Anda melihat contoh di mana Anda mengubah mode SELinux menggunakan system.role-selinux
peran. Dalam artikel ini, saya melihat peran jaringan secara mendetail sehingga Anda dapat mengubah koneksi jaringan mesin jarak jauh dengan satu buku pedoman.
NetworkManager mengelola pengaturan jaringan seperti mengkonfigurasi antarmuka jaringan serta koneksi. Pada dasarnya, ini adalah daemon yang memantau dan mengelola pengaturan jaringan. Ini menggunakan file di /etc/sysconfig/network-scripts
untuk menyimpannya. nmcli
adalah utilitas yang digunakan untuk membuat dan mengedit file koneksi dari perintah shell. Untuk membuat daftar koneksi dari mesin lokal Anda, gunakan:
$ nmcli dev status
DEVICE TYPE STATE CONNECTION
eno0 ethernet connected eno0
eno1 ethernet disconnected ---
virbr0 bridge connected virbr0
Pada output di atas, Anda dapat melihat berbagai kolom. Kolom pertama, PERANGKAT , menunjukkan antarmuka jaringan. JENIS kolom menunjukkan jenis koneksi apa ini. NEGARA kolom menunjukkan status koneksi, dan yang terakhir, CONNECTION , adalah kumpulan setelan yang dapat dikonfigurasi untuk perangkat. Setiap koneksi memiliki nama atau ID yang mengidentifikasinya.
Untuk menampilkan daftar semua koneksi, Anda dapat menggunakan:
$ nmcli con show
Menggunakan nmcli
utilitas, Anda dapat menambahkan koneksi jaringan dan menetapkan alamat IPv4 atau IPv6 untuk membuat koneksi jaringan. Namun, seperti yang Anda ketahui, Anda ingin mengotomatiskan tugas manual yang biasanya Anda lakukan dengan nmcli
. Anda ingin mengelola node jaringan dengan menggunakan buku pedoman Ansible.
Di Ansible, Anda memiliki tiga modul penting yang membantu Anda mengelola node:Layanan, daemon, dan pengaturan sistem. Anda juga dapat menggunakan modul ini untuk mengelola jaringan. Pada artikel sebelumnya, saya membahas peran sistem Ansible. Dalam peran sistem, Anda memiliki rhel-system-roles.network
role, yang merupakan cara termudah untuk mengonfigurasi dan mengelola setelan jaringan pada node terkelola.
Mulailah dengan menggunakan sistem jaringan ini peran untuk mengonfigurasi pengaturan jaringan pada node yang dikelola.
Di sini Anda memiliki server1.example.com
mesin yang dikelola. Saya sudah membuat entri dari node terkelola di file inventaris.
Catatan :Pastikan node terkelola Anda memiliki dua koneksi ethernet karena menambahkan koneksi baru. Antarmuka jaringan kedua itu harus tersedia.
Sebelum melakukan operasi apa pun, konfirmasikan bahwa layanan NetworkManager dimulai dan diaktifkan pada node terkelola Anda. Lakukan ini dengan menggunakan buku pedoman. Untuk tugas ini, gunakan modul layanan di service.yml
berkas.
---
- name: playbook for starting and enabling the NetworkManager
hosts: server1.example.com
tasks:
- Name: start the service
service:
name: NetworkManager
state: started
enabled: true
Jalankan buku pedoman ini:
$ ansible-playbook service.yml
Jika playbook berhasil berjalan tanpa kesalahan, layanan dimulai dan diaktifkan pada mesin node terkelola.
Nama antarmuka sekunder adalah eno1 sehingga Anda dapat menemukan alamat MAC antarmuka ini. Karena Anda menggunakan alamat MAC ini, buku pedoman Anda akan menemukan antarmuka sekunder. Tampilkan alamat MAC eno1 menggunakan:
$ ip a
Alamat MAC server1.example.com
adalah 52:54:00:fe:2f:b8 . Gunakan ini di buku pedoman.
Sekarang, setelah tugas layanan, instal system-roles
pada pengontrol:
$ yum install rhel-system-roles
Perintah ini akan menginstal semua peran sistem di direktori default peran tersebut.
Sekarang tulis buku pedoman untuk menambahkan koneksi baru pada node terkelola:
---
- name: playbook for configuring second interface
hosts: server1.example.com
vars:
target_mac: “52:54:00:fe:2f:b8”
network_connection:
- name: static-network
type: ethernet
mac: “{{ target_mac }}”
state: up
ip :
dhcp: no
address:
- 192.168.0.5/24
roles:
- rhel-system-roles.network
Ini adalah buku pedoman yang lengkap. Saya akan menjelaskan setiap parameter langkah demi langkah untuk Anda:
target_mac - Ini adalah alamat MAC dari antarmuka ethernet kedua. Ini akan membantu menemukan antarmuka yang benar pada node terkelola.
koneksi_jaringan - Variabel ini berisi informasi untuk koneksi baru:
- nama:nama koneksi baru
- jenis:jenis sambungan baru
- mac:variabel target_mac
- status:aktifkan koneksi dengan menggunakan
up
pilihan - ip:nonaktifkan opsi DHCP dan tetapkan alamat IP menggunakan parameter ini
Saya menggunakan variabel yang diperlukan untuk menjalankan peran sistem jaringan. Sekarang jalankan buku pedoman ini:
$ ansible-playbook networkconfiguration.yml
Playbook ini akan mengonfigurasi koneksi jaringan statis dengan alamat IP statis.
Untuk memeriksa pengaturan, masuk ke server1.example.com
dan konfirmasikan koneksi yang baru ditambahkan:
$ nmcli connection show
NAME UUID TYPE DEVICE
eno0 adc52c70-… ethernet eno0
static-network 1be30687-… ethernet eno1
virbr0 0a9de672-… bridge virbr0
Coba ping
alamat IP jaringan-statis koneksi, dan jika berhasil, maka Anda berhasil menambahkan koneksi jaringan baru.
Periksa apakah koneksi baru berhasil ditambahkan atau tidak menggunakan perintah ad hoc dari mesin pengontrol:
$ ansible server1.example.com -m shell -a 'nmcli con show'
Perintah ini akan menampilkan output yang sama seperti yang ditunjukkan pada langkah sebelumnya.
Menutup
Artikel ini menunjukkan bahwa Anda dapat mengonfigurasi koneksi jaringan menggunakan peran sistem yang memungkinkan. Playbook kecil ini mengurangi tugas manual dan mengonfigurasi koneksi jaringan dari banyak mesin sekaligus hanya dengan membuat grup host. Peran jaringan sistem ini memeriksa banyak parameter saat menjalankan playbook, mengonfirmasi bahwa NetworkManager sedang berjalan, dan menguji konektivitas di playbook itu sendiri. Ini adalah contoh yang bagus tentang bagaimana Anda dapat menggunakan peran sistem untuk mengotomatiskan konfigurasi pada sistem Anda.