135 lines
3.6 KiB
YAML
135 lines
3.6 KiB
YAML
---
|
|
# Basis-Setup für Server
|
|
# Dieses Playbook richtet grundlegende Komponenten auf den Zielsystemen ein
|
|
|
|
- name: Basis-Setup für alle Zielsysteme
|
|
hosts: all
|
|
become: true
|
|
gather_facts: true
|
|
|
|
pre_tasks:
|
|
- name: Aktualisiere den Paket-Cache
|
|
apt:
|
|
update_cache: yes
|
|
cache_valid_time: 3600
|
|
when: ansible_os_family == "Debian"
|
|
tags: [system, update]
|
|
---
|
|
# Basis-Setup für Server
|
|
# Dieses Playbook richtet grundlegende Komponenten auf den Zielsystemen ein
|
|
|
|
- name: Basis-Setup für alle Zielsysteme
|
|
hosts: all
|
|
become: true
|
|
gather_facts: true
|
|
|
|
pre_tasks:
|
|
- name: Debug Variablen
|
|
debug:
|
|
msg:
|
|
- "Host: {{ inventory_hostname }}"
|
|
- "Umgebung: {{ environment | default('undefiniert') }}"
|
|
- "deploy_root: {{ deploy_root | default('undefiniert') }}"
|
|
- "deploy_user: {{ deploy_user | default('undefiniert') }}"
|
|
tags: [always, debug]
|
|
|
|
roles:
|
|
- common
|
|
- docker
|
|
- webserver
|
|
|
|
post_tasks:
|
|
- name: Zeige Erfolgsmeldung
|
|
debug:
|
|
msg: "Basiseinrichtung auf {{ inventory_hostname }} abgeschlossen"
|
|
tags: [always]
|
|
- name: Installiere grundlegende Pakete
|
|
apt:
|
|
name:
|
|
- curl
|
|
- wget
|
|
- vim
|
|
- htop
|
|
- git
|
|
- zip
|
|
- unzip
|
|
- python3-pip
|
|
state: present
|
|
when: ansible_os_family == "Debian"
|
|
tags: [system, packages]
|
|
|
|
roles:
|
|
- common
|
|
- docker
|
|
- webserver
|
|
---
|
|
- name: Basis-Setup für alle Zielsysteme
|
|
hosts: web
|
|
become: true
|
|
gather_facts: true
|
|
|
|
pre_tasks:
|
|
- name: Überprüfe Serververbindung
|
|
ping:
|
|
tags: [always, check]
|
|
|
|
- name: Zeige Server-Informationen
|
|
debug:
|
|
msg: "Verbunden mit {{ inventory_hostname }} ({{ ansible_host | default('IP unbekannt') }})"
|
|
tags: [always, check]
|
|
|
|
roles:
|
|
- common
|
|
- docker
|
|
|
|
post_tasks:
|
|
- name: Stelle sicher, dass Zielverzeichnisse existieren
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: "{{ deploy_user }}"
|
|
group: "{{ deploy_user }}"
|
|
mode: '0755'
|
|
loop:
|
|
- "{{ deploy_root }}"
|
|
- "{{ deploy_root }}/public"
|
|
- "{{ deploy_root }}/ssl"
|
|
- "{{ deploy_root }}/src"
|
|
- "{{ deploy_root }}/docker"
|
|
- "{{ deploy_root }}/docker/nginx"
|
|
- "{{ deploy_root }}/docker/php"
|
|
tags: [setup, folders]
|
|
|
|
- name: Erstelle Test-HTML-Datei
|
|
copy:
|
|
dest: "{{ deploy_root }}/public/index.html"
|
|
content: |
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Server Setup erfolgreich</title>
|
|
<style>
|
|
body { font-family: Arial, sans-serif; margin: 40px; }
|
|
h1 { color: #3273dc; }
|
|
.container { max-width: 800px; margin: 0 auto; padding: 20px; border: 1px solid #eee; border-radius: 5px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1>Server-Setup erfolgreich!</h1>
|
|
<p>Diese Seite bestätigt, dass die grundlegende Servereinrichtung abgeschlossen ist.</p>
|
|
<p>Als nächstes können Sie das Deployment ausführen mit:</p>
|
|
<pre>./ansible/deploy.sh {{ environment | default('staging') }}</pre>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
mode: '0644'
|
|
owner: "{{ deploy_user }}"
|
|
group: "{{ deploy_user }}"
|
|
tags: [setup, test]
|
|
post_tasks:
|
|
- name: Zeige Erfolgsmeldung
|
|
debug:
|
|
msg: "Basiseinrichtung auf {{ inventory_hostname }} abgeschlossen"
|
|
tags: [always]
|