Site icon bintorosoft.com

Benutzer-Onboarding automatisieren: Skripte und Ansible Basics

A tiny penguin chick sits on a keyboard, exploring the computer. Its fluffy appearance and curious expression create a delightful scene.

Das Onboarding neuer Benutzer auf Linux-Servern ist ein wiederkehrender administrativer Prozess, der zeitaufwendig und fehleranfällig sein kann. Durch Automatisierung mit Skripten und Konfigurationsmanagement-Tools wie Ansible lassen sich Benutzerkonten, Gruppen, Home-Verzeichnisse, SSH-Schlüssel und Berechtigungen schnell und konsistent einrichten. In diesem Tutorial erfahren Sie praxisnah, wie Sie ein effizientes Benutzer-Onboarding auf Linux-Servern implementieren.

Manuelles Benutzer-Onboarding: Überblick

Traditionell werden Benutzerkonten auf Linux-Servern manuell angelegt. Typische Schritte sind:

Beispiel: Manueller Ablauf

sudo useradd -m -s /bin/bash max
sudo passwd max
sudo usermod -aG sudo max
mkdir /home/max/.ssh
chmod 700 /home/max/.ssh
echo "ssh-rsa AAAAB3NzaC1..." > /home/max/.ssh/authorized_keys
chmod 600 /home/max/.ssh/authorized_keys
chown -R max:max /home/max/.ssh

Dieser Prozess wiederholt sich für jeden Benutzer und ist fehleranfällig – insbesondere bei mehreren Servern oder größeren Teams.

Automatisierung mit Bash-Skripten

Bash-Skripte ermöglichen die Automatisierung des Benutzer-Onboardings auf einem Server. Ein einfaches Skript kann alle erforderlichen Schritte zusammenfassen.

Beispiel-Skript für Benutzeranlage

#!/bin/bash

USERNAME=$1
SSH_KEY=$2

if id "$USERNAME" > /dev/null 2>&1; then
    echo "Benutzer $USERNAME existiert bereits"
    exit 1
fi

# Benutzer erstellen
sudo useradd -m -s /bin/bash $USERNAME

# Passwort zufällig generieren
PASSWORD=$(openssl rand -base64 12)
echo "$USERNAME:$PASSWORD" | sudo chpasswd

# SSH-Verzeichnis und Berechtigungen
sudo mkdir -p /home/$USERNAME/.ssh
sudo chmod 700 /home/$USERNAME/.ssh
echo "$SSH_KEY" | sudo tee /home/$USERNAME/.ssh/authorized_keys
sudo chmod 600 /home/$USERNAME/.ssh/authorized_keys
sudo chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh

echo "Benutzer $USERNAME wurde erstellt. Passwort: $PASSWORD"

Dieses Skript kann zentral verwaltet und bei Bedarf wiederverwendet werden. Es reduziert manuelle Fehler und sorgt für konsistente Benutzerkonten.

Ansible Basics für Benutzer-Onboarding

Ansible ist ein mächtiges Tool für die serverübergreifende Konfigurationsverwaltung. Mit Ansible können Benutzer auf mehreren Servern gleichzeitig erstellt und verwaltet werden.

Inventar und Playbook

Ein einfaches Inventar definiert die Hosts:

[servers]
server1.example.com
server2.example.com

Ein Playbook für Benutzer-Onboarding:

- name: Benutzer auf Linux-Servern anlegen
  hosts: servers
  become: yes
  tasks:
    - name: Benutzer erstellen
      user:
        name: "{{ username }}"
        shell: /bin/bash
        groups: sudo
        state: present
        create_home: yes

    - name: SSH-Verzeichnis erstellen
      file:
        path: "/home/{{ username }}/.ssh"
        state: directory
        owner: "{{ username }}"
        group: "{{ username }}"
        mode: 0700

    - name: Public Key hinzufügen
      authorized_key:
        user: "{{ username }}"
        key: "{{ ssh_key }}"
        state: present

Variablen definieren

username: max
ssh_key: "ssh-rsa AAAAB3NzaC1..."

Mit diesem Playbook werden Benutzer automatisch auf allen definierten Servern erstellt, inkl. Gruppen, Home-Verzeichnis und SSH-Zugriff.

Erweiterungen und Best Practices

Testing und Validierung

Nach der Automatisierung sollten alle Benutzerkonten überprüft werden:

id max
getent passwd max
ssh max@server1.example.com

Fehlerhafte Konfigurationen können frühzeitig erkannt und korrigiert werden.

Skalierung auf mehrere Server

Ansible ermöglicht das Ausrollen von Benutzerkonten auf Hunderten von Servern gleichzeitig. Rollen und Playbooks können wiederverwendet und versioniert werden. Für große Umgebungen empfiehlt sich ein zentrales Management der Benutzer-Keys und -Gruppen.

Zusammenfassung

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version