Ansible KIT: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „*Ansible KIT Misc“)
Markierung: Ersetzt
Zeile 1: Zeile 1:
= Einführung =
+
*[[Ansible KIT Misc]]
*Ansible ist ein agentenloses Automatisierungstool, das über SSH arbeitet.
 
*Es ermöglicht eine schnelle und einfache Verwaltung mehrerer Server gleichzeitig.
 
 
 
=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.
 
 
 
* vi install_nginx.yaml
 
<pre>
 
---
 
- 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 
 
</pre>
 
 
 
== Ausführen ==
 
* 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.
 
 
 
* vi install_local_package.yaml
 
<pre>
 
---
 
- 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 
 
</pre>
 
 
 
== Ausführen ==
 
* 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.
 
 
 
* vi create_user.yaml
 
<pre>
 
---
 
- 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') }}" 
 
</pre>
 
 
 
== Ausführen ==
 
* 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
 

Version vom 7. April 2026, 12:42 Uhr