GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Ansible Playbook zum Installieren und Einrichten von Apache unter Ubuntu

Ansible ist ein Open-Source-Tool zur Konfigurationsverwaltung und Anwendungsbereitstellung. Es hilft, den Verwaltungsaufwand zu reduzieren, indem es die Bereitstellung der App automatisiert und die IT-Infrastruktur verwaltet.

Mit ansible Wir werden den Apache2-Webserver in Ubuntu 20.04 installieren. Dafür müssen wir eine Konfiguration in YAML-Syntax namens Ansible Playbooks erstellen .

Normalerweise gibt es einen Steuerknoten und Hostknoten. Ansible ist auf dem Kontrollknoten installiert und führt das Playbook zur Bereitstellung auf Hostknoten aus. In diesem Lab werden wir es in einem einzelnen Knoten installieren und verwenden.

Ansible auf Ubuntu installieren

Aktualisieren Sie zunächst Ihr System. Der folgende Befehl ruft das neueste Paket ab:

$ sudo apt update

Ansible ist im Basis-Repository von Ubuntu 20.04 verfügbar. Um Ansible zu installieren, führen Sie den folgenden Befehl aus:

$ sudo apt install ansible -y

Überprüfen Sie dann die Ansible-Version mit dem Befehl

$ ansible --version

Die Hostkonfigurationsdatei wird in der Datei /etc/ansible/hosts gespeichert. Fügen Sie die IP Ihres Localhost-Servers mit Hilfe des folgenden Befehls zur Datei hinzu. Stellen Sie sicher, dass Sie einen sudo-Benutzer haben. In unserem Fall hat „ubuntu“ das sudo-Privileg. Hier habe ich meinen Namen als "myserver" angegeben, Sie können Ihren eigenen angeben. Denken Sie auch daran, dass der Benutzer ubuntu ein sudo-Benutzer im System ist.

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

Überprüfen Sie es einfach mit dem Befehl,

$ ansible myserver -m ping 

Sie sollten eine Pong-Antwort ähnlich dem Screenshot unten erhalten.

Erstellen eines Playbooks

Lassen Sie uns nun ein Playbook mit dem Namen „apache.yml“ erstellen, um den neuesten Apache-Webserver zu installieren und auszuführen.

$ vi apache.yml

Fügen Sie der Datei den folgenden Inhalt hinzu

---
- 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

Hier,

  • Host :ist der Hostname, wie Sie ihn in der Datei /etc/ansible/hosts definiert haben
  • werden:wahr ist eine Privilegien-Eskalation, weil man sudo ist
  • vars :zum Definieren der Variablen
  • Aufgaben :Vier Aufgaben sind definiert. Installieren von Apache, Kopieren der Indexseite, Einrichten des virtuellen Hosts, Zulassen von http von der UFW-Firewall, falls bereits aktiviert.
  • Handler :Um Apache neu zu starten, wenn alle anderen Aufgaben erfolgreich waren.

Zusammen mit dem Playbook sollten Sie drei weitere Dateien vars/default.yml, files/apache.conf.j2 und files/index.html.j2 definieren. Lassen Sie uns sie nacheinander erstellen.

vars/default.yml

Die Datei default.yml enthält den Domänennamen, den Speicherort der Konfigurationsdatei und den HTTP-Port. Erstellen Sie die Datei und fügen Sie Folgendes hinzu.

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

files/apache.conf.j2

Die Apache-Konfigurationsvorlage enthält die Konfiguration für den virtuellen Host. Die Variablen sind innerhalb von {{ }} definiert und werden aus der oben definierten Vars-Datei abgerufen. Erstellen Sie die Datei apache.conf.js und fügen Sie den folgenden Inhalt hinzu.

<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>

files/index.html.j2

Eine weitere Vorlage ist Ihre Indexdatei. Erstellen Sie die Datei und fügen Sie den folgenden Inhalt hinzu. Sie können gemäß Ihren Anforderungen ändern.

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

Jetzt können Sie ansible-playbook mit dem folgenden Befehl ausführen.

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

Sie werden aufgefordert, ein Passwort für den sudo-Benutzer einzugeben. Der Status sollte wie unten gezeigt in Ordnung sein.

Dadurch wird Apache auch auf dem Standardport 80 ausgeführt. Sie können überprüfen, ob Sie localhost in Ihrem bevorzugten Browser durchsuchen.

Schlussfolgerung

Ansible ist ein hilfreiches Tool, da es agentenlos ist und das Schreiben der Konfiguration einfach ist. Weitere Konfigurationen finden Sie in der offiziellen Dokumentation von Ansible. Bitte kommentieren Sie, wenn Sie Probleme beim Schreiben des Playbooks auf Ansible haben.


Ubuntu
  1. So installieren und konfigurieren Sie Ansible unter Ubuntu 20.04

  2. So installieren und konfigurieren Sie Ansible unter Ubuntu 18.04 LTS

  3. So installieren Sie Apache Maven unter Ubuntu 18.04 und 16.04

  4. Installieren und konfigurieren Sie Apache Spark unter Ubuntu 20.04

  5. Verwenden von Ansible zum Installieren und Konfigurieren von Elasticsearch unter Ubuntu 20.04

So installieren und konfigurieren Sie Samba unter Ubuntu

So installieren und verwenden Sie BleachBit 1.12 unter Ubuntu 16.04

Installieren Sie Apache OpenOffice in Ubuntu und Linux Mint

So installieren und konfigurieren Sie Apache Spark unter Ubuntu 21.04

So installieren und konfigurieren Sie Ansible unter Ubuntu

So installieren und konfigurieren Sie Apache Spark unter Ubuntu/Debian