GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ansible Playbook per installare e configurare Apache su Ubuntu

Ansible è uno strumento open source per la gestione della configurazione e la distribuzione delle applicazioni. Aiuta a ridurre le spese di gestione automatizzando l'implementazione dell'app e gestendo l'infrastruttura IT.

Utilizzo di ansible installeremo il server web apache2 in Ubuntu 20.04. Per questo abbiamo bisogno di creare una configurazione nella sintassi YAML chiamata Playbook Ansible .

Normalmente, c'è un nodo di controllo e nodi host. Ansible è installato nel nodo di controllo ed eseguirà il playbook da distribuire nei nodi host. In questo lab, lo installeremo e lo useremo in un singolo nodo.

Installazione di ansible su Ubuntu

Innanzitutto, aggiorna il tuo sistema. Il comando seguente recupera il pacchetto più recente:

$ sudo apt update

Ansible è disponibile nel repository di base di Ubuntu 20.04. Per installare ansible eseguire il seguente comando:

$ sudo apt install ansible -y

Quindi, controlla la versione ansible usando il comando,

$ ansible --version

Il file di configurazione dell'host è archiviato nel file /etc/ansible/hosts. Aggiungi l'IP del tuo server localhost al file con l'aiuto del comando seguente. Assicurati di avere un utente sudo. Nel nostro caso, "ubuntu" ha il privilegio sudo. Qui, ho indicato il mio nome come 'myserver' puoi fornire il tuo. Inoltre, ricorda che l'utente ubuntu è sudo user nel sistema.

$ echo "myserver ansible_host=127.0.0.1 ansible_user=ubuntu" >> /etc/ansible/host

Basta controllarlo usando il comando,

$ ansible myserver -m ping 

Dovresti ottenere una risposta pong simile allo screenshot qui sotto.

Creazione di un Playbook

Ora, creiamo un playbook chiamato 'apache.yml' per installare ed eseguire l'ultimo server web apache.

$ vi apache.yml

Aggiungi il seguente contenuto al file

---
- hosts: myserver
  become: true
  vars:
         - vars/default.yml
- tasks:
    - name: Install latest version of Apache
      apt: name=apache2 update_cache=yes state=latest

    - name: Create document root for your domain
      file:
        path: "/var/www/{{ http_host }}"
        state: directory
        owner: "{{ app_user }}"
        mode: '0755'

    - name: Copy your index page
      template:
        src: "files/index.html.j2"
        dest: "/var/www/{{ http_host }}/index.html"

    - name: Set up virtuahHost
      template:
        src: "files/apache.conf.j2"
        dest: "/etc/apache2/sites-available/{{ http_conf }}"
      notify: restart-apache

    - name: "UFW firewall allow HTTP on port {{ http_port }}"
      ufw:
        rule: allow
        port: "{{ http_port }}"
        proto: tcp

  handlers:
    - name: restart-apache
      service:
        name: apache2
        state: restarted

Ecco,

  • ospite :è il nome host che hai definito nel file /etc/ansible/hosts
  • diventare:vero è l'escalation dei privilegi per essere sudo
  • vari :per definire le variabili
  • attività :vengono definiti quattro compiti. Installazione di apache, copia della pagina dell'indice, configurazione dell'host virtuale, abilitazione di http dal firewall UFW se già abilitato.
  • gestori :per riavviare Apache se tutte le altre attività hanno esito positivo.

Insieme al playbook, dovresti definire altri tre file vars/default.yml, files/apache.conf.j2 e files/index.html.j2 . Creiamoli uno per uno.

vars/default.yml

Il file default.yml contiene il nome di dominio, il percorso del file di configurazione e la porta http. Crea il file e aggiungi quanto segue.

http_host: "mydomain.local"
http_conf: "my_domain.conf"
http_port: "80"

file/apache.conf.j2

Il modello di configurazione di Apache contiene la configurazione per l'host virtuale. La variabile è definita all'interno di {{ }} ed è ottenuta dal file vars definito sopra. Crea il file apache.conf.js e aggiungi il seguente contenuto.

<VirtualHost *:{{ http_port }}>
   ServerAdmin webmaster@localhost
   ServerName {{ http_host }}
   ServerAlias www.{{ http_host }}
   DocumentRoot /var/www/{{ http_host }}
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

file/indice.html.j2

Un altro modello è il tuo file di indice. Crea il file e aggiungi il seguente contenuto. Puoi modificare secondo le tue esigenze.

<html>
   <head>
       <title>{{ http_host }}</title>
   </head>
   <body>
       <h1>Welcome to {{ http_host }}</h1>
   </body>
</html>

Ora puoi eseguire ansible-playbook con il seguente comando.

$ ansible-playbook apache.yml --ask-become-pass

Ti verrà richiesto di inserire una password per l'utente sudo. Lo stato dovrebbe essere ok come mostrato di seguito.

Verrà eseguito anche Apache sulla porta 80 predefinita, puoi verificare la navigazione in localhost nel tuo browser preferito.

Conclusione

Ansible è uno strumento utile in quanto è senza agenti e la configurazione della scrittura è semplice. Puoi sfogliare più configurazioni dalla documentazione ufficiale di ansible. Si prega di commentare in caso di problemi durante la scrittura del playbook su ansible.


Ubuntu
  1. Come installare e configurare Ansible su Ubuntu 20.04

  2. Come installare e configurare Ansible su Ubuntu 18.04 LTS

  3. Come installare Apache Maven su Ubuntu 18.04 e 16.04

  4. Installa e configura Apache Spark su Ubuntu 20.04

  5. Utilizzo di Ansible per installare e configurare Elasticsearch su Ubuntu 20.04

Come installare e configurare Samba su Ubuntu

Come installare e utilizzare BleachBit 1.12 su Ubuntu 16.04

Installa Apache OpenOffice in Ubuntu e Linux Mint

Come installare e configurare Apache Spark su Ubuntu 21.04

Come installare e configurare Ansible su Ubuntu

Come installare e configurare Apache Spark su Ubuntu/Debian