GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare Ansible su Oracle Linux 8

Ansible è una piattaforma di automazione gratuita e open source utilizzata dagli amministratori di sistema per installare, configurare e fornire più sistemi contemporaneamente. Al giorno d'oggi gli ambienti IT sono molto complessi e spesso necessitano di una scalabilità estremamente rapida. L'automazione semplifica il lavoro degli amministratori di sistema e degli sviluppatori e consente loro di concentrare l'attenzione su altre attività che aggiungono valore a un'organizzazione. Ansible è molto semplice da configurare e utilizzare; non sono necessarie competenze di programmazione per utilizzare Ansible.

In questo post, ti mostreremo come installare Ansible su Oracle Linux 8.

Prerequisiti

  • Server che esegue Oracle Linux 8 sulla piattaforma Atlantic.Net Cloud. Questo sarà il tuo Nodo Gestore
  • Un secondo server che esegue Oracle Linux 8 sulla piattaforma Atlantic.Net Cloud. Questo sarà il tuo nodo di lavoro
  • Una password di root configurata sul tuo server

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Oracle Linux 8 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Una volta effettuato l'accesso al server, eseguire il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.

dnf update -y

Passaggio 2:imposta un'autenticazione basata su chiave SSH

Prima di iniziare, dovrai configurare un accesso senza password SSH tra il nodo di controllo Ansible e il nodo manager. Puoi farlo configurando un'autenticazione basata su chiave SSH.

Innanzitutto, genera una chiave privata e pubblica utilizzando il seguente comando:

ssh-keygen -t rsa

Dovresti vedere il seguente output:

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

Quindi, copia la chiave pubblica generata nei nodi gestiti Ansible utilizzando il comando seguente:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Dovresti vedere il seguente output:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ECDSA key fingerprint is SHA256:4K4sZbu1hLHzDGlwmWAJng6nDbxDqp6hnv65KDaOAn0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? 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
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]<server-ip>'"
and check to make sure that only the key(s) you wanted were added.

Ora, esegui il comando seguente per testare l'accesso senza password SSH:

ssh [email protected]

Passaggio 3:installazione di Ansible su Oracle Linux 8

Ora dovrai installare il pacchetto Ansible sul nodo di controllo Ansible. Per impostazione predefinita, il pacchetto Ansible non è disponibile nel repository predefinito di Oracle Linux 8, quindi dovrai installarlo dal repository EPEL.

Innanzitutto, installa il repository EPEL utilizzando il seguente comando:

dnf install -y epel-release

Quindi, installa il pacchetto Ansible utilizzando il seguente comando:

dnf install ansible -y

Una volta installato Ansible, verifica la versione di Ansible con il seguente comando:

ansible --version

Dovresti vedere il seguente output:

ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Nov 10 2021, 06:50:23) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3.0.2)]

Fase 4:configurare gli host Ansible

Successivamente, dovrai modificare il file di configurazione degli host Ansible e definire il server Linux remoto che desideri gestire.

Puoi modificarlo con il seguente comando:

nano /etc/ansible/hosts

Aggiungi le seguenti righe:

[web]
server1 ansible_ssh_host=<manager-node-ip> ansible_ssh_port=22 ansible_ssh_user=root

[database]
dbserver1 ansible_ssh_host=<worker-node-ip> ansible_ssh_port=22 ansible_ssh_user=root

Salva e chiudi il file quando hai finito.

Quindi, modifica il file di configurazione di Ansible e disabilita gli avvisi di deprecazione e il controllo della chiave host:

nano /etc/ansible/ansible.cfg

Aggiungi la seguente riga sotto [predefiniti]:

deprecation_warnings=False
host_key_checking = False

Salva e chiudi il file quando hai finito.

Fase 5:come utilizzare Ansible

A questo punto, Ansible è installato e configurato. Ora dovrai controllare la funzionalità di Ansible utilizzando i comandi ad-hoc di Ansible:

Innanzitutto, verifica la connettività di tutti i nodi gestiti utilizzando il comando seguente:

ansible -m ping all

Se tutto va bene, dovresti vedere il seguente output:

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

Se vuoi solo controllare la connettività del server di database, esegui il comando seguente:

ansible -m ping database

Otterrai il seguente output:

dbserver1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

Per controllare la memoria libera sul nodo del server web, eseguire il comando seguente:

ansible -m shell -a "free -m" web

Otterrai il seguente output:

server1 | CHANGED | rc=0 >>
              total        used        free      shared  buff/cache   available
Mem:           1817         621         210          21         985        1006
Swap:             0           0           0

Per verificare la versione di MySQL sul nodo del server di database, eseguire il comando seguente:

ansible -m shell -a "mysqladmin --version" database

Dovresti vedere il seguente output:

dbserver1 | CHANGED | rc=0 >>
mysqladmin  Ver 8.0.26 for Linux on x86_64 (Source distribution)

Passaggio 6:crea Ansible Playbook per installare i pacchetti sui nodi gestiti

Ansible ci consente di creare un playbook per definire tutte le attività che vogliamo eseguire sui nodi gestiti. Innanzitutto, crea una directory in cui archiviare il tuo playbook.

mkdir project

Quindi, vai alla directory creata e crea un file YAML usando il seguente comando:

cd project
nano app.yaml

Aggiungi la seguente configurazione:

- name: Install Packages
  hosts:
    - web
    - database
  tasks:
  - name: Install php and nginx
    package:
      name:
        - php
        - httpd
      state: present

Salva e chiudi il file, quindi esegui il playbook utilizzando il comando seguente:

ansible-playbook app.yaml

Una volta che il playbook di Ansible viene eseguito correttamente, otterrai il seguente output:

PLAY [Install Packages] **********************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************
ok: [server1]
ok: [dbserver1]

TASK [Install php and apache] ****************************************************************************************************************
ok: [server1]
changed: [dbserver1]

PLAY RECAP ***********************************************************************************************************************************
dbserver1                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
server1                    : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

Ora puoi verificare la versione PHP sul nodo del server web usando il seguente comando:

ansible -m shell -a "php -v" web

Otterrai il seguente output:

server1 | CHANGED | rc=0 >>
PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Conclusione

In questa guida abbiamo spiegato come installare Ansible su Oracle Linux 8. Abbiamo anche spiegato come utilizzare i comandi ad hoc e il playbook di Ansible per eseguire il provisioning dei nodi gestiti. Ora puoi utilizzare Ansible per fornire e gestire facilmente l'intera infrastruttura IT. Provalo sull'hosting VPS di Atlantic.Net!


Linux
  1. Come installare Python su Linux

  2. Come installare Java su Linux

  3. Come installare e testare Ansible su Linux

  4. Come installare Oracle Java JDK 17 su Linux

  5. Come installare Ansible su CentOS 8 Linux

Come installare FreeOffice su Linux

Come installare Apache Solr su Oracle Linux 8

Come installare GitLab CE su Oracle Linux 8

Come installare OpenCart su Oracle Linux 8

Come installare Joomla su Oracle Linux 8

Come installare Ansible su Linux Mint 20