Bermula dengan Ansible - Panduan Permulaan : Hari hari Siri Alat DevOps

王林
Lepaskan: 2024-08-23 06:04:01
asal
1086 orang telah melayarinya

Getting Started with Ansible - The Beginner’s Guide : Day of days DevOps Tools Series

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.

Apa itu Ansible?

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.

Ciri-ciri Utama:

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.

Mengapa Menggunakan Ansible?

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.

Komponen Teras Ansible

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.

Menyediakan Ansible

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
Salin selepas log masuk

Memasang Ansible pada CentOS/RHEL

sudo yum install epel-release -y
sudo yum install ansible -y
Salin selepas log masuk

Mengesahkan Pemasangan
Selepas pemasangan, anda boleh mengesahkan Ansible dipasang dengan betul dengan menjalankan:

ansible --version
Salin selepas log masuk

Menulis Buku Main Ansible Pertama Anda

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
Salin selepas log masuk

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
Salin selepas log masuk

Understanding the Playbook

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
Salin selepas log masuk

This command tells Ansible to run the tasks in nginx_setup.yml on the hosts defined in the hosts inventory file.

Real-Life Scenario: Automating Package Installation

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
Salin selepas log masuk

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.

Real-Life Example: Simplifying User Management

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
Salin selepas log masuk

This playbook creates a new user devuser on all managed servers and adds them to the sudo group.

Benefits of Using Ansible

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.

Conclusion

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan