Ansible KIT

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.

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.

Datei `modify_nginx_config.yaml` erstellen:

  • vi modify_nginx_config.yaml

Inhalt der Datei: --- - 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  

Dann ausführen mit:

  • 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: "Vorlage:'mustang'"  

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