Automatisere vinduer med Ansible WinRM

Automatisere vinduer med Ansible WinRM

Mange mennesker har misoppfatninger om Ansible og plattformene den støtter, og tror at det bare er tilgjengelig for Ubuntu. Imidlertid kan Ansible også brukes til å kontrollere Windows PC -er, tilkoblede enheter, Internett -sikkerhetsenheter, webtjenester, applikasjoner og andre ting. Vi skal snakke om å bruke Windows med Ansible i denne opplæringen.

Ansible -konfigurasjonsverktøyet kan administrere og utføre viktige oppgaver i Windows -installasjoner, for eksempel eksterne ledere med WINRM og beskyttelsesvarsler. Til tross for at Ubuntu skal operere i Ansible, kan Microsoft Controllers administrere og administrere enhetene sine ved å bruke Ansible til tross for at de har noen tidligere erfaring med Ubuntu -terminaler. Microsoft Controllers vil kunne administrere Microsoft Windows ved å bruke Ansible på en slags måte som er relevant for dem på grunn av Native Windows -funksjonalitet som bruker Microsoft Windows PowerShell Remote. Avanserte løsninger for å kontrollere og administrere Microsoft Windows -plattformer er inkludert i Ansible Software Platform for Organizational Management. Du kan automatisere distribusjon, programvareaktivering og systemintegrasjon for et multivendor -miljø ved hjelp av Ansible Software Platform.

I Ansible gjelder de fleste av terminologien og retningslinjene som brukes til å administrere eksterne verter av Linux, så vel som disse terminologiene like mye for Microsoft Windows -verter. Men det er fremdeles visse særegenheter når det gjelder variabler av Ansible som baneparatorer eller OS-spesifikke aktiviteter. WinRM må settes opp for å muliggjøre tilgang til Windows -systemer fra Ansible Controller. Du kan få igangsatt å bruke Ansible for Microsoft Windows i dine utviklings- eller overvåkningsinnstillinger ved å kjøre PowerShell -skriptet. Hver autoriserte Microsoft Windows -vert er konfigurert av skriptet for WINRM.

Forutsetninger:

Forsikre deg om at du alltid har hatt disse kravene:

Versjon: Vi kommer til å bruke Ansible Controller versjon 2.9. For at det skal gjøre endringer, trenger vi en kontrollerende server for Ansible, og i dette tilfellet bruker vi Ansible som en kontroller med IP -adressen 192.168.5.220.

Windows -vert: Vi krever at de samhandler med de lokale vertene. Videre bruker vi Windows -verten i dette tilfellet som en målsemålingsserver i løpet av operasjonen.

Python: Din Ansible Controller Host -enhet vil bli konfigurert til å kjøre Python. Python vil bruke versjon 2, mens versjon 3 også er et alternativ.

Pakke: Windows Host -serveren vil bli konfigurert til å installere “PIP” -pakken.

Windows Workstation: Du må tilbringe tid på en Windows-konsoll når vi forhåndskonfigurerer verten som Microsoft vil bruke til å håndtere Ansible.

Kraftskall: Windows -serveren vil ha muligheten til å kontrollere PowerShell Remote Access.

Eksempel: Etablere en Microsoft Windows -vert for å tillate tilkoblinger med Ansible Controller

I dette eksemplet vil vi først jobbe for Target Remote Host som er Windows_host. Deretter vil vi jobbe med Ansible, så det vil ikke være noen forvirring for brukeren.

Target Window_host

Det er ingen servere som trengs for Ansible. Så både SSH og Windows Remote Manager er kompatible med Windows WinRM. WinRM betyr Windows Remote Manager og den brukes ofte over SSH på grunn av den stramme integrasjonen av WINRM.

PS C: \ Windows \ System32> WinRM Få WinRM/Config/Service

Sett opp WinRM

Etter det skal vi oppdatere WINRM i Microsoft Windows. Ansible -programvaren har laget kommandoer som er tilgjengelige for å evaluere WINRM og utføre de nødvendige justeringene slik at Ansible kan få tilgang til disse kommandoene. Selv om vi bare ønsker å bruke grunnleggende legitimasjon, så foretrekker vi å bruke noe sikrere for å få tilgang til det. Følgende er trinnene for oppdateringen av WINRM:

