Pendahuluan
Ansible adalah perangkat lunak manajemen dan otomatisasi server sumber terbuka yang memungkinkan Infrastruktur sebagai Kode (IaC). Alat ini memungkinkan penerapan, penyediaan, dan manajemen konfigurasi aplikasi secara sederhana dan efektif.
Ansible Automation Hub mengumpulkan modul dari Red Hat dan mitra bersertifikat. phoenixNAP bangga menjadi bagian dari koleksi konten tepercaya Ansible dengan plugin Bare Metal Cloud. Konsep yang diperkenalkan Ansible ini memungkinkan untuk menginstal penyedia cloud sebagai library tambahan.
Ikuti langkah-langkah dalam panduan ini untuk menginstal modul phoenixNAP BMC Ansible dan pelajari cara menggunakan buku pedoman yang relevan.
Prasyarat
- Dapat dipasang di mesin kontrol
- Python diinstal pada mesin kontrol (tersedia secara default)
Manfaat Menggunakan PNAP BMC Ansible Module
Alat IaC ini dirancang untuk memungkinkan pelanggan menyediakan server Bare Metal Cloud dan melakukan tugas lain menggunakan skrip YAML sederhana disebut buku pedoman. Anda sekarang dapat mengotomatiskan pembuatan server secara efisien dengan penyediaan yang tidak dapat diubah. Selain manfaat dari mengotomatisasi proses TI, bonus lainnya adalah kemampuan untuk menjalankan kembali kode yang sama untuk mengembalikan server ke keadaan semula jika terjadi modifikasi yang tidak diinginkan.
Model ini tidak memiliki mesin master dan slave. Anda menggunakan satu mesin untuk mendorong file, yaitu, menjalankan skrip pada satu atau beberapa host jarak jauh. Tidak ada agen pada node individu yang menarik informasi dari server utama. Modul Bare Metal Cloud tidak memerlukan SSH untuk menjalankan playbook.
Dengan menjadi plugin bersertifikat di Red Hat Ansible Automation Hub, proses pemasangan modul BMC cepat dan selesai menggunakan satu perintah Ansible . Kemudian, Anda dapat menginstruksikan Ansible untuk menjalankan skrip yang berisi kode YAML dengan deskripsi tugas otomatisasi yang ingin Anda lakukan. Modul memastikan untuk mencapai hasil akhir yang Anda tentukan, dan dalam urutan yang benar.
Konten di Ansible Automation Hub didukung oleh Red Hat dan mitranya. Dengan cara ini, bahkan lingkungan yang paling menuntut pun dapat yakin bahwa modul akan memenuhi harapan.
Instal BMC Ansible Module
Sebelum menginstal plugin BMC Ansible, Anda memerlukan permintaan Python paket di mesin Anda. Ini memungkinkan pengiriman berbagai jenis permintaan HTTP.
Untuk memasang permintaan , masukkan:
pip install requests
Kemudian, jalankan perintah Ansible untuk menginstal modul phoenixNAP BMC:
ansible-galaxy collection install phoenixnap.bmc
Setelah instalasi selesai, lihat dokumentasi modul dengan perintah ini:
ansible-doc phoenixnap.bmc.server
Plugin Ansible BMC bergantung pada permintaan API. Semua permintaan BMC API didokumentasikan di Portal Pengembang phoenixNAP.
Buat File Kredensial untuk Otentikasi
Agar berhasil mengautentikasi dengan server otorisasi kami, gunakan jenis pemberian Kredensial Klien.
Di direktori home Anda, buat direktori .pnap dan config.yaml file di dalamnya.
File harus berisi informasi berikut:
clientId: myClientId
clientSecret: myClientSecret
Ganti myClientId dan myClientSecret dengan ID dan rahasia Anda.
Playbook BMC phoenixNAP yang memungkinkan
Menulis buku pedoman Ansible tidak memerlukan keterampilan pengkodean khusus, dan mereka mencakup semua API BMC yang tersedia. Skrip ini ditulis dalam YAML, bahasa serialisasi sederhana yang digunakan saat membuat file konfigurasi. Ansible bekerja dengan memeriksa status server yang sebenarnya dan membandingkannya dengan serangkaian instruksi dalam buku pedoman.
Ketika status tidak cocok dengan hasil akhir yang ditentukan, modul memastikan untuk mengikuti model sumber daya dari skrip untuk mencapai tujuan yang ditetapkan.
Jika Anda menjalankan playbook lebih dari sekali, modul tidak akan melakukan tugas tambahan. Setelah status server BMC yang sebenarnya sesuai dengan tujuan skrip, Anda dapat menjalankan skrip beberapa kali, dan modul tidak akan melakukan tugas apa pun.
Cara Menjalankan BMC Playbook
Nama buku pedoman menunjukkan apa yang dilakukan skrip. Misalnya, playbook_power_off.yml mematikan satu atau beberapa server.
Untuk menjalankan buku pedoman, gunakan sintaks ini:
ansible-playbook playbook_name.yml
Oleh karena itu, untuk mereset server, masukkan:
ansible-playbook playbook_reset.yml
Contoh BMC Playbook
Contoh playbook YAML yang akan kami berikan di bawah ini mirip satu sama lain. Perbedaannya adalah status server yang ingin Anda capai. Satu-satunya file yang sedikit lebih berbeda dari yang lain adalah skrip untuk membuat server.
Setiap buku pedoman harus berisi satu atau lebih nama host atau server_id , serta client_id dan rahasia_klien . Metode yang disukai adalah memasukkan nilai di ~/.pnap/config.yaml file alih-alih di setiap buku pedoman.
Buat Server
Nama buku pedoman:playbook_create.yml
- name: Create new servers for account
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
location: PHX
os: ubuntu/bionic
type: s1.c1.medium
state: present
ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
Server Deprovisioning
Nama buku pedoman:playbook_deprovision.yml
- name: reset servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: absent
Matikan Server
Nama buku pedoman:playbook_power_off.yml
- name: power on servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: powered-off
Nyalakan Server
Nama buku pedoman:playbook_power_on.yml
- name: power on servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: powered-on
Reboot Server
Nama buku pedoman:playbook_reboot.yml
- name: reset servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
state: rebooted
Setel Ulang Server
Nama buku pedoman:playbook_reset.yml
- name: reset servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
hostnames: [my-server-red]
ssh_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
state: reset
Mematikan Server
Nama buku pedoman:playbook_shutdown.yml
Dalam contoh ini, kami menggunakan server_ids bukannya nama host .
- name: shutdown servers
hosts: localhost
gather_facts: false
vars_files:
- ~/.pnap/config.yaml
collections:
- phoenixnap.bmc
tasks:
- server:
client_id: "{{clientId}}"
client_secret: "{{clientSecret}}"
server_ids:
- 5eda71ef674cf47bd2599cfa
state: shutdown