Erste Schritte Mit Ansible Unter Windows

Inhaltsverzeichnis:

Erste Schritte Mit Ansible Unter Windows
Erste Schritte Mit Ansible Unter Windows

Video: Erste Schritte Mit Ansible Unter Windows

Video: Erste Schritte Mit Ansible Unter Windows
Video: Ansible® - Erste Schritte 2023, Dezember
Anonim

Eines der beliebtesten Konfigurationsmanagement- und Infrastrukturautomatisierungsprodukte auf dem Markt ist Ansible. Ansible ist zusammen mit Chef, Puppet und CFEngine Teil einer Klasse von Software für DevOps. Diese Tools helfen bei der Automatisierung der Infrastrukturbereitstellung, der Softwarebereitstellung und des allgemeinen Konfigurationsmanagements.

Ansible konzentriert sich auf Linux. Mit der neuen Haltung von Microsoft zu Open Source, ihren Community-Beiträgen und der Einführung eines agileren, auf DevOps ausgerichteten Softwareentwicklungsansatzes holt die Windows-Unterstützung langsam auf. Wenn Sie von Ansible gehört haben, es aber noch nicht wirklich benutzt haben, ist es relativ einfach, es einzurichten. Obwohl für die Windows-Unterstützung etwas mehr Konfiguration erforderlich ist, ist dies nach Abschluss der Ersteinrichtung nicht allzu schlimm.

Kommen wir zu Ansible und lassen Sie es einfache Änderungen an einem Windows-Knoten bereitstellen.

Einrichten der Linux-VM mit Vagrant

Ansible läuft auf einem Kontrollserver. Im Gegensatz zu anderen Konfigurationsmanagementprodukten verfügt es über keinen Agenten und sendet Befehle an die von ihm kontrollierten Knoten. Leider muss es für uns Windows-Leute unter Linux laufen. Wenn Sie keine Ersatz-Linux-Box zur Hand haben, rufen Sie eine auf. Ich benutze Vagrant für alle meine ersten Tests. Es ist der einfachste Weg, um schnell eine VM mit nahezu jedem Geschmack zum Laufen zu bringen. Dies ist kein Artikel zum Einrichten einer Vagrant-Box, aber ich gebe Ihnen die Vagrant-Datei, die ich zum Aufrufen meiner Testbox verwende.

# - * - Modus: Rubin - * -

# vi: set ft = ruby:

Vagrant.configure (2) do | config |

config.vm.define "ansible" do | ctl |

ctl.vm.box = "Boxcutter / ubuntu1604"

ctl.vm.hostname = "ansible"

ctl.vm.network "private_network", ip: "192.168.2.5"

ctl.vm.provider "virtualbox" do | vb |

vb.memory = 2048

Ende

ende

Diese VagrantFile lädt eine Ubuntu-Box auf VirtualBox herunter, nennt sie "ansible", weist eine private IP zu und gibt ihr 2 GB RAM.

Ansible installieren

Angenommen, Sie haben diese Testbox eingerichtet, dann installieren wir jetzt Ansible. Dazu muss ich in die Linux-Box ssh. Wenn Sie Vagrant verwenden, können Sie eine Verbindung zur VM herstellen, indem Sie 'vagrant ssh' eingeben. Andernfalls müssen Sie wahrscheinlich Putty oder einen anderen Windows SSH-Client herunterladen. Sobald Sie auf der Linux-Serverkonsole sind, ist es Zeit, sich an die Befehlszeile zu gewöhnen. Ansible bietet einige Setup-Anweisungen, aber aus meiner Erfahrung wurden einige Dinge übersehen. Lassen Sie uns die Befehle behandeln, mit denen ich Ansible zum Laufen gebracht habe.

Hinweis: Alle Befehle, die ich ausführen werde, werden unter Ubuntu 16.04 ausgeführt. Wenn Sie eine andere Version von Ubuntu oder einer anderen Distribution ausführen, können Ihre Befehle leicht abweichen.

Zuallererst ist es sicherer, vor dem Start sicherzustellen, dass alle Pakete auf dem neuesten Stand sind. Dazu verwenden Sie apt-get.

sudo apt-get update

Installieren Sie Git, um den Entwicklungszweig von Ansible zu erhalten, da er nützliche Ansible-Module für uns Windows-Typen wie win_command und win_shell enthält.

