9 primjera odgovarajuće playbooks za administraciju sustava Windows

Pokazat ću vam nekoliko operacija koje administrator može izvesti na udaljenom Windows sustavu koristeći ansible-playbook.


Ansible je jedan od najčešće korištenih DevOps alata na tržištu danas. Pruža hrpa Windows modula koji se koriste za konfiguriranje i upravljanje Windows poslužiteljem. Pretpostavljam da već imate instaliran Ansible u sustavu Windows odakle želite upravljati Windows poslužiteljima.

Slijedi nekoliko najčešćih zadataka koje svakodnevno izvode Windows administratori. Bićete zapanjeni kada vidite koliko je jednostavno upravljati Windowsom pomoću Ansiblea.

IP adresa uređaja za odgovorni Windows kontroler je 192.168.0.106, a IP adresa mog udaljenog sustava Windows je 192.168.0.102. Prije nego što započnete, obavezno pokrenite win_ping modul da biste provjerili možete li se povezati s Windows udaljenim serverom ili ne.

[E zaštićeni] ~
$ ansible win -m win_ping
192.168.0.102 | USPJEH => {
"promijenjen": lažno,
"ping": "tenis"
}

Moja veza s udaljenim hostom je uspješna.

Pa, započnimo s Ansible Playbooks…

Kopiranje datoteka

win_copy je ansible modul koji kopira datoteku s lokalnog poslužitelja na udaljeni Windows domaćin. Upotrijebit ću ovaj modul za kopiranje jednog PDF-a.

Koristite ispod YAML kôd, navedite izvorne i odredišne ​​staze.

[E zaštićeni] ~
$ vi copy.yml

– domaćini: pobjeda

zadaci:

– ime: Kopiraj datoteku

win_copy:

src: C: \ output.pdf

dest: C: \ ansible_examples \

remote_src: da

Pokrenite ansible-playbook za win_copy.

[E zaštićeni] ~
$ ansible-playbook copy.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Kopiraj datoteku] *********************************************** ************************************************** ******************************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 2 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Datoteka je uspješno kopirana na odredišno mjesto na udaljenom Windows sustavu.

ansible Windows copy

Instaliraj / UnInstall MSI

Da biste instalirali aplikaciju pomoću MSI datoteke, trebate koristiti win_get_url da biste spomenuli put MSI datoteke do preuzimanja, a zatim pomoću modula win_package instalirajte. Prisutnost stanja znači da će MSI biti instaliran na stroj, a aplikacija je u sadašnjem stanju.

Evo, instaliram Apache.

YAML kôd koji se koristi:

[E zaštićeni] ~
$ vi msi.yml

– ime: Instalacija Apache MSI
domaćini: pobjeda

zadaci:
– ime: Preuzmite instalacijski program Apache
win_get_url:
url: https://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi
dest: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

– ime: Instaliraj MSI
win_package:
staza: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi
stanje: prisutan

Pokrenite ansible-playbook za instalaciju pomoću MSI.

[E zaštićeni] ~
$ ansible-playbook msi.yml

PLAY [Instaliranje Apache MSI] ********************************************** ************************************************** *******************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Preuzmite instalacijski program Apache] ********************************************* ************************************************** ************
promijenjeno: [192.168.0.102]

ZADATAK [Instaliraj MSI] *********************************************** ************************************************** ****************************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 3 promijenjeno = 2 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Sada, idite na Windows sustav i provjerite je li se aplikacija apache uspješno instalirala.

C: \ Users \ geekflare>cd C: \ programske datoteke (x86) \ Apache Software Foundation \ Apache2.2 \ bin
C: \ Programske datoteke (x86) \ Apache Software Foundation \ Apache2.2 \ bin>httpd -v
Verzija poslužitelja: Apache / 2.2.25 (Win32)
Izgrađen poslužitelj: 10. srpnja 2013. 01:52:12

Također možete instalirati aplikacije pomoću MSI s argumentima. Ispod je isti primjer kao gore, ali umjesto stanja, koristimo instalacijski argument za instaliranje apache.

YAML kôd koji se koristi:

– ime: Instalacija Apache MSI

domaćini: pobjeda

zadaci:

– ime: Preuzmite instalacijski program Apache

win_get_url:

url: https://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi

dest: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

– ime: Instaliraj MSI

win_package:

staza: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

argumenti:

– /instalirati

– /pasivno

– / norestart

Da biste deinstalirali aplikaciju pomoću MSI datoteke, morate koristiti modul win_package. Stanje odsutno znači da će se aplikacija deinstalirati pomoću MSI datoteke.

Evo, deinstaliram Apache.

[E zaštićeni] ~
$ vi uninstall_msi.yml

– ime: Instalacija Apache MSI

domaćini: pobjeda

zadaci:

– ime: UnInstall MSI

win_package:

staza: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

stanje: odsutan

Pokrenite ansible-playbook za deinstaliranje pomoću MSI-ja.

[E zaštićeni] ~
$ ansible-playbook uninstall_msi.yml

PLAY [Uninstalling Apache MSI] ********************************************** ************************************************** *******************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [UnInstall MSI] *********************************************** ************************************************** **************************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 2 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Sad, ako provjerim apache verziju, dobit ću donji izlaz kako je aplikacija deinstalirana.

C: \ Programske datoteke (x86) \ Apache Software Foundation \ Apache2.2 \ bin>httpd -v ‘httpd’ se ne prepoznaje kao unutarnja ili vanjska naredba,
operativni program ili batch datoteka.

Deinstaliranje softvera (.EXE)

Također možete deinstalirati softver s .exe datotekom koristeći ID proizvoda tog softvera.

[E zaštićeni] ~
$ vi uninstall.yml

– domaćini: pobjeda

zadaci:

– ime: Deinstalirajte 7-Zip iz exe-a

win_package:

putanja: C: \ programske datoteke \ 7-Zip \ Uninstall.exe

product_id: 7-Zip

argumenti: / S

stanje: odsutan

Pokrenite ansible-playbook za deinstaliranje 7-Zip-a.

[E zaštićeni] ~
$ ansible-playbook uninstall.yml

PLAY [win] ************************************************** ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Deinstaliranje 7-Zip od exe] ****************************************** ************************************************** ************************************************** ***************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** ************************************************** *********************************
192.168.0.102: ok = 2 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0 preskočeno = 0 spašeno = 0 ignorirano = 0

Zaustavljanje / pokretanje / ponovno pokretanje Windows usluga

win_service ansible modul koristi se za pokretanje, zaustavljanje ili ponovno pokretanje usluge. Ovdje ću vam pokazati kako zaustaviti uslugu tomcat.

ansible windows tomcat

Morate spomenuti naziv usluge u YAML datoteci i postaviti stanje na zaustavljanje.

[E zaštićeni] ~
$ vi usluga.yml

– domaćini: pobjeda

zadaci:

– ime: Zaustavite uslugu Tomcat

win_service:

ime: Tomcat8

stanje: zaustavljeno

Pokrenite ansible-playbook za zaustavljanje usluge tomcat.

[E zaštićeni] ~
$ ansible-playbook service.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Stop service Tomcat] ********************************************** ************************************************** ******************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 2 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Ako provjerite uslugu tomcat na Windows sustavu, sada je u zaustavljenom stanju.

zaustaviti prozore

Možete definirati stanje koje započinje ili ponovno pokrenuti ili pauzirati za promjenu statusa usluge.

Prikupljanje činjenica

Pomoću win_disk_facts ansible modula možete dohvatiti sve podatke o disku ciljanog domaćina.

[E zaštićeni] ~
$ vi disk.yml

– domaćini: pobjeda
zadaci:
– ime: Dobijte činjenice o disku
win_disk_facts:

– ime: Izlazna veličina prvog diska
debug:
var: ansible_facts.disks [0] .size

– Naziv: Pretvorite prvi sistemski disk u različite formate
debug:
msg: ‘{{disksize_gib}} vs {{disksize_gib_human}}’
varijable:
# Nabavite prvi sistemski disk
disk: ‘{{ansible_facts.disks | selectattr ("system_disk") | prvi}} ‘

# Prikaži veličinu diska u Gibibytes
disksize_gib_human: ‘{{disk.size | datoteke veličine formata (istinito)}}’
disksize_gib: ‘{{(disk.size / 1024 | pow (3)) | okrugli | int}} GiB’

