Selamat datang ke Hari 30 siri "50 Alat DevOps dalam 50 Hari" kami! Hari ini, kita akan meneroka Ansible, salah satu alat yang paling penting dalam kit alat DevOps. Blog ini akan memperkenalkan anda kepada asas Ansible, memecahkan komponen utamanya dan menunjukkan kepada anda cara untuk bermula dengan contoh mudah. Kami akan memastikan perkara ini mudah, menjadikan ini titik permulaan yang sempurna untuk pemula.
Ansible ialah alat automasi sumber terbuka yang memudahkan tugas seperti pengurusan konfigurasi, penggunaan aplikasi dan orkestrasi. Ia direka bentuk untuk ringkas tetapi berkuasa, membolehkan anda mengautomasikan tugasan berulang dan mengurus infrastruktur anda dengan lebih cekap.
Agentless: Ansible tidak memerlukan sebarang ejen dipasang pada sistem jauh, yang mengurangkan overhed.
Buku Play YAML yang boleh dibaca manusia: Ansible menggunakan YAML (Bahasa Penanda Lagi) untuk menulis buku main, yang mudah dibaca dan ditulis.
Idempoten: Anda boleh menjalankan buku main yang sama beberapa kali tanpa perlu risau tentang perubahan yang tidak diingini.
Seni Bina Tanpa Agen: Memandangkan Ansible adalah tanpa ejen, tidak perlu memasang sebarang perisian tambahan pada sistem pelanggan, mengurangkan overhed dan potensi risiko keselamatan.
Sintaks Mudah: Ansible menggunakan YAML untuk buku mainnya, yang mudah dibaca dan ditulis, menjadikannya boleh diakses walaupun kepada mereka yang baru dalam automasi.
Idempotensi: Ansible memastikan keadaan yang diingini tercapai tanpa mengira keadaan semasa. Ini bermakna menjalankan buku main beberapa kali tidak akan menyebabkan isu atau tindakan pendua.
Sokongan Komuniti Luas: Dengan komuniti yang besar dan aktif, Ansible mempunyai banyak peranan, modul dan buku permainan yang boleh digunakan semula dan disesuaikan untuk memenuhi keperluan anda.
Skalabiliti: Sama ada mengurus beberapa pelayan atau beribu-ribu, Ansible berskala dengan baik, menjadikannya sesuai untuk organisasi dari semua saiz.
Inventori: Ini ialah senarai hos (pelayan) yang Ansible uruskan. Inventori boleh menjadi statik (ditakrifkan dalam fail) atau dinamik (dihasilkan oleh skrip).
Modul: Modul ialah tenaga kerja Ansible. Ia dilaksanakan pada hos jauh untuk melaksanakan tugas seperti memasang pakej, menyalin fail atau mengurus perkhidmatan.
Playbook: Playbook ialah konfigurasi, penggunaan dan bahasa orkestra Ansible. Ia ditulis dalam YAML dan menerangkan satu siri tugasan yang akan dilaksanakan pada hos.
Peranan: Peranan membolehkan anda memecahkan buku main kepada komponen boleh guna semula, menjadikannya lebih mudah untuk mengurus dan mengatur projek besar.
Pembolehubah: Pembolehubah digunakan untuk menyimpan nilai yang boleh digunakan semula di seluruh buku permainan. Ia memberikan fleksibiliti dan membolehkan anda menyesuaikan buku main tanpa nilai pengekodan keras.
Pengendali: Pengendali ialah tugas khas yang hanya dijalankan apabila dicetuskan oleh tugasan lain. Ia sering digunakan untuk perkara seperti memulakan semula perkhidmatan.
Mari mulakan dengan memasang Ansible pada nod kawalan anda. Proses pemasangan adalah mudah dan berbeza sedikit bergantung pada sistem pengendalian anda.
Memasang Ansible pada Ubuntu/Debian
sudo apt update sudo apt install ansible -y
Memasang Ansible pada CentOS/RHEL
sudo yum install epel-release -y sudo yum install ansible -y
Mengesahkan Pemasangan
Selepas pemasangan, anda boleh mengesahkan Ansible dipasang dengan betul dengan menjalankan:
ansible --version
Mari buat buku main mudah untuk memasang Nginx pada pelayan jauh. Kami akan mulakan dengan menentukan inventori kami.
Langkah 1: Buat Fail Inventori
Buat fail bernama hos:
[webservers] 34.42.111.35 34.42.111.66
Fail inventori ini mentakrifkan kumpulan yang dipanggil pelayan web yang mengandungi dua pelayan.
Langkah 2: Tulis Playbook
Seterusnya, kami akan menulis buku main untuk memasang dan memulakan Nginx pada pelayan ini.
Buat fail bernama nginx_setup.yml:
--- - name: Install Nginx on web servers hosts: webservers become: yes tasks: - name: Install Nginx apt: name: nginx state: present - name: Start Nginx service service: name: nginx state: started enabled: true
name: A human-readable description of what the playbook or task does.
hosts: Specifies the group of hosts (from the inventory) where the playbook should run.
become: Indicates that Ansible should use elevated privileges (like sudo).
tasks: Lists the steps that Ansible will execute. Here, we’re installing Nginx and ensuring the service is started and enabled on boot.
Step 3: Run the Playbook
To execute the playbook, run the following command:
ansible-playbook -i hosts nginx_setup.yml
This command tells Ansible to run the tasks in nginx_setup.yml on the hosts defined in the hosts inventory file.
Consider a scenario where you need to install a set of packages on multiple servers. Doing this manually would be time-consuming and prone to errors. With Ansible, you can automate this task easily.
Here’s a simple playbook to install multiple packages:
--- - name: Install essential packages hosts: all become: yes tasks: - name: Install packages apt: name: - git - curl - htop state: present
In this playbook, Ansible installs git, curl, and htop on all servers listed in the inventory. The apt module ensures that each package is installed.
Imagine you need to create a new user on multiple servers and assign them to specific groups. Manually performing this task on each server would be tedious. With Ansible, it’s a breeze.
Here’s how you can do it:
--- - name: Create a new user hosts: all become: yes tasks: - name: Create user "devuser" user: name: devuser state: present groups: sudo
This playbook creates a new user devuser on all managed servers and adds them to the sudo group.
Consistency: Ansible ensures that your systems are configured consistently, reducing the risk of configuration drift.
Efficiency: Automating repetitive tasks frees up time for more critical work.
Scalability: Whether managing a handful of servers or thousands, Ansible scales effortlessly.
Flexibility: Ansible’s modular approach allows you to customize and extend its functionality as needed.
Ansible is a powerful yet easy-to-use tool that can dramatically simplify the management of your infrastructure. With just a few lines of code, you can automate complex tasks, ensuring consistency and reliability across your environment. Whether you're setting up servers, deploying applications, or managing configurations, Ansible can help you do it more efficiently.
Tomorrow, we'll dive into more advanced Ansible topics, exploring features that can take your automation to the next level. Stay tuned!
? Make sure to follow me on LinkedIn for the latest updates: Shiivam Agnihotri
Atas ialah kandungan terperinci Bermula dengan Ansible - Panduan Permulaan : Hari hari Siri Alat DevOps. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!