Site icon bintorosoft.com

Infrastructure as Code für Linux Setups: Ansible, Terraform & GitOps

Turtle with glasses and a surprised look on her face is looking at a laptop on white background.

In modernen IT-Infrastrukturen gewinnt Infrastructure as Code (IaC) zunehmend an Bedeutung. Anstatt Server manuell zu konfigurieren, ermöglicht IaC, Systeme, Netzwerke und Anwendungen über deklarative Konfigurationen konsistent und wiederholbar bereitzustellen. Dieser Artikel zeigt, wie Linux-Setups mit Ansible, Terraform und GitOps automatisiert werden können, um Effizienz, Sicherheit und Skalierbarkeit zu gewährleisten.

1. Grundlagen von Infrastructure as Code

Infrastructure as Code beschreibt die Verwaltung und Bereitstellung von IT-Ressourcen mittels maschinenlesbarer Definitionen. Ziele sind Automatisierung, Konsistenz und Versionierung.

2. Ansible für Linux-Server

Ansible ist ein agentenloses Automatisierungstool für Konfiguration, Orchestrierung und Deployment. Mit Playbooks lassen sich Linux-Server standardisiert einrichten.

Installation und Setup

sudo apt update
sudo apt install -y ansible
ansible --version

Inventories und Playbooks

Ein Inventory definiert Hosts:

[webservers]
web01.example.com
web02.example.com

Ein einfaches Playbook zur Paketinstallation:

- name: Basis-Pakete installieren
  hosts: webservers
  become: yes
  tasks:
    - name: Update & Upgrade
      apt:
        update_cache: yes
        upgrade: dist
    - name: Installiere Nginx
      apt:
        name: nginx
        state: present

Idempotenz und Testing

Ansible sorgt dafür, dass wiederholte Runs keine unerwarteten Änderungen verursachen. Testen erfolgt z.B. mit:

ansible-playbook -i inventory.ini setup.yml --check

3. Terraform für Infrastruktur

Terraform automatisiert die Bereitstellung von Infrastrukturressourcen auf Cloud- oder On-Premise-Plattformen.

Installation

sudo apt install -y wget unzip
wget https://releases.hashicorp.com/terraform/1.7.6/terraform_1.7.6_linux_amd64.zip
unzip terraform_1.7.6_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform -version

Terraform Konfiguration

Ein Beispiel für AWS EC2:

provider "aws" {
  region = "eu-central-1"
}

resource "aws_instance" "web" {
ami = "ami-123456"
instance_type = "t3.micro"

tags = {
Name = "WebServer"
}
}

Planen und Anwenden

terraform init
terraform plan
terraform apply

4. GitOps für kontinuierliches Deployment

GitOps nutzt Git-Repositories als Quelle der Wahrheit für Systemkonfigurationen. Änderungen in Git lösen automatische Deployments aus.

Workflow

Beispiel ArgoCD Setup

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
argocd login  --username admin --password 
argocd app create my-app --repo https://github.com/org/repo.git --path ./deploy --dest-server https://kubernetes.default.svc --dest-namespace default
argocd app sync my-app

5. Kombination von Ansible, Terraform und GitOps

Effiziente Setups nutzen Terraform für die Infrastruktur, Ansible für die Konfiguration und GitOps für kontinuierliches Deployment.

6. Best Practices

7. Monitoring und Reporting

Infrastructure as Code erlaubt auch Monitoring der Automatisierung.

8. Zusammenfassung

Mit Infrastructure as Code können Linux-Setups effizient, konsistent und skalierbar bereitgestellt werden. Terraform sorgt für die Infrastruktur, Ansible für die Konfiguration und GitOps für kontinuierliche Synchronisation. Durch den Einsatz dieser Technologien sparen Administratoren Zeit, erhöhen Sicherheit und gewährleisten reproduzierbare Deployments, die audit-ready und wartbar sind.

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