Ansible KIT: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
−
= Einführung =
+
*[[Ansible KIT Misc]]
−
*Ansible ist ein agentenloses Automatisierungstool, das über SSH arbeitet.
+
*[[Ansible KIT Grundlagen]]
−
*Es ermöglicht eine schnelle und einfache Verwaltung mehrerer Server gleichzeitig.
+
*[[Ansible KIT Firewall-Konfiguration]]
−
 
+
*[[Ansible KIT Nameserver-Konfiguration]]
−
=Installation=
 
−
*sudo apt install ansible sshpass
 
−
=Verzeichnis erstellen=
 
−
*mkdir -p ~/ansible
 
−
=Arbeitsverzeichnis erstellen=
 
−
*mkdir -p ~/ansible
 
−
*cd ~/ansible
 
−
=Host Datei erstellen=
 
−
*vi > ~/ansible/hosts
 
−
<pre>
 
−
[it]
 
−
ns      ansible_host=10.88.113.21
 
−
mail    ansible_host=10.88.113.3
 
−
fw      ansible_host=10.88.113.1
 
−
proxy    ansible_host=10.88.113.4
 
−
checkmk  ansible_host=10.88.113.5
 
−
www      ansible_host=10.88.113.11
 
−
revproxy ansible_host=10.88.113.41
 
−
 
 
−
 
 
−
[it:vars]
 
−
ansible_user=kit
 
−
ansible_password=kit
 
−
ansible_become=true
 
−
ansible_become_method=sudo
 
−
ansible_become_password=kit
 
−
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
 
−
</pre>
 
−
 
 
−
=Wir pingen=
 
−
*ansible all -i ~/ansible/hosts -m ping
 
−
=Playbooks=
 
−
*vi ~/ansible/install_ca.yml
 
−
<pre>
 
−
- hosts: firewalls
 
−
  gather_facts: yes
 
−
  tasks:
 
−
    - name: Kopiere CA-Zertifikat auf die Firewalls
 
−
      copy:
 
−
        src: ca.crt
 
−
        dest: /usr/local/share/ca-certificates/ca.crt
 
−
        owner: root
 
−
        group: root
 
−
        mode: "0644"
 
−
 
 
−
    - name: Zertifikatsdatenbank aktualisieren
 
−
      command: sudo update-ca-certificates
 
−
</pre>
 
−
=Ist ip_forward eingeschaltet?=
 
−
*ansible all -i ~/ansible/hosts -a "cat /proc/sys/net/ipv4/ip_forward"
 
−
= Paket aus dem Repository installieren und Dienst starten =
 
−
Nun installieren wir das Paket `nginx` aus dem Repository und starten den zugehörigen Dienst.
 
−
 
 
−
Datei `install_nginx.yaml` erstellen:
 
−
 
 
−
* vi install_nginx.yaml
 
−
 
 
−
Inhalt der Datei:
 
−
---
 
−
- name: Nginx installieren und starten 
 
−
  hosts: all 
 
−
  become: yes 
 
−
  tasks: 
 
−
    - name: Paket nginx installieren 
 
−
      apt: 
 
−
        name: nginx 
 
−
        state: present 
 
−
 
 
−
    - name: Dienst starten und aktivieren 
 
−
      service: 
 
−
        name: nginx 
 
−
        state: started 
 
−
        enabled: yes 
 
−
 
 
−
Dann ausführen mit:
 
−
 
 
−
* ansible-playbook -i hosts install_nginx.yaml
 
−
 
 
−
= Konfigurationsdatei ändern =
 
−
Nun ändern wir die Startseite von Nginx.
 
−
 
 
−
*vi modify_nginx_config.yaml
 
−
 
 
−
<pre>
 
−
---
 
−
- name: Nginx-Konfiguration anpassen 
 
−
  hosts: all 
 
−
  become: yes 
 
−
  tasks: 
 
−
    - name: Standardseite ändern 
 
−
      copy: 
 
−
        dest: /var/www/html/index.html 
 
−
        content: "Willkommen auf dem neuen Server – Bereitgestellt mit Ansible" 
 
−
 
 
−
    - name: Nginx neu starten 
 
−
      service: 
 
−
        name: nginx 
 
−
        state: restarted 
 
−
</pre>
 
−
==ausführen==
 
−
* ansible-playbook -i hosts modify_nginx_config.yaml
 
−
 
 
−
= Lokales Paket installieren =
 
−
Nun installieren wir ein lokales Paket, das sich im Ansible-Verzeichnis befindet.
 
−
 
 
−
Datei `install_local_package.yaml` erstellen:
 
−
 
 
−
* vi install_local_package.yaml
 
−
 
 
−
Inhalt der Datei:
 
−
---
 
−
- name: Lokales .deb-Paket installieren 
 
−
  hosts: all 
 
−
  become: yes 
 
−
  tasks: 
 
−
    - name: Paket aus lokalem Verzeichnis installieren 
 
−
      apt: 
 
−
        deb: /home/kit/ansible/packages/custom_package.deb 
 
−
 
 
−
Dann ausführen mit:
 
−
 
 
−
* ansible-playbook -i hosts install_local_package.yaml
 
−
 
 
−
= Benutzer freddy mit Passwort mustang anlegen =
 
−
Nun wird ein neuer Benutzer `freddy` mit dem Passwort `mustang` angelegt.
 
−
 
 
−
Datei `create_user.yaml` erstellen:
 
−
 
 
−
* vi create_user.yaml
 
−
 
 
−
Inhalt der Datei:
 
−
---
 
−
- name: Neuen Benutzer freddy anlegen 
 
−
  hosts: all 
 
−
  become: yes 
 
−
  tasks: 
 
−
    - name: Benutzer freddy anlegen 
 
−
      user: 
 
−
        name: freddy 
 
−
        shell: /bin/bash 
 
−
        groups: sudo 
 
−
        append: yes 
 
−
        password: "{{ 'mustang' | password_hash('sha512') }}" 
 
−
 
 
−
Dann ausführen mit:
 
−
 
 
−
* ansible-playbook -i hosts create_user.yaml
 
−
 
 
−
= Änderungen nur an einem Host durchführen =
 
−
Wenn eine Änderung nur auf `server1` durchgeführt werden soll, kann `-l` genutzt werden.
 
−
 
 
−
Beispiel:
 
−
 
 
−
* ansible-playbook -i hosts install_nginx.yaml -l server1
 
−
 
 
−
= Links und weitere Informationen =
 
−
* Offizielle Ansible-Dokumentation: https://docs.ansible.com/ 
 
−
* Ansible Best Practices: https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html 
 
−
* YAML-Syntax für Ansible: https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
 

Aktuelle Version vom 7. April 2026, 12:55 Uhr