SSH ist ein mächtiges Protokoll und eine der Grundlagen von Ansible. In einem Arbeitsumfeld möchte man aber nicht unbedingt jedermann den Zugriff auf fremde Rechner ermöglichen, sobald ein Passwort einmal bekannt wird, erst recht nicht, wenn es sich um das root-Passwort eines Rechners handelt. Diese Anleitung steht für sich allein, knüpft aber an die folgenden…
FreeIPA: Host-Based Access Control
Nachdem eine FreeIPA-Domäne eingerichtet wurde, gilt standardmäßig die Regel, dass alle Benutzer auf allen Rechnern der Domäne alle Dienste nutzen dürfen. In meiner Domäne möchte ich restriktivere Zugriffsregeln erstellen und es zum Beispiel nur dem Ansible-Benutzer erlauben, sich per SSH mit den Rechnern zu verbinden und sudo zu verwenden. Das lässt sich mit sogenannten Host-Based-Access-Control-Regeln…
Ansible-Playbooks: Herunterfahren oder neustarten
Ansible kann sich auch um das Herunterfahren und Neustarten von Rechnern aus dem Inventory kümmern. Hier ist zum Beispiel ein Playbook für den Reboot (Voraussetzung ist mindestens Ansible 2.7): Natürlich kann das hier sehr einfach gehaltene Play auch in einem längeren Playbook eingesetzt werden. Ansible wartet dann, bis die Maschine wieder hochgefahren ist. Auch wenn…
PowerShell-Fallen #5: Doppelte, einfache, maskierte Anführungszeichen
Gerade für Pfadangaben sind „Gänsefüßchen“ unverzichtbar, damit Whitespace als Teil des Pfades interpretiert wird. Klassiker: C:\Program Files Manchmal soll der Pfad aber gar nicht sofort von PowerShell verwertet, sondern zusammen mit den Anführungszeichen irgendwohin geschrieben werden, um sie dann später von einem anderen Prozess wieder einzulesen. So möchte man zum Beispiel eine geplante Augabe in…
Ansible-Playbooks: Einfache Software-Verteilung und Updates
Mit Ansible ist es sehr einfach, auf den verwalteten Rechnern Software zu verteilen. Vorbei sind die Zeiten, in denen Applikationen „gepusht“ und dann abgewartet wurde, ob sie auch wirklich „angekommen“ sind. Diese Anleitung steht für sich allein, knüpft aber an folgende Beiträge an: FreeIPA: Installation eines Domain Controllers Ansible in einer FreeIPA-Domäne einrichten Das folgende…
PowerShell-Fallen #4: Wenn Äpfel Birnen gleichen, aber Birnen nicht Äpfeln
Mit dem Gleichheitsoperator -eq werden in PowerShell zwei Operanden auf Gleichheit überprüft, wie man es in den meisten anderen Programmiersprachen mit == unternimmt. A == B entspräche darum notwendigerweise B == A. Type Casting, mal wieder! In PowerShell kann $A -eq $B aber unter Umständen das Gegenteil von $B -eq $A ergeben! Der Beweis folgt…
FreeIPA: sudo-Regel für den Ansible-Benutzer
Ansible basiert auf dem SSH-Zugriff auf entfernte Rechner. Normalerweise soll Ansible auch administrative Tätigkeiten im Netzwerk wahrnehmen, und dafür bedarf es Administratorrechte, die auf Linux-Rechnern üblicherweise nicht direkt über den oft gar nicht existenten oder nicht aktivierten root-Benutzer, sondern über das Programm sudo verliehen werden. Wer welche Proramme in wessen Namen ausführen darf, bestimmt die…
PowerShell-Fallen #3: Dateipfade verbinden
Irgendwann muss jeder einmal zwei oder mehr Strings zu einem Dateipfad zusammenführen. Nicht optimal: + Wenn es einmal schnell gehen soll, kann man sie natürlich immer mit dem Additionsoperator verbinden, aber leider wird dabei nicht überprüft, ob das Ergebnis wirklich ein gültiger Pfad ist: Join-Path … und seine Nachteile Der Befehl Join-Path ist genau dafür…
Ansible in einer FreeIPA-Domäne einrichten
Ansible ist eine Automatisierungslösung zum Configuration Management und Software Deployment (und eigentlich alles, was mit automatisierten Aufgaben zu tun hat), die im Gegensatz zu bekannten Lösungen wie SCCM, Baramundi oder Empirum nicht auf einen Client oder Agent auf dem entfernten Rechner angewiesen ist, sondern push-basiert über SSH auf entfernte Rechner zugreift. Um wiederkehrende Aufgaben auszuführen,…
PowerShell-Fallen #2: Substrings in Strings suchen
Oft möchte man prüfen, ob ein String eine bestimmte Zeichenkette enthält – am besten unabhängig von der Groß- und Kleinschreibung. Und wenn sich ein PowerShell-Neuling mit den Möglichkeiten befasst, stößt er schnell auf die vielen Vergleichsoperatoren, darunter contains und auch viele andere, die mit einem i wie in case-insensitive beginnen. Es gibt sogar icontains, also…