9 Ansible Playbooks Przykład dla administracji Windows

Pokażę ci kilka operacji, które administrator może wykonać na zdalnym systemie Windows za pomocą ansible-playbook.


Ansible jest obecnie jednym z najczęściej używanych narzędzi DevOps na rynku. Udostępnia kilka modułów systemu Windows, które służą do konfigurowania serwera Windows i zarządzania nim. Zakładam, że masz już Ansible zainstalowany w systemie Windows, z którego chcesz zarządzać serwerami Windows.

Oto niektóre z najczęściej używanych zadań wykonywanych codziennie przez administratorów systemu Windows. Będziesz zaskoczony, widząc, jak łatwo jest administrować systemem Windows za pomocą Ansible.

Adres IP mojego kontrolera Windows Ansible to 192.168.0.106, a adres IP mojego zdalnego systemu Windows to 192.168.0.102. Zanim zaczniesz, upewnij się, że uruchomiłeś moduł win_ping, aby sprawdzić, czy możesz połączyć się ze zdalnym serwerem Windows.

[chroniony e-mailem] ~
$ ansible win -m win_ping
192.168.0.102 | SUKCES => {
"zmienione": fałszywe,
"świst": "pong"
}

Moje połączenie ze zdalnym hostem powiodło się.

Zacznijmy od Ansible Playbooks…

Kopiowanie plików

win_copy to moduł ansible, który kopiuje plik z lokalnego serwera na zdalny host systemu Windows. Użyję tego modułu, aby skopiować pojedynczy plik PDF.

Użyj poniższego kodu YAML, podaj ścieżki źródłowe i docelowe.

[chroniony e-mailem] ~
$ vi copy.yml

– gospodarze: wygrana

zadania:

– nazwa: Skopiuj plik

win_copy:

src: C: \ output.pdf

dest: C: \ ansible_examples \

remote_src: tak

Uruchom instrukcję ansible dla win_copy.

[chroniony e-mailem] ~
$ ansible-playbook copy.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Kopiuj plik] ********************************************* ************************************************** ******************************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 2 zmienione = 1 nieosiągalny = 0 nieudany = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Plik został pomyślnie skopiowany w docelowej lokalizacji w zdalnym systemie Windows.

kopia systemu Windows ansible

Zainstaluj / Odinstaluj MSI

Aby zainstalować aplikację przy użyciu pliku MSI, musisz użyć win_get_url, aby wspomnieć o ścieżce pliku MSI do pobrania, a następnie użyć modułu win_package, aby go zainstalować. Obecny stan oznacza, że ​​MSI zostanie zainstalowany na komputerze, a aplikacja jest w obecnym stanie.

Tutaj instaluję Apache.

Kod YAML do użycia:

[chroniony e-mailem] ~
$ vi msi.yml

– nazwa: Instalowanie MSI Apache
gospodarze: wygrana

zadania:
– nazwa: pobierz instalator 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

– nazwa: zainstaluj MSI
pakiet_ Win:
ścieżka: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi
stan: obecny

Uruchom ansible-playbook, aby zainstalować za pomocą MSI.

[chroniony e-mailem] ~
$ ansible-playbook msi.yml

ZAGRAJ [Instalowanie Apache MSI] ******************************************** ************************************************** *******************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Pobierz instalator Apache] ******************************************* ************************************************** ************
zmieniono: [192.168.0.102]

ZADANIE [Zainstaluj MSI] ********************************************* ************************************************** ****************************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 3 zmienione = 2 nieosiągalne = 0 nieudane = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Teraz przejdź do systemu Windows i sprawdź, czy aplikacja apache została pomyślnie zainstalowana.

C: \ Users \ geekflare>cd C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ bin
C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ bin>httpd -v
Wersja serwera: Apache / 2.2.25 (Win32)
Zbudowany serwer: 10 lipca 2013 01:52:12

Możesz także instalować aplikacje za pomocą MSI z argumentami. Poniżej znajduje się ten sam przykład, co powyżej, ale zamiast stanu używamy argumentu instalacyjnego do zainstalowania apache.

Kod YAML do użycia:

– nazwa: Instalowanie MSI Apache

gospodarze: wygrana

zadania:

– nazwa: pobierz instalator 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

– nazwa: zainstaluj MSI

pakiet_ Win:

ścieżka: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

argumenty:

– /zainstalować

– /bierny

– / norestart

Aby odinstalować aplikację przy użyciu pliku MSI, musisz użyć modułu win_package. Brak stanu oznacza, że ​​aplikacja zostanie odinstalowana przy użyciu pliku MSI.

Tutaj odinstalowuję Apache.

[chroniony e-mailem] ~
$ vi uninstall_msi.yml

– nazwa: Odinstalowywanie Apache MSI

gospodarze: wygrana

zadania:

– nazwa: Odinstaluj MSI

pakiet_ Win:

ścieżka: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

stan: nieobecny

Uruchom ansible-playbook, aby odinstalować za pomocą MSI.

[chroniony e-mailem] ~
$ ansible-playbook uninstall_msi.yml

ZAGRAJ [Uninstalling Apache MSI] ******************************************** ************************************************** *******************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Odinstaluj MSI] ********************************************* ************************************************** **************************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 2 zmienione = 1 nieosiągalny = 0 nieudany = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Teraz, jeśli sprawdzę wersję apache, otrzymam poniższe dane wyjściowe, gdy aplikacja zostanie odinstalowana.

C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ bin>httpd -v „httpd” nie jest rozpoznawany jako polecenie wewnętrzne ani zewnętrzne,
program operacyjny lub plik wsadowy.

Odinstaluj oprogramowanie (.EXE)

Można również odinstalować oprogramowanie z plikiem .exe, korzystając z identyfikatora produktu tego oprogramowania.

[chroniony e-mailem] ~
$ vi uninstall.yml

– gospodarze: wygrana

zadania:

– nazwa: odinstaluj 7-Zip z exe

pakiet_ Win:

ścieżka: C: \ Program Files \ 7-Zip \ Uninstall.exe

product_id: 7-Zip

argumenty: / S

stan: nieobecny

Uruchom ansible-playbook, aby odinstalować 7-Zip.

[chroniony e-mailem] ~
$ ansible-playbook uninstall.yml

ZAGRAJ [win] ********************************************** ************************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Odinstaluj 7-Zip z exe] **************************************** ************************************************** ************************************************** ***************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** ************************************************** *********************************
192.168.0.102: ok = 2 zmienione = 1 nieosiągalne = 0 nieudane = 0 pominięte = 0 uratowane = 0 zignorowane = 0

Zatrzymaj / uruchom / uruchom ponownie usługi Windows

Moduł Answer win_service służy do uruchamiania, zatrzymywania lub restartowania usługi. Tutaj pokażę ci, jak zatrzymać usługę tomcat.

ansible windows tomcat

Musisz podać nazwę usługi w pliku YAML i ustawić stan na zatrzymanie.

[chroniony e-mailem] ~
$ vi service.yml

– gospodarze: wygrana

zadania:

– nazwa: Zatrzymaj usługę Tomcat

win_service:

nazwa: Tomcat8

stan: zatrzymany

Uruchom ansible-playbook, aby zatrzymać usługę tomcat.

[chroniony e-mailem] ~
$ ansible-playbook service.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Zatrzymaj usługę Tomcat] ******************************************** ************************************************** ******************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 2 zmienione = 1 nieosiągalny = 0 nieudany = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Jeśli sprawdzisz usługę tomcat w systemie Windows, jest ona teraz w stanie zatrzymania.

ansible windows tomcat stop

Możesz zdefiniować stan do uruchomienia lub ponownego uruchomienia lub wstrzymania, aby zmienić status usługi.

Zbieranie faktów

Za pomocą modułu ansible win_disk_facts możesz pobrać wszystkie informacje o dysku hosta docelowego.

[chroniony e-mailem] ~
$ vi disk.yml

– gospodarze: wygrana
zadania:
– nazwa: Uzyskaj informacje o dysku
win_disk_facts:

– nazwa: wyjściowy rozmiar pierwszego dysku
odpluskwić:
var: ansible_facts.disks [0] .size

– nazwa: Konwertuj pierwszy dysk systemowy na różne formaty
odpluskwić:
msg: „{{disksize_gib}} vs {{disksize_gib_human}}”
Vars:
# Uzyskaj pierwszy dysk systemowy
disk: ‘{{{ansible_facts.disks | selectattr ("dysk_systemowy") | first}} ”

# Pokaż rozmiar dysku w Gibibytes
disksize_gib_human: „{{disk.size | filesizeformat (true)}}”
disksize_gib: ‘{{(disk.size / 1024 | pow (3)) | round | int}} GiB’

Uruchom ansible-playbook, aby uzyskać informacje o dysku.

[chroniony e-mailem] ~
$ ansible-playbook disk.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Uzyskaj fakty z dysku] ******************************************** ************************************************** **************************
ok: [192.168.0.102]

ZADANIE [Wyjście pierwszego rozmiaru dysku] ******************************************* ************************************************** *******************
ok: [192.168.0.102] => {

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

ZADANIE [Konwertuj pierwszy dysk systemowy na różne formaty] **************************************** ************************************************
ok: [192.168.0.102] => {
"msg": "932 GiB vs 931.5 GiB"
}

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 4 zmienione = 0 nieosiągalne = 0 nieudane = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Korzystając z modułu ansible win_command, możesz wykonywać polecenia na zdalnym hoście i uzyskiwać informacje o procesorze, dane urządzenia i wiele więcej.

[chroniony e-mailem] ~
$ vi check.yml

– gospodarze: wygrana
zadania:
– nazwa: Uzyskaj informacje o dysku
win_command: wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status
zarejestruj się: użycie

– debugowanie: msg ="{{use.stdout}}"

Uruchom instrukcję ansible, aby uzyskać informacje o zdalnym systemie.

[chroniony e-mailem] ~
$ ansible-playbook check.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Zdobądź fakty] ********************************************* ************************************************** *************************
zmieniono: [192.168.0.102]

ZADANIE [debugowanie] ********************************************** ************************************************** *********************************
ok: [192.168.0.102] => {
"msg": "Caption DeviceID MaxClockSpeed
Imię
NumberOfCores Status \ r \ r \ nIntel64 Family 6 Model 142 Stepping 9 CPU0 2712 Intel (R) Core (TM) i5-7200U CPU @ 2,50GHz 2 OK \ r \ r \ n \ r \ r \ n"
}

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 3 zmienione = 1 nieosiągalny = 0 nieudany = 0
pominięty = 0 uratowany = 0
ignorowane = 0

Uruchamianie poleceń

Niezależnie od poleceń uruchamianych w oknie, można je uruchamiać przez moduł ans_ win_command. Wystarczy podać polecenie w pliku YAML. Właśnie tworzę katalog.

[chroniony e-mailem] ~
$ vi Command.yml

– gospodarze: wygrana

zadania:

– nazwa: uruchom plik wykonywalny za pomocą polecenia win_command

win_command: whoami.exe

– nazwa: uruchom polecenie cmd

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

Uruchom ansible-playbook, aby wykonać operację win_command.

[chroniony e-mailem] ~
$ ansible-playbook rules.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [uruchom plik wykonywalny za pomocą polecenia win_command] ****************************************** ************************************************** *******
zmieniono: [192.168.0.102]

ZADANIE [uruchom polecenie cmd] ******************************************* ************************************************** ************************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 3 zmienione = 2 nieosiągalne = 0 nieudane = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Zmienne środowiska

System Windows ma wiele zmiennych środowiskowych, na przykład JAVA_HOME. Za pomocą modułu ansible win_environment możesz dodawać lub modyfikować zmienne środowiskowe w systemie Windows. W tym przykładzie dodałem nową zmienną do listy zmiennych środowiskowych systemu Windows.

[chroniony e-mailem] ~
$ vi env.yml

– gospodarze: wygrana
zadania:
– nazwa: ustaw zmienną środowiskową dla wszystkich użytkowników
win_environment:
stan: obecny
nazwa: NewVariable
wartość: nowa wartość
poziom: maszyna

Uruchom ansible-playbook, aby dodać zmienną środowiskową na zdalnym komputerze z systemem Windows.

[chroniony e-mailem] ~
$ ansible-playbook env.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Ustaw zmienną środowiskową dla wszystkich użytkowników] **************************************** ************************************************** ***
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 2 zmienione = 1 nieosiągalny = 0 nieudany = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Przejdź do okna zmiennych środowiskowych; zobaczysz tutaj nową zmienną, którą właśnie dodałeś.

zmienne systemu windows

Dodaj / Edytuj rejestr

Moduł ansibre win_regedit służy do dodawania lub edytowania szczegółów rejestru na zdalnym komputerze z systemem Windows. Musisz podać ścieżkę rejestru oraz zawartość, która ma zostać dodana / zaktualizowana. Tutaj tworzę nowy wpis rejestru GeekFlare wewnątrz HKLM: \ SOFTWARE ścieżka, a następnie dodam nazwę i dane do tego rejestru.

