Come installare e configurare PowerShell 7 usando Ansible

Contenuti

Se non conosci Ansible, è un linguaggio di implementazione in cui puoi scrivere playbook per inviare una serie di comandi ai sistemi e istruirli su cosa fare. A differenza di molti altri sistemi di configurazione, non hai bisogno di un agente sul sistema di destinazione. Questo lo rende facile da usare e configurare.

In questo post, esploriamo come creare un semplice playbook Ansible per installare PowerShell 7 su più sistemi.

Installazione di Ansible su Windows e Linux

Installare Ansible su un sistema Linux è molto semplice. La maggior parte dei sistemi di pacchetti per le distribuzioni Linux ha questo integrato. Un po 'di modi comuni per installare Ansible sono i seguenti:

Nonostante questo, Windows è un caso unico, poiché Ansible non è abilitato come pacchetto Windows. Il modo più semplice per installare Ansible per l'uso su Windows è utilizzare il sottosistema Windows per Linux (WSL). Questa è un'istanza virtualizzata di Linux in esecuzione in parallelo con Windows. Una volta installato, puoi utilizzare gli stessi comandi di installazione all'interno di WSL per installare Ansible.

Configuratore Ansible

Ci sono alcuni componenti chiave per ansible di cui abbiamo bisogno per installare PowerShell 7. In particolare, abbiamo bisogno di un file hosts per impostare le nostre posizioni di destinazione. Ci sono molte alternative per configurarlo, ma di solito, una struttura di cartelle come quella mostrata di seguito funziona bene.

Entro inventories directory, creeremmo un hosts file contenente tutti i sistemi che vogliamo prendere di mira con il nostro playbook. Un semplice file hosts che crea un gruppo di host sotto il production etichetta descritta di seguito. I commenti sono utili per dirti qual è l'effettivo nome host dei sistemi.

[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

Puoi creare più gruppi di host e lo stesso host può esistere in più gruppi. Ciò rende il raggruppamento e il "tagging" di tali host più facili da gestire in un secondo momento per ruoli più complessi..

Creare il nostro Playbook

Ora che abbiamo il nostro file hosts, possiamo iniziare a costruire il nostro playbook. Per fare questo, creiamo prima una nuova cartella sotto il playbooks cartella per contenere il nostro playbook. In questa circostanza la chiameremo deploy-powershell. Sotto quella cartella, creeremo il seguente file, main.yml. il main.yml file è il nostro punto di ingresso principale per il playbook. Non deve necessariamente essere nominato main.yml ma è una convenzione comune.

---
- 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

Espansione del nostro playbook per altri host

A quest'ora, il nostro playbook gestisce solo i sistemi Ubuntu Linux. Per aggiornare questo, possiamo usare i condizionali Ansible per renderlo un po' più robusto. Estendiamo questo per essere compatibile con i sistemi Redhat Linux e Fedora.

Per consentire il supporto per altri sistemi di installazione dei pacchetti, noi usiamo il when clausola condizionale. Quando si legge il ansible_distribution valore, possiamo dire ad Ansible di indirizzare solo determinate distribuzioni per comandi specifici.

---
- 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'

Esecuzione del nostro playbook

Il nostro playbook è pronto, quindi andiamo avanti e installiamolo sui sistemi che vogliamo. Per fare questo, eseguiremo la prossima riga di comando.

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

Mentre eseguiamo questo, otterremo i risultati di ogni passaggio per ogni host su cui è in esecuzione il playbook e il suo tasso di successo. Ogni comando verrà eseguito su ogni sistema durante l'esecuzione del playbook, questo significa che ogni comando deve essere completato prima di passare al comando successivo. Allo stesso tempo, il condizionale when mostrerà come un salto all'interno dei risultati.

conclusione

Ansible semplifica l'installazione di PowerShell su più sistemi contemporaneamente. Una volta PowerShell 7 è installato su quei sistemi, puoi continuare a utilizzare Ansible e quindi configurare la shell per la registrazione, accesso remoto e altre funzionalità per rendere ancora più semplice la migrazione da Windows PowerShell o PowerShell Core al nuovo PowerShell 7 unificato.

Ansible in combinazione con PowerShell consente di distribuire rapidamente e facilmente PowerShell a molti sistemi diversi in un metodo flessibile e conveniente.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.