Um eine Vertrauenswarnung zu einem SSL-Zertifikat zu vermeiden, empfehle ich, die Umgebungsvariable GIT_SSL_NO_VERIFY festzulegen.

export GIT_SSL_NO_VERIFY = 1

Klonen Sie als Nächstes das Ansible Git-Repository und alle untergeordneten Repositorys.

git clone git: //github.com/ansible/ansible.git –recursive

Navigieren Sie zu dem erstellten Ansible-Verzeichnis.

cd./anible

Ansible verwendet Python, daher richten wir jetzt eine Python-Umgebung mit dem Befehl source ein.

source./hacking/env-setup

Installieren Sie Pip. Pip ist die Python-Paketverwaltungsanwendung, mit der ich einige andere erforderliche Pakete herunterladen und installieren kann.

sudo easy_install pip

Laden Sie ein paar weitere erforderliche Pakete herunter. Die Reihenfolge ist hier wichtig.

Sudo Pip installieren PyYAML Jinja2 httplib2 sechs

sudo apt-get installiere libssl-dev

sudo pip install paramiko

Ansible für Windows einrichten

Ansible sollte installiert und einsatzbereit sein. Konzentrieren Sie sich jetzt auf die Windows-spezifischen Aufgaben, mit denen Ansible Windows-Knoten verwalten kann. Da Ansible nativ über SSH funktioniert, hat Windows diesen Luxus noch nicht. Daher müssen wir Ansible die Möglichkeit geben, über WinRM mit Windows-Knoten zu kommunizieren. Dazu müssen wir die pywinrm-Bibliothek von Python installieren.

sudo pip install "pywinrm> = 0.1.1"

Dies ist es für Software-Installationen. Wir müssen Ansible anweisen, SSH nicht zu verwenden und stattdessen WinRM für die gesamte Kommunikation zu verwenden. Aufgrund der Erweiterbarkeit von Ansible gibt es viele Möglichkeiten, dies zu erreichen. Ich habe mich jedoch dafür entschieden, eine Windows-Inventargruppe in einer Datei mit dem Namen "hosts" in./hosts zu erstellen.

Hinweis: Stellen Sie sicher, dass Ansible weiß, wo sich Ihre Inventardatei befindet. Ich habe beschlossen, dies in der ansible.cfg-Datei festzulegen, die sich im ansible-Ordner befindet, in dem ich arbeite.

[Standard]

inventar = / home / vagrant / ansibletesting / hosts

Sobald ich sichergestellt habe, dass Ansible meine Inventardatei findet, füge ich dort unsere Windows-Gruppe hinzu.

[windows]

windowsserver.domain.local

An dieser Stelle muss Ansible angewiesen werden, WinRM anstelle von SSH zu verwenden. Ich kann Ansible-Variablen für Inventargruppen festlegen, indem ich eine Datei namens windows.yml im Verzeichnis group_vars erstelle.

Berühren Sie./group_vars/windows.yml

Ich werde jetzt die YAML-Datei mit den erforderlichen Variablen füllen. Beachten Sie, dass ich nur WinRM über HTTP und nicht HTTPS verwende. Dies ist zwar möglich, erfordert jedoch eine weitere Konfiguration. Klicken Sie auf diesen Link, wenn Sie HTTPS einrichten möchten.

ansible_user: Administrator

ansible_password:

ansible_port: 5985

ansible_connection: winrm

ansible_winrm_scheme:

ansible_winrm_server_cert_validation: ignorieren

Ich verwende das lokale Administratorkonto, um eine Verbindung zu den Windows-Knoten herzustellen. Die Active Directory-Unterstützung ist verfügbar, fällt jedoch nicht in den Geltungsbereich dieses Artikels.

Zu diesem Zeitpunkt kann ich das integrierte Ansible-Modul win_ping ausführen. Dieses Modul erstellt eine WinRM-Sitzung, um sicherzustellen, dass die Einrichtung erfolgreich ist. Unten sehen Sie, dass Ansible angewiesen wird, das win_ping-Modul für alle Knoten in der Windows-Inventargruppe auszuführen.

ansible windows -m win_ping

Kann das Modul win_ping ausführen

Empfohlen: