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.

  • 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.

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