[chroniony e-mailem] ~
$ vi register.yml

– gospodarze: wygrana

zadania:

– nazwa: tworzenie rejestru

win_regedit:

ścieżka: HKLM: \ SOFTWARE \ GeekFlare

– nazwa: modyfikowanie rejestru, dodawanie nazwy i danych

win_regedit:

ścieżka: HKLM: \ SOFTWARE \ GeekFlare

nazwa: Geek

dane: Flara

Uruchom playible-playbook, aby dodać rejestr.

[chroniony e-mailem] ~
$ ansible-playbook register.yml

ZAGRAJ [win] ********************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Tworzenie rejestru] ******************************************** ************************************************** *********************
zmieniono: [192.168.0.102]

ZADANIE [Modyfikacja rejestru, dodanie nazwy i danych] *************************************** ************************************************** ***
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** *********************************
192.168.0.102
: ok = 3 zmienione = 2 nieosiągalne = 0 nieudane = 0
pominięte = 0 uratowane = 0 zignorowane = 0

Jeśli przejdziesz do Edytora rejestru w systemie zdalnym, możesz zobaczyć, że rejestr został pomyślnie dodany z parametrami Nazwa i Dane.

rejestr systemu Windows ansible

Usuń dziennik

Moduł ans_ win_eventlog służy do dodawania, usuwania lub usuwania dzienników zdarzeń systemu Windows z systemu Windows.

Przejdź do Windows Powershell i wyświetl listę EventLogs obecnych na zdalnym komputerze z systemem Windows.

PS C: \ Users \ Geekflare> Get-EventLog -List
Max (K) Retain OverflowAction Entries Log
—— —— ————– ——- —
20 480 0 OverwriteAsNeeded 33 549 Aplikacja
20 480 0 OverwriteAsNeeded 0 HardwareEvents
512 7 OverwriteOlder 20 Internet Explorer
20 480 0 OverwriteAsNeeded 0 Usługa zarządzania kluczami
128 0 OverwriteAsNeeded 190 OAlerts
Bezpieczeństwo
20 480 0 OverwriteAsNeeded 44 828 System
15.360 0 OverwriteAsNeeded 3 662 Windows PowerShell

Teraz pokażę, jak usunąć dzienniki ze wszystkich źródeł dla Internet Explorera.

[chroniony e-mailem] ~
$ vi log.yml

– gospodarze: wygrana
zadania:
– nazwa: Usuń dzienniki programu Internet Explorer
win_eventlog:
nazwa: Internet Explorer
stan: nieobecny

Uruchom play-playbook, aby usunąć program Internet Explorer ze zdalnego komputera z systemem Windows.

[chroniony e-mailem] ~
$ ansible-playbook log.yml

ZAGRAJ [win] ********************************************** ************************************************** ************************************************** ***********************************

ZADANIE [Zbieranie faktów] ********************************************* ************************************************** ************************************************** ************************
ok: [192.168.0.102]

ZADANIE [Usuń dzienniki programu Internet Explorer] ******************************************* ************************************************** *************************************************
zmieniono: [192.168.0.102]

ZAGRAJ RECAP ************************************************ ************************************************** ************************************************** *********************************
192.168.0.102: ok = 2 zmienione = 1 nieosiągalne = 0 nieudane = 0 pominięte = 0 uratowane = 0 zignorowane = 0

Teraz, jeśli ponownie wyświetlisz listę EventLogs, zobaczysz, że dzienniki programu Internet Explorer zostały usunięte.

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

Max (K) Retain OverflowAction Entries Log
—— —— ————– ——- —
20 480 0 OverwriteAsNeeded 33 549 Aplikacja
20 480 0 OverwriteAsNeeded 0 HardwareEvents
20 480 0 OverwriteAsNeeded 0 Usługa zarządzania kluczami
128 0 OverwriteAsNeeded 190 OAlerts
Bezpieczeństwo
20 480 0 OverwriteAsNeeded 44 835 System
15.360 0 OverwriteAsNeeded 56 Windows PowerShell

Tak więc chodziło o podręczniki Ansible, których można używać do zdalnej administracji Windows. Śmiało i wypróbuj te podręczniki. Możesz także spróbować innych Odpowiednie moduły systemu Windows dostępny.

TAGI:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Комментариев нет, будьте первым кто его оставит

    Комментарии закрыты.

    Adblock
    detector