Automatizza Windows con Ansible Winrm

Automatizza Windows con Ansible Winrm

Molte persone hanno idee sbagliate su Ansible e sulle piattaforme che supporta, credendo che sia accessibile solo per Ubuntu. Tuttavia, Ansible può anche essere utilizzato per controllare i PC Windows, i dispositivi connessi, i dispositivi di sicurezza Internet, i servizi Web, le applicazioni e altre cose. Parleremo di usare Windows con Ansible in questo tutorial.

Lo strumento di configurazione Ansible può amministrare e svolgere attività essenziali nelle installazioni di Windows, come i manager remoti con WinRM e avvisi di protezione. Nonostante abbia richiesto a Ubuntu di operare in Ansible, i controller Microsoft possono amministrare e gestire i propri dispositivi utilizzando Ansible nonostante abbia alcuna esperienza precedente con i terminali Ubuntu. I controller Microsoft saranno in grado di amministrare Microsoft Windows utilizzando Ansible in un modo che è rilevante per loro a causa della funzionalità di Windows nativa che impiega Microsoft Windows PowerShell Remote. Le soluzioni avanzate per il controllo e la gestione delle piattaforme di Microsoft Windows sono incluse nella piattaforma software ANSible per la gestione organizzativa. È possibile automatizzare la distribuzione, l'attivazione del software e l'integrazione del sistema per un ambiente multivartore con l'aiuto della piattaforma software Ansible.

In Ansible, la maggior parte della terminologia e delle linee guida utilizzate per gestire gli host remoti di Linux e queste terminologie si applicano ugualmente agli host di Microsoft Windows. Ma ci sono ancora alcune peculiarità ogni volta che riguarda le variabili di separatori del percorso ansibile o attività specifiche del sistema operativo. WinRM deve essere impostato per consentire l'accesso ai sistemi Windows dal controller Ansible. Puoi essere avviato utilizzando Ansible per Microsoft Windows nelle impostazioni di sviluppo o monitoraggio eseguendo lo script PowerShell. Ogni host Microsoft Windows autorizzato è configurato dallo script per WinRM.

Prerequisiti:

Assicurati di avere sempre questi requisiti:

Versione: Utilizzeremo Ansible Controller versione 2.9. Per apportare modifiche, abbiamo bisogno di un server di controllo per Ansible e, in questo caso, stiamo usando Ansible come controller con l'indirizzo IP 192.168.5.220.

Host di Windows: Richiediamo loro di interagire con gli ospiti locali. Inoltre, stiamo utilizzando l'host di Windows in questa istanza come server remoto target per la durata dell'operazione.

Pitone: Il tuo dispositivo host ansible controller sarà configurato per eseguire Python. Python utilizzerà la versione 2, mentre la versione 3 è anche un'opzione.

Pacchetto: Il server host Windows verrà configurato per installare il pacchetto "PIP".

Windows Workstation: Dovrai trascorrere del tempo in una console Windows mentre preconfiguriamo l'host che Microsoft utilizzerà per gestire Ansible.

Guscio di potenza: Il server Windows avrà la possibilità di controllare l'accesso remoto PowerShell.

Esempio: stabilire un host Microsoft Windows per consentire connessioni con controller Ansible

In questo esempio, in primo luogo, lavoreremo per l'host remoto target che è Windows_host. Quindi, lavoreremo con Ansible in modo che non ci sarà confusione per l'utente.

Target Window_host

Non ci sono server necessari per Ansible. Quindi, sia SSH che Windows Remote Manager sono compatibili con Windows WinRM. WinRM significa Windows Remote Manager ed è spesso usato su SSH a causa della stretta integrazione di WinRM.

PS C: \ Windows \ System32> WinRM Get WinRM/Config/Service

Imposta il winrm

Successivamente, aggiorneremo il WinRM in Microsoft Windows. Il software Ansible ha creato comandi disponibili per valutare WinRM ed eseguire le regolazioni richieste in modo che Ansible possa accedere a questi comandi. Sebbene vogliamo solo utilizzare le credenziali di base, quindi preferiremmo impiegare qualcosa di più sicuro per accedervi. I seguenti sono i passaggi per l'aggiornamento di WinRM:

