Files
michaelschiemer/x_ansible/playbooks/setup.yml

82 lines
2.4 KiB
YAML

---
- 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: Kopiere Docker-Konfigurationen
synchronize:
src: "{{ playbook_dir }}/docker/"
dest: "{{ deploy_root }}/docker/"
delete: yes
tags: [setup, docker]
- name: Kopiere docker-compose.yml
copy:
src: "{{ playbook_dir }}/docker-compose.yml"
dest: "{{ deploy_root }}/docker-compose.yml"
mode: '0644'
owner: "{{ deploy_user }}"
group: "{{ deploy_user }}"
tags: [setup, docker]
- 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]