Pokrenite ansible-playbook da biste dobili informacije o disku.

[E zaštićeni] ~
$ ansible-playbook disk.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Dobijte činjenice o disku] ********************************************** ************************************************** **************************
ok: [192.168.0.102]

ZADATAK [Izlaz prve veličine diska] ********************************************* ************************************************** *******************
ok: [192.168.0.102] => {

"ansible_facts.disks [0] .size": "1000204886016"
}

ZADATAK [Pretvori prvi sistemski disk u različite formate] ****************************************** ************************************************
ok: [192.168.0.102] => {
"poruka": "932 GiB vs 931,5 GiB"
}

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 4 promijenjeno = 0 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Pomoću win_command ansible modula možete izvršavati naredbe na udaljenom računalu i dobivati ​​informacije o CPU-u, pojedinosti o uređaju i još mnogo toga.

[E zaštićeni] ~
$ vi check.yml

– domaćini: pobjeda
zadaci:
– ime: Dobijte činjenice o disku
win_command: wmic cpu dobiti titl, deviceid, ime, numberofcores, maxclockspeed, status
registar: upotreba

– ispravljanje pogrešaka: msg ="{{upotreba.stdout}}"

Pokrenite ansible-playbook da biste dobili podatke o udaljenom sustavu.

[E zaštićeni] ~
$ ansible-playbook check.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Nabavite činjenice] *********************************************** ************************************************** *************************
promijenjeno: [192.168.0.102]

ZADATAK [debug] ************************************************ ************************************************** *********************************
ok: [192.168.0.102] => {
"poruka": "Opis DeviceID MaxClockSpeed
Ime
NumberOfCores Status \ r \ r \ nIntel64 obitelj 6 Model 142 Korak 9 CPU0 2712 Intel (R) Core (TM) i5-7200U CPU @ 2,50GHz 2 OK \ r \ r \ n \ r \ r \ n"
}

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 3 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0
zanemaren = 0

Izvođenje naredbi

Koje god naredbe pokrenuli na prozoru, mogu se izvoditi kroz ansible modul win_command. Trebate samo odrediti naredbu u svojoj YAML datoteci. Evo, upravo stvaram direktorij.

[E zaštićeni] ~
$ vi naredbe.yml

– domaćini: pobjeda

zadaci:

– ime: pokrenite izvršnu datoteku koristeći win_command

win_command: whoami.exe

– naziv: izvrši naredbu cmd

win_command: cmd.exe / c mkdir C: \ test

Pokrenite ansible-playbook da biste izvodili win_command operaciju.

[E zaštićeni] ~
$ ansible-playbook Commands.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [pokrenite izvršnu datoteku koristeći win_command] ******************************************** ************************************************** *******
promijenjeno: [192.168.0.102]

ZADATAK [izvrši cmd naredbu] ******************************************* ************************************************** ************************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 3 promijenjeno = 2 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Okolišne varijable

Windows sustav ima više varijabli okruženja, na primjer, JAVA_HOME. Korištenjem win_environment ansible modula možete dodavati ili mijenjati varijable okoline na Windows sustavu. U ovom primjeru dodajem novu varijablu na popis varijabli Windows okruženja.

[E zaštićeni] ~
$ vi env.yml

– domaćini: pobjeda
zadaci:
– name: Postavite varijablu okruženja za sve korisnike
win_environment:
stanje: prisutan
ime: NewVariable
vrijednost: Nova vrijednost
razina: stroj

Pokrenite ansible-playbook za dodavanje varijable okoline na udaljeni Windows stroj.

[E zaštićeni] ~
$ ansible-playbook env.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Postavite varijablu okruženja za sve korisnike] **************************************** ************************************************** ***
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 2 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Idite na prozor varijabli okruženja; vidjet ćete novu varijablu koju ste upravo dodali ovdje.

varijable ansible Windows

Dodavanje / uređivanje registra

win_regedit ansible modul koristi se za dodavanje ili uređivanje detalja registra na udaljenom Windows računalu. Morate dati put registra i sadržaja koji treba dodati / ažurirati. Ovdje stvaram novi unos registra u GeekFlare unutar HKLM: \ SOFTWARE putanje, a zatim dodavam ime i podatke u ovaj registar.

