GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Ansible di Ubuntu

Ansible adalah alat sumber terbuka yang memungkinkan Anda untuk menyediakan, mengonfigurasi, mengelola, dan menyebarkan aplikasi. Ini membantu untuk menjalankan infrastruktur sebagai kode, pada dasarnya alat otomatisasi. Ansible berjalan di sistem Linux, Unix-like, dan Windows. Ini adalah alat gratis yang ditulis dengan Python.

Menggunakan Ansible, otomatisasi dan pengendalian sebagian besar server disederhanakan. Hal ini membuat admin sistem atau teknisi DevOps mengelola semua server dari satu node kontrol.

Tidak seperti Chef and Puppet, Ansible tidak memerlukan perangkat lunak khusus untuk diinstal pada node. Ansible menggunakan SSH untuk menjalankan tugas dan file YAML untuk menentukan informasi penyediaan.

Tutorial ini akan menunjukkan cara menginstal ansible di Ubuntu 20.04 dan mempelajari dasar-dasarnya.

Node Kontrol dan Host yang Memungkinkan

Node kontrol yang memungkinkan adalah komputer yang telah diinstal dan mengontrol satu atau lebih host jarak jauh. Node kontrol berkomunikasi dengan host atau node melalui SSH menggunakan alat baris perintah atau skrip konfigurasi (playbook).

Host atau node Terkelola adalah perangkat jaringan atau server yang memungkinkan untuk dikelola. Ansible menyederhanakan operasi dengan menggunakan SSH, sehingga mesin host hanya memerlukan layanan SSH berjalan dan port terbuka.

Di bagian berikut, kita mempelajari cara menyiapkan node kontrol dan mengambil informasi dari host.

Persyaratan

  • Satu simpul kontrol dengan pasangan kunci ssh
  • Satu atau lebih host - server jarak jauh dengan kunci publik ssh ditambahkan

Untuk demonstrasi, kami akan menggunakan mesin Ubuntu 20.04 untuk kedua tujuan.

Instal Ansible di Ubuntu

Komponen yang memungkinkan dipasang pada node kontrol. Perintah berikut untuk menginstal Ansible di Ubuntu.

Pertama, dapatkan daftar terbaru semua paket dari sumbernya:

$ sudo apt update

Sekarang untuk menginstal yang memungkinkan, ketik:

$ sudo apt install ansible

Siapkan node kontrol dan host

Direkomendasikan untuk membuat pengguna non-root dengan hak sudo pada node kontrol Ansible. Kemudian siapkan pasangan kunci SSH untuk pengguna tersebut.

Buat pengguna non-root baru:

$ sudo adduser controller

Kemudian, Anda harus menetapkan sudo izin ke controller pengguna:

$ sudo usermod -aG sudo controller

Sekarang, Anda dapat login ke controller sesi pengguna dan buat kunci SSH:

$ su - controller
$ ssh-keygen

Keluaran:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/controller/.ssh/id_rsa): 
Created directory '/home/controller/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/controller/.ssh/id_rsa
Your public key has been saved in /home/controller/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:R033P2ygbVuZv5jJdRbIZtaPG8Af7ZFL2pE9vbzQgP0 controller@linoxide
The key's randomart image is:
+---[RSA 3072]----+
|            . .  |
|           o . . |
|          . ..  .|
|         . .* =.O|
|        S .oo@.^=|
|         .  =o%+@|
|             ++E*|
|            . *++|
|             =.o |
+----[SHA256]-----+

Kita harus mengaktifkan SSH tanpa kata sandi dari Ansible Control Node ke setiap host. Pada dasarnya, kita harus menyalin kunci publik node kontrol ke file otor_keys di setiap host.

Dalam tutorial ini, kita akan menggunakan dua host yang memungkinkan:host1@ip_address_1 dan host2@ip_address_2 .

Pada node kontrol Ansible, jalankan perintah berikut untuk menyalin kunci publik ke server host:

$ ssh-copy-id host1@ip_address_1
$ ssh-copy-id host2@ip_address_2

Menyiapkan File Inventaris

Ansible menggunakan inventory file untuk menyimpan informasi tentang server jarak jauh (host) yang dikelola oleh Ansible Control Node. Tuan rumah dapat diatur ke dalam grup atau subgrup.

File inventaris default yang memungkinkan terletak di /etc/ansible/hosts , tetapi Anda dapat membuat file inventaris di lokasi mana pun dan Anda harus menunjukkan jalur ke file inventaris Anda menggunakan -i parameter saat menjalankan perintah Ansible.

Sekarang, Anda dapat membuka file inventaris dengan editor favorit Anda dan memodifikasinya sebagai berikut:

$ sudo vim /etc/ansible/hosts

Perhatikan bahwa ganti IP di bawah ini dengan alamat IP dari host Ansible Anda.

[servers]
server1 ansible_host=178.0.113.111
server2 ansible_host=178.0.113.112

Verifikasi inventaris dengan perintah berikut:

$ ansible-inventory --list -y

Keluaran:

all:
  children:
    servers:
      hosts:
        server1:
          ansible_host: 178.0.113.111
        server2:
          ansible_host: 178.0.113.112
    ungrouped: {}

Menguji koneksi

Saatnya untuk memeriksa apakah Ansible dapat terhubung ke server jarak jauh. Anda dapat menggunakan -u argumen untuk menentukan pengguna jarak jauh di server. Misalnya:

$ ansible all -m ping -u root

Perintah menggunakan ping yang memungkinkan modul untuk memeriksa konektivitas dari Ansible Control Node ke server jarak jauh.

server1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
server2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

Saat Anda menerima pong membalas dari server jarak jauh, Anda dapat menjalankan perintah dan buku pedoman yang memungkinkan di server tersebut.

Menjalankan Ad-hoc perintah pada host jarak jauh yang memungkinkan, misalnya:

$ ansible all -a "df -h" -u root

Keluaran:

server1 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           746M  2.3M  744M   1% /run
/dev/sda1        20G  4.7G   15G  25% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/loop1      130M  130M     0 100% /snap/google-cloud-sdk/161
/dev/loop0       32M   32M     0 100% /snap/snapd/10238
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           746M     0  746M   0% /run/user/1001
server2 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           746M  1.7M  745M   1% /run
/dev/sda1        20G  4.2G   16G  22% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/loop0       56M   56M     0 100% /snap/core18/1932
/dev/loop1       32M   32M     0 100% /snap/snapd/10492
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           746M     0  746M   0% /run/user/1001

Kesimpulan

Ansible sekarang dimiliki oleh Redhat dan membawa banyak perbaikan pada kodenya. Ansible Tower adalah Ansible versi perusahaan tempat Anda dapat mengelola server dari UI berbasis web modern.

Dalam tutorial ini, Anda telah belajar cara menginstal ansible di Ubuntu dan pengaturan dasar melalui contoh. Terima kasih telah membaca dan silakan tinggalkan saran Anda di bagian komentar di bawah.


Ubuntu
  1. Cara Menginstal dan Mengonfigurasi Ansible di Ubuntu 20.04

  2. Cara menginstal Ansible di Ubuntu Server 21.04

  3. Cara Menginstal Ansible di Ubuntu 18.04 LTS

  1. Cara Menginstal R di Ubuntu 20.04

  2. Cara Menginstal Go di Ubuntu 18.04

  3. Cara Menginstal R di Ubuntu 18.04

  1. Cara Menginstal AWX yang Mungkin di Ubuntu 20.04 LTS

  2. Cara Menginstal Ansible di Ubuntu 20.04 LTS / 21.04

  3. Cara Menginstal Ansible AWX 17.1.0 di Ubuntu 20.04