Lagrer kommandoen

Vi vil bruke kommandoene, så for det lanserer vi først Microsoft PowerShell Terminal -vinduet slik at vi kan lagre kommandoen.

PS C: \> $ url = "https: // rå.GitHubUserContent.com/ansible/ansible/utvikling/eksempler/skript/
KonfigurerMotingForanible.PS1 "
Adresse på kommandoens lagring

Vi bruker URL nedenfor slik at vi enkelt kan lagre kommandoene der:

Ps c: \> $ file = "$ env: temp \ configuReMotingForable.PS1 "

Last ned kommandoene og vis dem lokalt

Nå vil vi laste ned kommandoene, og vi vil vise disse kommandoene i et lokalt dokument.

PS C: \> (nytt -objekt -typename -system.Nett.WebClient).Last ned File ($ url, $ fil)

Kjør kommandoene

For å utføre, er kommandoen banen som viser utførelsen av dokumentet.

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

Etter å ha skrevet banen over, vil vi få utdataene nedenfor i PowerShell i Windows.

Kontroller WinRM -tilkoblingen

Dette for å sjekke om tilkoblingen til WINRM er bygget med Ansible eller ikke.

PS C: \> WINRM UNIUMERATE WINRM/CONFIG/LISTER

Som vist er Ansible og WinRM kompatible med hverandre.

Ansible Controller

Dette er det som fungerer i Ansible -verktøyet, og kommandoene brukes av kontrolleren, slik at det kan konfigurere informasjonen og bygge forbindelsen mellom Windows og Ansible. Først vil vi lage spillboken.

Opprette spillboken

Nå vil vi administrere distribusjon og oppdatering av pakker. For det, la oss lage en spillbok i Ansible først:

[root@master ansible]# nano win_ping.yml

Her er erklæringen fra Ansible Playbook. Når spillboken vinner_ping.YML opprettes, så blir den lansert i den nye terminalen til Ansible. Her vil vi skrive vertene og oppgaven vi ønsker å utføre. I WIN_PING.yml, vi navngir spillboken som vi vil gjøre i spillboken.

Deretter vil vi skrive navnet på vertene, da vi konfigurerer dataene til Microsoft Windows -verten. Så navnet på målverten er "Windows_host". Deretter har vi gitt det "falske" til alternativet Gathering_Fact. Deretter har vi listet opp oppgavene i spillboken. Vi ønsker å sjekke forbindelsen mellom Ansible Playbook Controller og Target Windows -verten, slik at vi vil passere Playbook -navnet i oppgaven.

- Navn: Win_ping Module Test
Verter: Windows_host
bli: falsk
Samle_facts: FALSE
oppgaver:
- Navn: Testforbindelse
WIN_PING:

Opprette varelagerfilen

Etter opprettelse og avslutning av spillboken, bygger vi varelagerfilen slik at vi vil gi informasjonen om Windows -verten her. Vi skriver IP -adressen, navnet på brukeren, passord, tilkoblingsnavn, portnummer og WinRM -validering. Dette er uttalelsen vi vil skrive for å bygge inventarfilen i Ansible.

[root@master ansible]# nano win_ping.yml alle:
verter:
Windows_host:
Ansible_host: 192.168.5.220
Ansible_user: Ansible
Ansible_Password: ********
Ansible_Connection: WinRM
Ansible_port: 5986
Ansible_winrm_server_cert_validasjon: Ignorer

Etter å ha gitt nødvendig informasjon om Target Windows -verten, vil vi utføre spillboken sammen med varelagerfilen. For å gjøre det, skriv kommandoen nedenfor:

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

Som vist har forbindelsen mellom Ansible -kontrolleren og Windows -verten blitt gjort med hell.

Konklusjon

Ved hjelp av WinRM -pakken i Ansible har vi lært hvordan du automatiserer Microsoft Windows i dette foredraget. Vi beskrev i detalj hvordan du setter opp en Microsoft Windows -vert for Ansible. Ansible er et verktøy som historisk har vært assosiert med Linux, selv om det også kan brukes på Microsoft Windows.