Salvare il percorso dei comandi

Useremo i comandi, quindi per questo, lanciamo prima la finestra Terminal Microsoft PowerShell in modo da poter salvare il percorso dei comandi.

PS C: \> $ url = "https: // raw.githubusercontent.com/ansible/ansible/sviluppo/esempi/script/
Configureremotingforansible.PS1 "
Indirizzo dell'archiviazione del comando

Useremo l'URL di seguito in modo da poter conservare facilmente i comandi lì:

PS C: \> $ file = "$ env: temp \ configuremotingforasible.PS1 "

Scarica i comandi e mostrarli a livello locale

Ora scaricheremo i comandi e mostreremo questi comandi in un documento locale.

PS C: \> (Sistema di tipo nuovo object.Netto.Webclient).DownloadFile ($ url, $ file)

Esegui i comandi

Da eseguire, il comando è il percorso che mostrerà l'esecuzione del documento.

PS C: \> PowerShell.exe -executionpolicy bypass -file $ file

Dopo aver scritto il percorso sopra, otterremo l'output di seguito nel PowerShell in Windows.

Verifica la connettività WinRM

Questo per verificare se la connessione del winrm è costruita o no.

PS C: \> winrm enumera winrm/config/listener

Come mostrato, Ansible e Winrm sono compatibili tra loro.

Controller Ansible

Questo è il lavoro nello strumento Ansible e i comandi vengono utilizzati dal controller in modo che possa configurare le informazioni e creare la connessione tra Windows e Ansible. Innanzitutto, creeremo il playbook.

Creazione del playbook

Ora gestiremo la distribuzione e l'aggiornamento dei pacchetti. Per questo, creiamo prima un playbook in Ansible:

[root@master ansible]# nano win_ping.YML

Ecco la dichiarazione del playbook Ansible. Quando il playbook win_ping.YML è stato creato, quindi verrà lanciato nel nuovo terminale di Ansible. Qui, scriveremo gli host e il compito che vogliamo eseguire. In win_ping.YML, nominiamo il playbook che vogliamo fare nel playbook.

Quindi, scriveremo il nome degli host, poiché stiamo configurando i dati dell'host di Microsoft Windows. Quindi, il nome dell'host di destinazione è "Windows_host". Quindi, abbiamo passato la "falsa" all'opzione Gather_Fact del playbook in modo che non recupera le informazioni dell'host di Windows target nel playbook. Successivamente, abbiamo elencato i compiti nel playbook. Vogliamo controllare la connessione tra il controller di Playbook Ansible e l'host di Windows Target in modo da passare il nome del playbook nell'attività.

- Nome: test del modulo Win_ping
Host: Windows_host
Diventa: falso
Gather_Facts: false
compiti:
- Nome: Test Connection
Win_ping:

Creazione del file di inventario

Dopo la creazione e la risoluzione del playbook, costruiremo il file di inventario in modo da fornire le informazioni sull'host di Windows qui. Scriveremo l'indirizzo IP, il nome dell'utente, la password, il nome della connessione, il numero di porta e la convalida WinRM. Questa è l'affermazione che scriveremo per creare il file di inventario in Ansible.

[root@master ansible]# nano win_ping.YML tutto:
ospiti:
Windows_host:
Ansible_host: 192.168.5.220
Ansible_User: Ansible
Ansible_Password: ********
Ansible_Connection: Winrm
Ansible_port: 5986
ANSIBLE_WINRM_SERVER_CERT_VALIDATION: ignora

Dopo aver fornito le informazioni necessarie sull'host di Windows target, eseguiremo il playbook insieme al file di inventario. Per fare ciò, scrivi il comando di seguito:

[root@master ansible]# ansible-playbook win_ping.yml -i host.YML

Come mostrato, la connessione tra il controller Ansible e l'host di Windows è stata effettuata con successo.

Conclusione

Usando il pacchetto WinRM in Ansible, abbiamo imparato come automatizzare Microsoft Windows in questa lezione. Abbiamo descritto in dettaglio come impostare un host Microsoft Windows per Ansible. Ansible è uno strumento che è stato storicamente associato a Linux, sebbene possa essere utilizzato anche su Microsoft Windows.