So installieren und konfigurieren Sie PowerShell 7 mit Ansible

Inhalt

Wenn Sie mit Ansible nicht vertraut sind, ist eine Implementierungssprache, in der Sie Playbooks schreiben können, um eine Reihe von Befehlen an Systeme zu senden und sie anzuweisen, was zu tun ist. Im Gegensatz zu vielen anderen Konfigurationssystemen, Sie brauchen keinen Agenten auf dem Zielsystem. Dies macht es einfach zu bedienen und zu konfigurieren.

In diesem Beitrag, Lassen Sie uns untersuchen, wie Sie ein einfaches Ansible-Playbook erstellen, um PowerShell zu installieren 7 auf mehreren Systemen.

Ansible unter Windows und Linux installieren

Die Installation von Ansible auf einem Linux-System ist sehr einfach. Die meisten Paketsysteme für Linux-Distributionen haben dies eingebaut. Ein bisschen von gängige Möglichkeiten zur Installation Ansible sind wie folgt:

Trotz dieses, Windows ist ein einzigartiger Fall, da Ansible nicht als Windows-Paket aktiviert ist. Der einfachste Weg, Ansible für die Verwendung unter Windows zu installieren, ist die Verwendung des Windows-Subsystems für Linux (WSL). Dies ist eine virtualisierte Instanz von Linux, die parallel zu Windows läuft. Einmal installiert, Sie können die gleichen Installationsbefehle innerhalb von WSL verwenden, um Ansible zu installieren.

Ansible konfigurieren

Es gibt einige Schlüsselkomponenten für ansible, die wir benötigen, um PowerShell zu installieren 7. Bestimmtes, wir brauchen eine hosts-Datei, um unsere Zielorte festzulegen. Es gibt viele Alternativen, dies zu konfigurieren, aber normalerweise, eine Ordnerstruktur wie die unten gezeigte funktioniert einwandfrei.

Innerhalb inventories Verzeichnis, wir würden ein erstellen hosts Datei mit allen Systemen, die wir mit unserem Playbook ansprechen möchten. Eine einfache Hosts-Datei, die eine Gruppe von Hosts unter dem . erstellt production unten beschriebenes Etikett. Kommentare sind nützlich, um Ihnen den tatsächlichen Hostnamen des Systems mitzuteilen.

[production]
#test-system-01
100.100.10.10
#test-system-02
100.100.10.11
#test-system-03
100.100.10.12
#test-system-04
100.100.10.13

Sie können mehrere Hostgruppen erstellen und derselbe Host kann in mehreren Gruppen vorhanden sein. Dies macht das Gruppieren und „Taggen“ dieser Hosts später für komplexere Rollen einfacher zu verwalten..

Erstellen unseres Playbooks

Jetzt haben wir unsere Hosts-Datei, wir können mit dem Bau unseres Playbooks beginnen. Um dies zu tun, erstellen wir zuerst einen neuen Ordner unter dem playbooks Ordner für unser Playbook. In diesem Fall werden wir es nennen deploy-powershell. Unter diesem Ordner, Wir werden die folgende Datei erstellen, main.yml. das main.yml Datei ist unser Haupteinstiegspunkt für das Playbook. Muss nicht unbedingt benannt werden main.yml aber es ist eine übliche Konvention.

---
- name: Install PowerShell 7
  hosts: all
  tasks:
	- name: Download and Add Powershell Key to Apt-Get Keyring
	  apt_key:
	    dirección url: "https://packages.microsoft.com/keys/microsoft.asc"
	    state: present
	
	- name: Add Powershell Repository into /etc/apt/sources.list - Bionic
	  apt_repository:
	    repo: 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main'
	    state: present
	
	- name: Install Powershell
	  apt:
	    pkg: powershell
	    state: latest
	    force: yes

Erweiterung unseres Playbooks für andere Hosts

Zu diesem Zeitpunkt, unser Playbook verarbeitet nur Ubuntu Linux-Systeme. Um dies zu aktualisieren, Wir können Ansible-Bedingungen verwenden, um dies etwas robuster zu machen. Lassen Sie uns dies erweitern, um mit Redhat Linux- und Fedora-Systemen kompatibel zu sein.

Um Unterstützung für andere Paketinstallationssysteme zu ermöglichen, wir nehmen das when Konditionalsatz. Beim Lesen der ansible_distribution Wert, Wir können Ansible anweisen, nur bestimmte Distributionen für bestimmte Befehle anzusprechen.

---
- name: Install PowerShell 7
  hosts: all
  tasks:
	- name: Download and Add Powershell Key to Apt-Get Keyring
	  apt_key:
	    dirección url: "https://packages.microsoft.com/keys/microsoft.asc"
	    state: present
	
	- name: Add Powershell Repository into /etc/apt/sources.list - Ubuntu
	  apt_repository:
	    repo: 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main'
	    state: present
		when: ansible_distribution == 'Ubuntu'

	- name: Add repository - Fedora
	  yum_repository:
	    name: microsoft
	    description: Microsoft Repository
	    baseurl: "https://packages.microsoft.com/config/rhel/7/prod.repo"
		when: ansible_distribution == 'Fedora'

	- name: Add repository - RedHat
	  yum_repository:
	    name: microsoft
	    description: Microsoft Repository
	    baseurl: "https://packages.microsoft.com/config/rhel/7/prod.repo"
		when: ansible_distribution == 'RedHat'

	- name: Install Powershell Package
	  apt:
	    pkg: powershell
	    state: latest
	    force: yes
		when: ansible_distribution == 'Ubuntu'

	- name: Install the PowerShell Package
	  yum:
	    name: powershell
	    state: latest
		when: ansible_distribution == 'RedHat'

	- name: Install the PowerShell Package
	  dnf:
	    name: powershell
	    state: latest
		when: ansible_distribution == 'Fedora'

Ausführen unseres Playbooks

Unser Playbook ist fertig, Also lass uns loslegen und dies auf den Systemen installieren, die wir wollen. Um dies zu tun, wir werden die nächste Befehlszeile ausführen.

ansible-playbook /path/to/main.yml -i /path/to/hosts

Während wir das laufen, Wir erhalten die Ergebnisse jedes Schritts für jeden Host, gegen den das Playbook ausgeführt wird, und seine Erfolgsrate. Jeder Befehl wird auf jedem System ausgeführt, während das Playbook ausgeführt wird, Dies bedeutet, dass jeder Befehl abgeschlossen sein muss, bevor zum nächsten Befehl übergegangen wird. Zur selben Zeit, das bedingte when wird als Sprung innerhalb der Ergebnisse angezeigt.

Fazit

Ansible macht es einfach, PowerShell auf mehreren Systemen gleichzeitig zu installieren. Einmal PowerShell 7 ist auf diesen Systemen installiert, Sie können Ansible weiterhin verwenden und dann die Shell für die Registrierung konfigurieren, Remotezugriff und andere Funktionen, um die Migration von Windows PowerShell oder PowerShell Core auf die neue PowerShell noch einfacher zu machen 7 einheitlich.

Ansible in Kombination mit PowerShell ermöglicht es Ihnen, PowerShell schnell und einfach auf viele verschiedene Systeme auf flexible und bequeme Weise zu verteilen.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.