GNU/Linux >> Belajar Linux >  >> Linux

Cara menginstal dan mengkonfigurasi Ansible di Redhat Enterprise Linux 8

Tutorial ini mencakup langkah demi langkah instalasi dan konfigurasi Ansible di Redhat Enterprise Linux 8.
Ansible adalah sistem manajemen konfigurasi Open Source terkemuka. Ini memudahkan administrator dan tim operasi untuk mengontrol ribuan server dari mesin pusat tanpa menginstal agen di dalamnya.

Dalam tutorial ini Anda akan mempelajari:

  • Ikhtisar yang Mungkin
  • Instal dan Konfigurasi Python
  • Setel SSH tanpa kata sandi
  • Instal Memungkinkan
  • Menguji dan Mengelola Kemungkinan

Arsitektur yang Mungkin.

Persyaratan dan Konvensi Perangkat Lunak yang Digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan
Sistem Red Hat Enterprise Linux 8
Perangkat Lunak Python3, Memungkinkan
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo perintah.
Konvensi # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa

Ikhtisar yang Mungkin

Ansible adalah mesin otomatisasi TI yang sangat sederhana yang mengotomatiskan penyediaan cloud, manajemen konfigurasi, penerapan aplikasi, orkestrasi intra-layanan, dan banyak kebutuhan TI lainnya.

Dirancang untuk penerapan multi-tingkat sejak hari pertama, Ansible memodelkan infrastruktur TI Anda dengan menjelaskan bagaimana semua sistem Anda saling terkait, bukan hanya mengelola satu sistem pada satu waktu.

Itu tidak menggunakan agen dan tidak ada infrastruktur keamanan khusus tambahan, sehingga mudah untuk diterapkan – dan yang paling penting, menggunakan bahasa yang sangat sederhana (YAML, dalam bentuk Ansible Playbooks) yang memungkinkan Anda untuk menggambarkan pekerjaan otomatisasi Anda dengan cara yang mendekati bahasa Inggris biasa. Ansible bekerja dengan menghubungkan ke node Anda dan mengeluarkan program kecil, yang disebut “Modul yang mungkin” ke node tersebut.
Program ini ditulis untuk menjadi model sumber daya dari keadaan sistem yang diinginkan. Ansible kemudian mengeksekusi modul-modul ini (melalui SSH secara default), dan menghapusnya setelah selesai.

Pustaka modul Anda dapat berada di mesin apa pun, dan tidak diperlukan server, daemon, atau database. Biasanya Anda akan bekerja dengan program terminal favorit, editor teks, dan mungkin sistem kontrol versi untuk melacak perubahan pada konten Anda.

Instal dan Konfigurasi Python

Versi default Python di RHEL 8 adalah Python 3.6. Tetapi Python 2 tetap tersedia di RHEL 8. Jika karena alasan apa pun Python 3.6 tidak ada dalam instalasi Red Hat Enterprise Linux 8, Anda harus menginstalnya secara manual.

Python 3.6 dapat diinstal pada RHEL 8 dengan menjalankan perintah di bawah ini pada terminal Anda. Python perlu diinstal pada Server Ansible dan semua host/klien yang akan terhubung.

# yum install python3
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 8:59:59 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Dependencies resolved.
======================================================================================================================================================
 Package                 Arch                  Version                                     Repository                                            Size
======================================================================================================================================================
Installing:
 python36                x86_64                3.6.6-17.el8+2102+a4bbd900                  rhel-8-for-x86_64-appstream-beta-rpms                 22 k
Enabling module streams:
 python36                                      3.6                                                                                                   

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 22 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm                                                                        6.0 kB/s |  22 kB     00:03    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 6.0 kB/s |  22 kB     00:03     
warning: /var/cache/dnf/rhel-8-for-x86_64-appstream-beta-rpms-64aba9de5ea7e089/packages/python36-3.6.6-17.el8+2102+a4bbd900.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)                                                         3.2 kB/s | 3.3 kB     00:01    
Importing GPG key 0xF21541EB:
 Userid     : "Red Hat, Inc. (beta key 2) <[email protected]>"
 Fingerprint: B08B 659E E86A F623 BC90 E8DB 938A 80CA F215 41EB
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
Is this ok [y/N]: y
...
Installed:
  python36-3.6.6-17.el8+2102+a4bbd900.x86_64                                                                                                          

Complete!

Untuk menggunakan Python 3, cukup ketik python3 di terminal.

Anda seharusnya mencatat bahwa untuk menggunakan Python 3, perintahnya adalah python3 dan python2 untuk Python 2. Bagaimana jika aplikasi Anda dikonfigurasi untuk merujuk ke python yang tidak tersedia di seluruh sistem. Anda akan mendapatkan kesalahan bash di bawah ini.

# python
-bash: python: command not found

Anda dapat menggunakan mekanisme alternatif untuk mengaktifkan perintah python yang tidak berversi di seluruh sistem, dan mengaturnya ke versi tertentu. Untuk mengatur Python 3 sebagai default jalankan perintah berikut.

# alternatives --set python /usr/bin/python3

Menjalankan python -V harus menampilkan versi default Python yang dikonfigurasi:

#python -V
Python 3.6.6

atau dengan memulai Python sebuah konsol:

# python
Python 3.6.6 (default, Oct 16 2018, 01:53:53) 
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Setel SSH tanpa kata sandi

Buat pengguna ansible di semua host:

# useradd ansible ;  echo "" | passwd --stdin ansible

Buat entri yang diperlukan dalam file sudoers /etc/sudoers untuk pengguna yang memungkinkan untuk akses sudo tanpa kata sandi:

ansible ALL=(ALL) NOPASSWD: ALL

Sekarang buat kunci SSH di Server yang Mungkin:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ansible/.ssh/id_rsa): 
Created directory '/home/ansible/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/ansible/.ssh/id_rsa.
Your public key has been saved in /home/ansible/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:wNt/uNePRkrV+Hhv/DJgteXK2BjOGvPbr9yNigXM2EM ansible@rhel8-ansible-server
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|     .           |
|      o   E    o |
|       + *    + o|
|      . S *  o * |
|         . += + +|
|          ==o@ +.|
|           OBoO+=|
|          +o++*BB|
+----[SHA256]-----+

Salin ke server jarak jauh sebagai pengguna yang memungkinkan:

$ ssh-copy-id ansible@rhel8-ansible-client
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ansible/.ssh/id_rsa.pub"
The authenticity of host 'rhel8-ansible-client (192.168.1.109)' can't be established.
ECDSA key fingerprint is SHA256:e+NfCeK/kvnignWDHgFvIkHjBWwghIIjJkfjygR7NkI.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ansible@rhel8-ansible-client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'ansible@rhel8-ansible-client'"
and check to make sure that only the key(s) you wanted were added.

Instal Memungkinkan

Setelah Python diinstal, lanjutkan untuk menginstal Pip yang merupakan pengelola paket Python yang akan kita gunakan untuk menginstal Ansible:

# yum -y install python3-pip
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Last metadata expiration check: 9:03:18 ago on Sun 03 Feb 2019 11:20:51 PM +04.
Package python3-pip-9.0.3-4.el8.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Setelah kita memiliki pip3 diinstal, gunakan untuk menginstal Ansible di sistem Manajemen Ansible sebagai pengguna yang memungkinkan.

$ pip3 install ansible --user

Anda dapat melihat Ansible diinstal menggunakan perintah berikut:

$ ansible --version
ansible 2.7.6
  config file = None
  configured module search path = ['/home/ansible/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ansible/.local/lib/python3.6/site-packages/ansible
  executable location = /home/ansible/.local/bin/ansible
  python version = 3.6.6 (default, Oct 16 2018, 01:53:53) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Menguji dan Mengelola

Buat file inventaris Ansible, defaultnya adalah /etc/ansible/hosts tetapi Anda dapat menyalin file host di direktori home dari pengguna yang memungkinkan. Anda juga dapat membuat grup host jarak jauh seperti di bawah ini di file host.


[web]
192.168.1.105
[db]
192.168.1.107
[app]
192.168.1.108
192.168.1.109
192.168.1.110

Anda dapat menggunakan modul ping untuk menguji Ansible dan setelah berhasil dijalankan, Anda dapat melihat output di bawah ini.

$ ansible -i hosts 192.168.1.109 -m ping
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Opsi -i digunakan untuk menyediakan jalur ke file inventaris. Anda akan mendapatkan hasil yang sama untuk nama grup “aplikasi”.

$ ansible -i hosts app -m ping
192.168.1.108 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.109 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
192.168.1.110 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Kesimpulan

Kesederhanaan dan kemampuan Ansible untuk mengurangi kerumitan alat lain telah menjadikannya pelamar yang andal untuk lingkungan Anda. Perhatian utamanya adalah pada keamanan dan keandalan. Ini menggunakan OpenSSH untuk transportasi, dan bahasanya dirancang untuk dapat diaudit bahkan oleh mereka yang tidak terbiasa dengan program ini. Ansible cukup cocok untuk mengelola penyiapan kecil dengan beberapa instance serta lingkungan perusahaan.


Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

  2. Cara Menginstal dan Mengonfigurasi Ansible di Rocky Linux/CentOS 8

  3. Cara Menginstal dan Mengonfigurasi EMC PowerPath di Linux

  1. Instal Dan Konfigurasikan Ansible Di Linux

  2. Cara Menginstal dan Mengonfigurasi TensorFlow di Rocky Linux 8

  3. Cara Menginstal dan Mengkonfigurasi Memcached di Ubuntu Linux

  1. Cara Menginstal dan Mengonfigurasi Redis di Sistem Linux

  2. Cara Menginstal dan Mengkonfigurasi Server DNS di Linux

  3. Cara Menginstal dan Mengonfigurasi ZSH di Distribusi Linux