Skip to content

Ansible Playbooks auf Servern mit SSH Key Authentifizierung verwenden

Manch einer automatisiert seine IT Umgebung via Ansible. Das Orchestrierungstool arbeitet über SSH und benötigt keine Agenten auf den Zielsystemen.

Ansible

 

Da gut konfigurierte Systeme neben einem Passwort durch einen SSH Key geschützt sind, muss beim Ausrollen eines Playbooks über die Kommandozeile theoretisch für jedes System ein Key geladen und ein Passwort eingegeben werden.

Dies lässt sich mit einem kleinen Trick umgehen, bzw. optimieren. Ich setze hier voraus, dass Geräte bereits für SSH Key Auth eingerichtet worden sind.

Ansible Playbooks mit SSH Keys nutzen

Soll ein Playbook ausgerollt werden, muss im Vorfeld der nötige Key eingelesen werden.

eval $(ssh-agent)

Enter passphrase for /home/itrig/.ssh/id_rsa: ******************

                Identity added: /home/itrig/.ssh/id_rsa

Nun kann das gewünschte Playbook ausgerollt werden.

ansible-playbook -l hostliste playbook.yml --ask-become-pass

Ein sudo Passwort wird weiterhin abgefragt, die Eingabe des  Passworts für eine Passphrase fällt nun bei jedem System weg. 

Vorraussetzung ist ein gleicher SSH Key auf allen Geräten, was einem Single Point of Failure nahe kommt, in diesem Kontext aber gewollt ist.  

Nun bleibt noch die Frage, was ist eval?

eval: eval [arg ...]

    Execute arguments as a shell command.

    Combine ARGs into a single string, use the result as input to the shell,

    and execute the resulting commands.

    Exit Status:

    Returns exit status of command or success if command is null.

eval [arg ...]

    The  args  are read and concatenated together into a single com-

    mand.  This command is then read and executed by the shell,  and

    its  exit status is returned as the value of eval.  If there are

    no args, or only null arguments, eval returns 0.

 

Fertige Playbooks oder Beispiele lassen sich in der Ansible Galaxy finden.

Beispielsweise für eine Paketinstallation auf Linuxsystemen:

Ansible Playbook zur Installation der Open VMware Tools

- name: install open-vm-tools
  hosts: vmwareclients
  gather_facts: True
  become: true
  become_user: root
  tasks:
- name: debian install open-vm-tools
  apt: name=open-vm-tools state=present
  when: ansible_os_family == "Debian" and ansible_virtualization_type == "VMware"

- name: centos install open-vm-tools
  yum: name=open-vm-tools state=present
  when: ansible_os_family == "RedHat" or ansible_distribution == 'CentOS' and ansible_virtualization_type == "VMware"

 

pgAdmin 4.x für Ubuntu, Debian, Mint und Co via Repository verfügbar

Kurze Meldung für PostgreSQL Freunde unter euch. Das bereits vorgestellte pgAdmin 4.x zur grafischen PostgreSQL Datenbank Server Verwaltung kann nun auch aus dem Postgres Repository installiert werden.

Bisher war unter Ubuntu oder Debian nur eine Installation via Python Wheel oder Docker möglich.

pgadmin4

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt-get update

sudo apt-get install pgadmin4

 

Anleitung: PostgreSQL 9.x Installation auf Postgres 10 aktualisieren

PostgreSQL 10 ist nun seit ein paar Monaten auf dem Markt. Somit kann an ein Update der bestehenden Infrastruktur gedacht werden.

Diese kurze Anleitung soll zeigen, wie ein Update einer 9.x Installation auf die aktuelle Version 10 unter Ubuntu Server gelingt.

PostgreSQL Server 9.x auf Version 10 aktualisieren

Zunächst wird das aktuelle Repository hinterlegt.

sudo echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc |   sudo apt-key add -

sudo apt-get update

Nun kann die aktuelleste Version installiert werden

sudo apt-get dist-upgrade

oder

sudo apt install postgresql-10

Zur Überprüfung ob auch beide Versionen vorhanden sind können die aktiven DB Cluster aufgelistet werden

pg_lsclusters

ls_clusterNun kann das neue 10er Cluster angehalten und das bestehende aktualisiert werden.

sudo pg_dropcluster 10 main --stop

sudo pg_upgradecluster 9.5 main

