--- # 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: |
Diese Seite bestätigt, dass die grundlegende Servereinrichtung abgeschlossen ist.
Als nächstes können Sie das Deployment ausführen mit:
./ansible/deploy.sh {{ environment | default('staging') }}