[E zaštićeni] ~
$ vi register.yml

– domaćini: pobjeda

zadaci:

– ime: Stvaranje registra

win_regedit:

staza: HKLM: \ SOFTWARE \ GeekFlare

– name: Izmjena registra, dodavanje imena i podataka

win_regedit:

staza: HKLM: \ SOFTWARE \ GeekFlare

ime: Geek

podaci: Flare

Za dodavanje registra pokrenite ansible-playbook.

[E zaštićeni] ~
$ ansible-playbook register.yml

PLAY [win] ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Stvaranje registra] ********************************************** ************************************************** *********************
promijenjeno: [192.168.0.102]

ZADATAK [Izmjena registra, dodavanje imena i podataka] ***************************************** ************************************************** ***
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** *********************************
192.168.0.102
: ok = 3 promijenjeno = 2 nedostupno = 0 nije uspjelo = 0
preskočen = 0 spašen = 0 zanemaren = 0

Ako idete na uređivač registra na udaljenom sustavu, možete vidjeti da je ovaj registar uspješno dodan s parametrima Name i Data.

registar ansible Windows

Izbriši zapisnik

win_eventlog ansible modul koristi se za dodavanje, brisanje ili uklanjanje dnevnika događaja iz Windows sustava.

Idite na Windows Powershell i na popisu uređaja EventLogs prisutni na udaljenom Windows uređaju.

PS C: \ Korisnici \ Geekflare> Get-EventLog -List
Maks. (K) Zadržite dnevnik unosa preljeva
—— —— ————– ——- —
20,480 0 PrepišiAsNedječeno 33,549 Primjena
20,480 0 OverwriteAsNeeded 0 HardwareEvents
512 7 OverwriteOlder 20 Internet Explorer
20,480 0 OverwriteAsNeeded 0 usluga upravljanja ključevima
128 0 PrepišiAsREeded 190 OAlerts
sigurnosti
20,480 0 PrepišiAsEeded 44,828 sustav
15.360 0 OverwriteAsNeed 3.662 Windows PowerShell

Sada ću pokazati kako ukloniti zapisnike iz svih izvora za Internet Explorer.

[E zaštićeni] ~
$ vi log.yml

– domaćini: pobjeda
zadaci:
– naziv: Uklonite zapisnike Internet Explorer-a
win_eventlog:
ime: Internet Explorer
stanje: odsutan

Pokrenite ansible-playbook da biste uklonili Internet Explorer iz stroja za udaljeni Windows.

[E zaštićeni] ~
$ ansible-playbook log.yml

PLAY [win] ************************************************** ************************************************** ************************************************** ***********************************

ZADATAK [Prikupljanje činjenica] *********************************************** ************************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADATAK [Ukloni zapisnike Internet Explorera] ********************************************* ************************************************** *************************************************
promijenjeno: [192.168.0.102]

PLAY RECAP ************************************************** ************************************************** ************************************************** *********************************
192.168.0.102: ok = 2 promijenjeno = 1 nedostupno = 0 nije uspjelo = 0 preskočeno = 0 spašeno = 0 ignorirano = 0

Ako ponovo nabrojite EventLogove, vidjet ćete da su zapisnici Internet Explorera uklonjeni.

PS C: \ Korisnici \ Geekflare> Get-EventLog -List

Maks. (K) Zadržite dnevnik unosa preljeva
—— —— ————– ——- —
20,480 0 PrepišiAsNedječeno 33,549 Primjena
20,480 0 OverwriteAsNeeded 0 HardwareEvents
20,480 0 OverwriteAsNeeded 0 usluga upravljanja ključevima
128 0 PrepišiAsREeded 190 OAlerts
sigurnosti
20,480 0 PrepišiAsEeded 44,835 sustav
15,360 0 OverwriteAsNeeded 56 Windows PowerShell

Dakle, to je bilo sve o Ansible igranim knjigama, koje se mogu koristiti za daljinsko upravljanje Windows-om. Samo naprijed i isprobajte ove knjige za reprodukciju. Možete isprobati i druge Odgovarajući Windows moduli dostupno.

OZNAKE:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map