Skip to content

Ansible - ein kurzer Test

Linux
  • Kur vorab, ich denke nicht das ich zum jetzigen Zeitpunkt einen Einblick darin habe, was Ansible alles kann. Aber, da ich hier immer als notiere, was ich so ausprobiere, möchte ich auch das hier festhalten.

    Sollte das jemand lesen, der davon richtig Ahnung hat, Vorsicht hier kann einiges Falsche stehen! Ich bitte in so einem Fall um einen Kommentar, damit ich das ändern oder löschen kann. Vielen Dank!

    Was ist Ansible?

    Ansible ist ein Open-Source Automatisierungs-Werkzeug zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern
    Quelle: https://de.wikipedia.org/wiki/Ansible

    Die Projektseite -> https://www.ansible.com/

    Warum Ansible?

    Um alle meine Server immer schön auf dem aktuellen Stand zu halten, nutze ich zur Zeit ClusterSSH. Wenn es aber etwas umfangreicher und komplizierter werden sollte, scheint es nicht das rechte Tool zu sein.

    Da ich gerne eine erstellte VM auf einen von mir festgelegten Stand bringen möchte, erschien mir dieses Tool als geeignet.

    Installation

    apt install ansible
    

    Kontrolle

    frank@frank-MS-7C37:~$ ansible --version
    ansible 2.9.6
      config file = /etc/ansible/ansible.cfg
      configured module search path = ['/home/frank/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
      ansible python module location = /usr/lib/python3/dist-packages/ansible
      executable location = /usr/bin/ansible
      python version = 3.8.10 (default, Sep 28 2021, 16:10:42) [GCC 9.3.0]
    

    Konfiguration Ansible

    Die findet man unter /etc/ansible/

     frank@frank-MS-7C37:~$ ls -lha /etc/ansible/
        insgesamt 40K
        drwxr-xr-x   2 root root 4,0K Nov 13 15:47 .
        drwxr-xr-x 156 root root  12K Nov 13 15:44 ..
        -rw-r--r--   1 root root  20K Mär  5  2020 ansible.cfg
        -rw-r--r--   1 root root 1005 Nov 13 15:47 hosts
    

    Die ansible.cfg habe ich auf Standard gelassen. In der hosts Datei konfiguriert man die Server, die man administrieren möchte. Also z.B.

    192.168.3.10    
    

    Playbook

    Ansible wird mit YAML Textdateien konfiguriert. Ich hatte erst angefangen, diese mit nano zu editieren habe aber sehr schnell festgestellt das das keine gute Idee ist. YAML ist sehr empfindlich was die Formatierung angeht und das sieht man in einem richtigen Code-Editor einfach besser. Somit habe ich das Playbook in Codium ertsellt und editiert. Dort kann man bei Erstellung auch direkt YAML auswählen.

    Ich habe in meinem Homeordner eine Datei task.yml erstellt. Der Name ist beliebig.

    ---
    - name: My task
      hosts: all
      tasks:
    
    # Update and install the base software
      - name: Update apt package cache.
        apt:
          update_cache: yes
          cache_valid_time: 600
    
      - name: Upgrade installed apt packages.
        apt:
          upgrade: 'yes'
          #register: upgrade
    
      - name: Ensure that a base set of software packages are installed.
        apt:
          pkg:
           # - build-essential
           # - curl
            - fail2ban
           # - firewalld
           # - git
            - htop
           # - needrestart
           # - pwgen
           # - resolvconf
            - restic
            - rsync
           # - sudo
           # - unbound
           # - unzip
           # - vim-nox
          state: latest
    

    In diesem Beispiel wird erst mal alles aktualisiert. Danach wird eine Liste von Tools installiert, die ich gerne hätte.

    Aufruf des Playbooks

    ansible-playbook playbooks/task.yml
    

    Je nach Konfiguration Eurers Servers kann es evt. folgende Ausgabe kommen.

    frank@frank-MS-7C37:~$ ansible-playbook playbooks/task.yml 
    
    PLAY [My task] **************************************************************************************************************************************************************************
    
    TASK [Gathering Facts] ******************************************************************************************************************************************************************
    fatal: [<Server-IP>]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: frank@<Server-IP>: Permission denied (publickey,password).", "unreachable": true}
    
    PLAY RECAP ******************************************************************************************************************************************************************************
    <Server-IP>     : ok=0    changed=0    unreachable=1    failed=0    skipped=0    rescued=0    ignored=0  
    

    Der Grund ist, das zum Login der Public-Key benötigt wird. Also root@<Server-IP>, oben ist das ja mit frank@<Server-IP> erfolgt.

    ansible-playbook -u root playbooks/task.yml
    

    Ein -u root übergibt den Benutzer root und nun klappt der Zugriff. Ausgabe

     frank@frank-MS-7C37:~$ ansible-playbook -u root playbooks/task.yml 
     
     PLAY [My task] **************************************************************************************************************************************************************************
     
     TASK [Gathering Facts] ******************************************************************************************************************************************************************
     [WARNING]: Platform linux on host <Server-IP> is using the discovered Python interpreter at /usr/bin/python3, but future installation of another Python interpreter could
     change this. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
     ok: [<Server-IP>
     
    
     TASK [Update apt package cache.] ********************************************************************************************************************************************************
     changed: [<Server-IP>]
     
     TASK [Upgrade installed apt packages.] **************************************************************************************************************************************************
     ok: [<Server-IP>]
     
     TASK [Ensure that a base set of software packages are installed.] ***********************************************************************************************************************
     ok: [<Server-IP>]
     
     PLAY RECAP ******************************************************************************************************************************************************************************
     <Server-IP>     : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    

    Fazit

    Sieht nach einem sehr mächtigen Werkzeug aus und auch extrem umfangreich. Aber auch das was ich suche um ein paar Dinge zu erledigen, die ich nicht immer wieder von Hand machen möchte. Beispiele

    • apt update && apt upgrade
    • packages installieren
    • firewall installieren (Mein Standardfile)
    • und viele Dinge, die mir im Moment nicht einfallen 😉

    Fortsetzung folgt...

  • KDE neon 6.0

    Linux
    2
    0 Stimmen
    2 Beiträge
    103 Aufrufe
    FrankMF

    Heute mal in die bestehende Installation meine Intel ARC A580 GPU eingesteckt. Wollte mal schauen ob das gut klappt. Da die Treiber ja im Kernel vorhanden sind, habe ich keinerlei Probleme erwartet. Und so war es auch. Neustart und fertig. Im BIOS natürlich vorher umgestellt, das sie auch benutzt wird, habe ja einen AMD Prozessor mit eingebauter GPU im CPU-Sockel stecken.

    Screenshot_20240303_101728.png

    Die Wechselfunktion (oben links in der Ecke) um die virtuellen Desktops zu wechseln und zu bearbeiten ist richtig gut geworden.

    Screenshot_20240303_101809.png

    Und auch ein Ärgernis auf meiner KDE Plasma Installation scheint weg zu sein. Wenn ich ein Programm zur Arbeitsfläche hinzugefügt hatte, wurde die Position immer irgendwann zurückgesetzt. Beispiel, Icon des Programmes rechts unten abgelegt. Irgendwann tauchte es dann in der normalen Ansicht (alphabetisch) sortiert, links oben, wieder auf. Sehr nerviger Bug.

  • Ansible - Hetzner Server erstellen

    Verschoben Ansible
    1
    0 Stimmen
    1 Beiträge
    154 Aufrufe
    Niemand hat geantwortet
  • Test - Nach einigen Änderungen

    Linux
    1
    0 Stimmen
    1 Beiträge
    37 Aufrufe
    Niemand hat geantwortet
  • Letzter Test - wir hoffen mal

    Linux
    1
    0 Stimmen
    1 Beiträge
    34 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    304 Aufrufe
    Niemand hat geantwortet
  • Kopia 0.6.x released

    Kopia
    3
    0 Stimmen
    3 Beiträge
    229 Aufrufe
    FrankMF

    0.6.3 released

    c142598 Disable blob deletion in 0.6 unless KOPIA_ENABLE_BLOB_DELETION is set to true (#552)

    Aufpassen, es gibt da wohl ein Problem, was zu Datenverlust führen könnte!

  • checkmk - Dockerinstallation

    Verschoben checkmk
    9
    0 Stimmen
    9 Beiträge
    960 Aufrufe
    FrankMF

    Und noch was Wichtiges.

    6777da6e-3b4f-41b9-bf6e-26496ae67cd8-grafik.png

    Damit sichert man den Datenaustausch ab.

    Kapitel 7.4. Inbuilt encryption

    Den Ordner findet man hier -> /etc/check_mk/encryption.cfg

  • Vorstellung von Joplin

    Linux
    3
    0 Stimmen
    3 Beiträge
    967 Aufrufe
    FrankMF

    Heute das Ganze nochmal ausprobiert. 🙂

    Unter "Werkzeuge/Allgemeine Einstellungen"

    0_1539095579387_2541359f-78f0-4b14-b540-beddb80e7f45-grafik.png

    Danach auf "Synchronisieren" klicken. Nach kurzer Zeit fragt er nach dem fehlenden Passwort. Passwort eingeben und kurze Zeit später waren alle Daten wieder da. Diesmal ging das ruckzuck.

    Joplin 1.0.111 (prod, linux)