Ansible KIT: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 54: | Zeile 54: | ||
*ansible all -i ~/ansible/hosts -a "cat /proc/sys/net/ipv4/ip_forward" | *ansible all -i ~/ansible/hosts -a "cat /proc/sys/net/ipv4/ip_forward" | ||
= Paket aus dem Repository installieren und Dienst starten = | = Paket aus dem Repository installieren und Dienst starten = | ||
| − | Nun installieren wir das Paket | + | Nun installieren wir das Paket nginx aus dem Repository und starten den zugehörigen Dienst. |
| − | |||
| − | |||
* vi install_nginx.yaml | * vi install_nginx.yaml | ||
| − | + | <pre> | |
| − | |||
--- | --- | ||
- name: Nginx installieren und starten | - name: Nginx installieren und starten | ||
| Zeile 76: | Zeile 73: | ||
state: started | state: started | ||
enabled: yes | enabled: yes | ||
| + | </pre> | ||
| − | + | == Ausführen == | |
| − | |||
* ansible-playbook -i hosts install_nginx.yaml | * ansible-playbook -i hosts install_nginx.yaml | ||
| Zeile 85: | Zeile 82: | ||
* vi modify_nginx_config.yaml | * vi modify_nginx_config.yaml | ||
| − | + | <pre> | |
| − | |||
--- | --- | ||
- name: Nginx-Konfiguration anpassen | - name: Nginx-Konfiguration anpassen | ||
| Zeile 101: | Zeile 97: | ||
name: nginx | name: nginx | ||
state: restarted | state: restarted | ||
| + | </pre> | ||
| − | + | == Ausführen == | |
| − | |||
* ansible-playbook -i hosts modify_nginx_config.yaml | * ansible-playbook -i hosts modify_nginx_config.yaml | ||
= Lokales Paket installieren = | = Lokales Paket installieren = | ||
Nun installieren wir ein lokales Paket, das sich im Ansible-Verzeichnis befindet. | Nun installieren wir ein lokales Paket, das sich im Ansible-Verzeichnis befindet. | ||
| − | |||
| − | |||
* vi install_local_package.yaml | * vi install_local_package.yaml | ||
| − | + | <pre> | |
| − | |||
--- | --- | ||
- name: Lokales .deb-Paket installieren | - name: Lokales .deb-Paket installieren | ||
| Zeile 122: | Zeile 115: | ||
apt: | apt: | ||
deb: /home/kit/ansible/packages/custom_package.deb | deb: /home/kit/ansible/packages/custom_package.deb | ||
| + | </pre> | ||
| − | + | == Ausführen == | |
| − | |||
* ansible-playbook -i hosts install_local_package.yaml | * ansible-playbook -i hosts install_local_package.yaml | ||
= Benutzer freddy mit Passwort mustang anlegen = | = Benutzer freddy mit Passwort mustang anlegen = | ||
| − | Nun wird ein neuer Benutzer | + | Nun wird ein neuer Benutzer freddy mit dem Passwort mustang angelegt. |
| − | |||
| − | |||
* vi create_user.yaml | * vi create_user.yaml | ||
| − | + | <pre> | |
| − | |||
--- | --- | ||
- name: Neuen Benutzer freddy anlegen | - name: Neuen Benutzer freddy anlegen | ||
| Zeile 147: | Zeile 137: | ||
append: yes | append: yes | ||
password: "{{ 'mustang' | password_hash('sha512') }}" | password: "{{ 'mustang' | password_hash('sha512') }}" | ||
| + | </pre> | ||
| − | + | == Ausführen == | |
| − | |||
* ansible-playbook -i hosts create_user.yaml | * ansible-playbook -i hosts create_user.yaml | ||
= Änderungen nur an einem Host durchführen = | = Änderungen nur an einem Host durchführen = | ||
| − | Wenn eine Änderung nur auf | + | Wenn eine Änderung nur auf server1 durchgeführt werden soll, kann -l genutzt werden. |
| − | |||
| − | |||
| + | == Beispiel == | ||
* ansible-playbook -i hosts install_nginx.yaml -l server1 | * ansible-playbook -i hosts install_nginx.yaml -l server1 | ||
Aktuelle Version vom 19. März 2025, 19:54 Uhr
Einführung
- 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
[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'
Wir pingen
- ansible all -i ~/ansible/hosts -m ping
Playbooks
- vi ~/ansible/install_ca.yml
- 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
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
---
- 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
Ausführen
- ansible-playbook -i hosts install_nginx.yaml
Konfigurationsdatei ändern
Nun ändern wir die Startseite von Nginx.
- vi modify_nginx_config.yaml
---
- 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
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
---
- 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
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
---
- 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') }}"
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