Ansible Playbook zum Installieren und Einrichten Apache auf Ubuntu

Ansible ist ein Open-Source-Tool für das Konfigurationsmanagement und die Anwendungsbereitstellung. Es hilft, den Verwaltungsaufwand zu reduzieren, indem es die Bereitstellung der App automatisiert und die IT-Infrastruktur verwaltet.

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

Normalerweise gibt es einen Steuerknoten und Hostknoten. Ansible wird im Kontrollknoten installiert und führt das Playbook aus, um es in den Hostknoten bereitzustellen. In diesem Lab werden wir es in einem einzigen Knoten installieren und verwenden.

Ansible unter Ubuntu installieren

Aktualisieren Sie zuerst 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

Ansible-Version

Die Host-Konfigurationsdatei wird in der Datei /etc/ansible/hosts gespeichert. Fügen Sie der Datei Ihre localhost-Server-IP mit Hilfe des folgenden Befehls hinzu. Stellen Sie sicher, dass Sie eine sudo Nutzer. In unserem Fall hat ‘ubuntu’ sudo Privileg. Hier habe ich meinen Namen als ‘myserver’ angegeben, den Sie selbst vergeben können. Denken Sie auch daran, dass der Benutzer Ubuntu ist sudo Benutzer im System.

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

Ansible Pingpong Ansible Ping-Pong-Antwort

Erstellen eines Playbooks

Lassen Sie uns nun ein Playbook namens ‘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,

  • Gastgeber: ist der Hostname, wie Sie in der Datei /etc/ansible/hosts definiert haben
  • wahr werden ist Privilegeskalation für das Sein sudo
  • deren: zum Definieren der Variablen
  • Aufgaben: vier Aufgaben sind definiert. Apache installieren, Indexseite kopieren, virtuellen Host einrichten, HTTP von UFW-Firewall zulassen, falls bereits aktiviert.
  • Handler: Um Apache neu zu starten, wenn alle anderen Aufgaben erfolgreich sind.

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: “meinedomain.local”
http_conf: “meine_domain.conf”
http_port: “80”

files/apache.conf.j2

Die Apache-Konfigurationsvorlage enthält die Konfiguration für den virtuellen Host. Die Variablen sind in {{ }} 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 nach 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 die . einzugeben sudo Nutzer. Der Status sollte wie unten gezeigt in Ordnung sein.

Playbook-AusgabePlaybook-Ausgabe

Dadurch wird Apache auch auf dem Standardport 80 ausgeführt. Sie können das Durchsuchen von localhost in Ihrem bevorzugten Browser überprüfen.

Indexseite

Fazit

Ansible ist ein hilfreiches Tool, da es keinen Agenten hat und das Schreiben der Konfiguration einfach ist. Sie können weitere Konfigurationen durchsuchen von ansible offizielle Dokumentation. Bitte kommentieren Sie, wenn Sie Probleme beim Schreiben des Playbooks auf ansible haben.