Danach sollte wieder ein kurzer Check gemacht werden, bevor das alte System entfernt wird. Ich prüfe hier nur den Prozess.

Am besten die Datenbanken oder Anwendungen direkt auf Funktion prüfen, bevor die alte Version entfernt wird.

ps aux

sudo pg_dropcluster 9.5 main

postgres

PostgreSQL 10 - Neuerungen und Installation unter Ubuntu 16.04 LTS

Vor wenigen Tagen wurde PostgreSQL 10 veröffentlicht. Das Hauptaugenmerk der neuen Version liegt auf logischer Replikation, parallelen Queries und Stabilität bzw. Sicherheit.

postgres_logo

Die Neuerungen

Letzteres macht sich durch die Verabschiedung der veralteten MD5 Authentifizierung bemerkbar. Ab sofort kommt SCRAM-SHA-256 zum Einsatz.

Die Einführung der logischen Replikation verspricht schnelleres Übertragen inkrementeller Änderungen auf andere Nodes. Hier findet sich ein Beispiel zur Anwendung dieses neuen Feature.

Für die synchrone Replikation wurden Quorom Commits eingeführt. Diese, im Rahmen des "Zero Downtime" Plans, eingeführte Funktion erlaubt es dem Admin festzulegen wie viele Replikas erfolgreiche Änderungen melden müssen, damit übertragene Daten als sicher gelten.

Die mit PostgreSQL 9.6 vorgestellen parallelen Queries wurden weiter verbessert. So unterstützen nun Daten Scans wie Index Scans oder Merge Joins diese Funktion.

Die Datenbank Partitionierung wurde ebenfalls erweitert.

Weitere Details lassen sich der PostgreSQL 10 Release Ankündigung entnehmen. Änderungen im Detail sind im Wiki zu finden


Installation PostgreSQL 10 unter Ubuntu 16.04 LTS

Zwar hatte ich die Installation der Beta schon in einen Artikel gepackt
möchte aber dennoch schnell das Vorgehen darlegen.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' 

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
 sudo apt-key add -
      
sudo apt update

sudo apt install postgresql-10


 



Das könnte dich auch interessieren

PostgreSQL 9.6, pgAdmin 4 und Barman 2.0 - Die Neuerungen und Installation unter Ubuntu 14.04 und 16.04

pgAdmin4 - Installation und ein erster Blick auf die neue PostgreSQL Schaltzentrale

PGCenter - PostgreSQL Datenbank Statistiken und Leistungsdaten auf einen Blick

22 praktische PostgreSQL Befehle

Praktische PostgreSQL Tools und Links in der Übersicht

pgBadger 4.0 - PostgreSQL Logs analysieren und auswerten

PgTune - Performance Einstellungen für PostgreSQL Datenbanken automatisch erstellen

Debian 9 Stretch - Systemd deinstallieren und SysV-Init verwenden

Seit einigen Jahren setzen viele Distributionen auf systemd. Das neue Init System ist allerdings nicht bei allen beliebt und führte in der Vergangenheit zu Forks wie beispielsweise Devuan.

Ebenfalls sind im Vergleich zu SysV-Init noch Unstimmigkeiten oder Sicherheitslücken vorhanden. (Siehe CVE)

debian

Welches System am Ende zum Einsatz kommt, hängt oft von der verwendeten Distribution ab.

Das muss nicht sein, denn Systeme wie Debian 9 lassen sich einfach umstellen.

Zunächst sollte überprüft werden, welches Standard-Init-System aktuell im Einsatz ist:

ps -p 1

PID TTY          TIME CMD
    1 ?        00:00:10 systemd

 

 

Debian 9 - Systemd deinstallieren

apt install sysvinit-core

reboot

sysvinit-debian

apt remove --purge --auto-remove systemd*

nano /etc/apt/preferences.d/systemd

Package: systemd
Pin: release *
Pin-Priority: -1

 

SysV-Init überprüfen

Die Überprüfung erfolgt auf die gleiche Weise wie am Anfang des Artikels.

debian9-init

Fazit

Die Umstellung eines aktuellen Debian 9 Stretch Systems ist schnell erledigt, mit Devuan 1.0 ist seit Mitte des Jahres ein Debian Fork vorhanden, welcher direkt auf das alte SysV-Init setzt.