9 Приклад відповідних ігор для адміністрування Windows

Я покажу вам кілька операцій, які адміністратор може виконувати у віддаленій системі Windows за допомогою ansible-playbook.


Ansible – це один з найбільш використовуваних інструментів DevOps на ринку сьогодні. Він пропонує купу модулів Windows, які використовуються для налаштування та управління сервером Windows. Я припускаю, що у вас вже встановлено Ansible в Windows, звідки ви хочете керувати серверами Windows.

Нижче наведено деякі часто використовувані завдання, що виконуються адміністраторами Windows щодня. Ви будете здивовані, побачивши, наскільки легко ним керувати Windows за допомогою Ansible.

IP-адреса мого контролера Windows – 192.168.0.106, а IP-адреса моєї віддаленої Windows – 192.168.0.102. Перш ніж почати роботу, переконайтеся, що ви запустили модуль win_ping, щоб перевірити, чи можете ви підключитися до віддаленого сервера Windows чи ні.

[захищено електронною поштою] ~
$ ansible win -m win_ping
192.168.0.102 | УСПІХ => {
"змінився": помилковий,
"пінг": "понг"
}

Моє підключення до віддаленого хоста вдало.

Отже, почнемо з програму Ansible Playbooks …

Копіювання файлів

win_copy – це ансибільний модуль, який копіює файл з локального сервера на віддалений хост Windows. Я буду використовувати цей модуль для копіювання одного PDF-файлу.

Скористайтеся наведеним нижче кодом YAML, вкажіть вихідні та кінцеві шляхи.

[захищено електронною поштою] ~
$ vi copy.yml

– господарі: виграти

завдання:

– ім’я: Копіювати файл

win_copy:

src: C: \ output.pdf

dest: C: \ ansible_examples \

remote_src: так

Запустіть програму ansible-playbook для win_copy.

[захищено електронною поштою] ~
$ ansible-playbook copy.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Копіювати файл] *********************************************** **************************************************** ******************************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 2 змінено = 1 недоступний = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Файл успішно скопійований у місце призначення у віддаленій системі Windows.

копіювати вікна Windows

Встановити / видалити MSI

Щоб встановити програму за допомогою файлу MSI, вам потрібно використовувати win_get_url, щоб згадати шлях файлу MSI до завантаження, а потім використовувати модуль win_package для його встановлення. Присутність стану означає, що MSI буде встановлений на машині, а додаток знаходиться в теперішньому стані.

Тут я встановлюю Apache.

Код YAML, який слід використовувати:

[захищено електронною поштою] ~
$ vi msi.yml

– ім’я: Встановлення Apache MSI
господарі: виграти

завдання:
– ім’я: Завантажте інсталятор 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

– назва: Встановити MSI
win_package:
шлях: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi
стан: присутні

Запустіть програму ansible-playbook для встановлення за допомогою MSI.

[захищено електронною поштою] ~
$ ansible-playbook msi.yml

ГРАТИ [Встановлення Apache MSI] ********************************************** **************************************************** *******************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Завантажити інсталятор Apache] ********************************************* **************************************************** ************
змінено: [192.168.0.102]

ЗАВДАННЯ [Встановити MSI] *********************************************** **************************************************** ****************************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 3 змінено = 2 недоступні = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Тепер перейдіть до системи Windows і перевірте, чи вдало встановлена ​​програма apache.

C: \ Користувачі \ geekflare>cd C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ bin
C: \ Програмні файли (x86) \ Apache Software Foundation \ Apache2.2 \ bin>httpd -v
Версія сервера: Apache / 2.2.25 (Win32)
Побудований сервер: 10 липня 2013 01:52:12

Ви також можете встановити програми, використовуючи MSI з аргументами. Нижче наведено той самий приклад, як вище, але замість стану ми використовуємо аргумент установки для встановлення apache.

Код YAML, який слід використовувати:

– ім’я: Встановлення Apache MSI

господарі: виграти

завдання:

– ім’я: Завантажте інсталятор 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

– назва: Встановити MSI

win_package:

шлях: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

аргументи:

– / встановити

– / пасивний

– / norestart

Для видалення програми за допомогою файлу MSI вам потрібно використовувати модуль win_package. Стан відсутній означає, що додаток буде видалено за допомогою файла MSI.

Тут я видаляю Apache.

[захищено електронною поштою] ~
$ vi uninstall_msi.yml

– ім’я: Деінсталяція MSI Apache

господарі: виграти

завдання:

– ім’я: UnInstall MSI

win_package:

шлях: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

стан: відсутні

Запустіть програму ansible-playbook для видалення за допомогою MSI.

[захищено електронною поштою] ~
$ ansible-playbook uninstall_msi.yml

ІГРУЙТЕ [Видалення Apache MSI] ********************************************** **************************************************** *******************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [UnInstall MSI] *********************************************** **************************************************** **************************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 2 змінено = 1 недоступний = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Тепер, якщо я перевірю версію apache, я отримаю нижченаведений вихід, як додаток було видалено.

C: \ Програмні файли (x86) \ Apache Software Foundation \ Apache2.2 \ bin>httpd -v ‘httpd’ не розпізнається як внутрішня чи зовнішня команда,
операційна програма або пакетний файл.

Видалення програмного забезпечення (.EXE)

Ви також можете видалити програмне забезпечення з файлом .exe, використовуючи ідентифікатор продукту цього програмного забезпечення.

[захищено електронною поштою] ~
$ vi uninstall.yml

– господарі: виграти

завдання:

– ім’я: Видаліть 7-Zip з exe

win_package:

шлях: C: \ програмні файли \ 7-Zip \ Uninstall.exe

product_id: 7-Zip

аргументи: / С

стан: відсутні

Запустіть програму ansible-playbook для видалення 7-Zip.

[захищено електронною поштою] ~
$ ansible-playbook uninstall.yml

ГРАТИ [виграти] ************************************************ **************************************************** **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Видаліть 7-Zip від exe] ****************************************** **************************************************** **************************************************** ***************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** **************************************************** *********************************
192.168.0.102: ok = 2 змінено = 1 недоступний = 0 не вдалося = 0 пропущено = 0 врятовано = 0 проігноровано = 0

Зупинка / запуск / перезапуск служб Windows

win_service ansible module використовується для запуску, зупинки чи перезапуску послуги. Тут я покажу вам, як можна зупинити службу Tomcat.

відповідальні вікна tomcat

Вам потрібно згадати ім’я служби у файлі YAML і встановити стан, щоб зупинитися.

[захищено електронною поштою] ~
$ vi service.yml

– господарі: виграти

завдання:

– назва: Зупинка служби Tomcat

win_service:

назва: Tomcat8

стан: зупинився

Запустіть програму ansible-playbook, щоб зупинити службу Tomcat.

[захищено електронною поштою] ~
$ ansible-playbook service.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Стоп-сервіс Tomcat] ********************************************** **************************************************** ******************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 2 змінено = 1 недоступний = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Якщо ви перевірите послугу tomcat в системі Windows, вона зараз перебуває у зупиненому стані.

зупинки відповідальних вікон

Ви можете визначити стан для запуску або перезавантаження або призупинення, щоб змінити статус послуги.

Збір фактів

Використовуючи модуль win_disk_facts ansible, ви можете отримати всю інформацію про диск цільового хоста.

[захищено електронною поштою] ~
$ vi disk.yml

– господарі: виграти
завдання:
– ім’я: Отримайте факти диска
win_disk_facts:

– ім’я: вихід першого розміру диска
налагоджувати:
var: ansible_facts.disks [0] .size

– ім’я: Перетворення першого системного диска в різні формати
налагоджувати:
msg: ‘{{disksize_gib}} vs {{disksize_gib_human}}’
вар:
# Отримайте перший системний диск
диск: ‘{{ansible_facts.disks | selectattr ("system_disk") | перший}} ‘

# Показати розмір диска в гібібайтах
disksize_gib_human: ‘{{disk.size | файловий формат (правда)}}’
disksize_gib: ‘{{(disk.size / 1024 | pow (3)) | круглий | int}} GiB’

Запустіть програму ansible-playbook, щоб отримати інформацію про диск.

[захищено електронною поштою] ~
$ ansible-playbook disk.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Отримати факти диска] ********************************************** **************************************************** **************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Вихід першого розміру диска] ********************************************* **************************************************** *******************
ок: [192.168.0.102] => {

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

ЗАВДАННЯ [Перетворити перший системний диск у різні формати] ****************************************** ************************************************
ок: [192.168.0.102] => {
"мсг": "932 GiB проти 931,5 GiB"
}

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 4 змінено = 0 недоступно = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Використовуючи win_command ansible модуль, ви можете виконувати команди на віддаленому хості та отримувати інформацію про процесор, деталі пристрою та багато іншого.

[захищено електронною поштою] ~
$ vi check.yml

– господарі: виграти
завдання:
– ім’я: Отримайте факти диска
win_command: wmic cpu отримати підпис, deviceid, ім’я, numberofcores, maxclockspeed, статус
реєстр: використання

– налагодження: msg ="{{use.stdout}}"

Запустіть програму ansible-playbook, щоб отримати інформацію про віддалену систему.

[захищено електронною поштою] ~
$ ansible-playbook check.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Отримати факти] *********************************************** **************************************************** *************************
змінено: [192.168.0.102]

ЗАВДАННЯ [налагодження] ************************************************ **************************************************** *********************************
ок: [192.168.0.102] => {
"мсг": "Заголовок DeviceID MaxClockSpeed
Ім’я
NumberOfCores Статус \ r \ r \ nIntel64 Сім’я 6 Модель 142 Крок 9 CPU0 2712 Intel (R) Core (TM) i5-7200U CPU @ 2,50 ГГц 2 ОК \ r \ r \ n \ r \ r \ n"
}

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 3 змінено = 1 недоступний = 0 не вдалося = 0
пропустив = 0 врятовано = 0
ігнорується = 0

Запуск команд

Які б команди ви не виконували у вікні, їх можна виконувати через модуль ansible win_command. Вам просто потрібно вказати команду у вашому файлі YAML. Тут я просто створюю каталог.

[захищено електронною поштою] ~
$ vi commandds.yml

– господарі: виграти

завдання:

– ім’я: запустіть виконуваний файл за допомогою win_command

win_command: whoami.exe

– ім’я: запустіть команду cmd

win_command: cmd.exe / c mkdir C: \ тест

Запустіть програму ansible-playbook, щоб виконати операцію win_command.

[захищено електронною поштою] ~
$ ansible-playbook commandnds.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [запустіть виконуваний файл за допомогою win_command] ******************************************** **************************************************** *******
змінено: [192.168.0.102]

ЗАВДАННЯ [виконайте команду cmd] ********************************************* **************************************************** ************************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 3 змінено = 2 недоступні = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Змінні середовища

Система Windows має кілька змінних середовищ, наприклад, JAVA_HOME. Використовуючи модуль win_environment ansible, ви можете додавати або змінювати змінні середовища в системі Windows. У цьому прикладі я додаю нову змінну до списку змінних середовища Windows.

[захищено електронною поштою] ~
$ vi env.yml

– господарі: виграти
завдання:
– ім’я: встановлення змінної середовища для всіх користувачів
win_en Environment:
стан: присутні
назва: NewVariable
значення: Нове значення
рівень: верстат

Запустіть програму ansible-playbook, щоб додати змінну середовища на віддаленій машині Windows.

[захищено електронною поштою] ~
$ ansible-playbook env.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Встановити змінну середовища для всіх користувачів] **************************************** **************************************************** ***
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 2 змінено = 1 недоступний = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Перейдіть у вікно змінних середовища; ви побачите, що нова змінна, яку ви тільки що додали, присутня тут.

змінних вікон Windows

Додати / редагувати реєстр

win_regedit ansible модуль використовується для додавання або редагування даних реєстру на віддаленій машині Windows. Потрібно вказати шлях до реєстру та вмісту, який потрібно додавати / оновлювати. Тут я створюю новий запис реєстру GeekFlare всередині шляху HKLM: \ SOFTWARE, а потім додаю ім’я та дані до цього реєстру.

[захищено електронною поштою] ~
$ vi register.yml

– господарі: виграти

завдання:

– назва: Створення реєстру

win_regedit:

шлях: HKLM: \ SOFTWARE \ GeekFlare

– ім’я: зміна реєстру, додавання імені та даних

win_regedit:

шлях: HKLM: \ SOFTWARE \ GeekFlare

назва: Geek

дані: спалах

Запустіть програму ansible-playbook, щоб додати реєстр.

[захищено електронною поштою] ~
$ ansible-playbook register.yml

ГРАТИ [виграти] ************************************************ **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Створення реєстру] ********************************************** **************************************************** *********************
змінено: [192.168.0.102]

ЗАВДАННЯ [Змінення реєстру, додавання імені та даних] ***************************************** **************************************************** ***
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** *********************************
192.168.0.102
: ok = 3 змінено = 2 недоступні = 0 не вдалося = 0
пропустив = 0 врятовано = 0 проігноровано = 0

Якщо ви перейдете до редактора реєстру на віддаленій системі, ви зможете побачити, що цей реєстр успішно доданий із параметрами Ім’я та Дані.

реєстр відповідальних windows

Видалити журнал

win_eventlog ansible модуль використовується для додавання, очищення або видалення журналів подій Windows із системи Windows.

Перейдіть до Windows Powershell та перерахуйте список присутніх на віддаленій машині Windows.

PS C: \ Користувачі \ Geekflare> Get-EventLog -Список
Макс (K) Зберегти журнал записів переповнення
—— —— ————– ——- —
20,480 0 OverwriteAsNeed 33,549 Застосування
20,480 0 OverwriteAsNeeded 0 HardwareEvents
512 7 OverwriteOlder 20 Internet Explorer
20,480 0 OverwriteAsNeeded 0 Служба управління ключами
128 0 ПерепишітьПотрібно 190 Повідомлень
Безпека
20,480 0 Перезаписати систему, необхідну 44 828 Система
15,360 0 ПерезаписАзпотрібно 3,662 Windows PowerShell

Тепер я покажу, як видалити журнали з усіх джерел для Internet Explorer.

[захищено електронною поштою] ~
$ vi log.yml

– господарі: виграти
завдання:
– ім’я: Видалення журналів Internet Explorer
win_eventlog:
ім’я: Internet Explorer
стан: відсутні

Запустіть програму ansible-playbook, щоб видалити Internet Explorer із віддаленої машини Windows.

[захищено електронною поштою] ~
$ ansible-playbook log.yml

ГРАТИ [виграти] ************************************************ **************************************************** **************************************************** ***********************************

ЗАВДАННЯ [Збір фактів] *********************************************** **************************************************** **************************************************** ************************
гаразд: [192.168.0.102]

ЗАВДАННЯ [Видалити журнали Internet Explorer] ********************************************* **************************************************** ***************************************************
змінено: [192.168.0.102]

ІГРУЙТЕ РЕКАП ************************************************** **************************************************** **************************************************** *********************************
192.168.0.102: ok = 2 змінено = 1 недоступний = 0 не вдалося = 0 пропущено = 0 врятовано = 0 проігноровано = 0

Тепер, якщо ви знову перерахуєте EventLogs, ви побачите, що журнали Internet Explorer видалено.

PS C: \ Користувачі \ Geekflare> Get-EventLog -Список

Макс (K) Зберегти журнал записів переповнення
—— —— ————– ——- —
20,480 0 OverwriteAsNeed 33,549 Застосування
20,480 0 OverwriteAsNeeded 0 HardwareEvents
20,480 0 OverwriteAsNeeded 0 Служба управління ключами
128 0 ПерепишітьПотрібно 190 Повідомлень
Безпека
20,480 0 Перезаписати систему потребує 44,835 Система
15,360 0 Перезаписати потрібне 56 Windows PowerShell

Отже, це було все про ігрові книжки Ansible, які можна використовувати для віддаленого адміністрування Windows. Ідіть і спробуйте ці книжки. Ви також можете спробувати інші Відповідні модулі Windows в наявності.

МЕТИ:

  • Відповідальний

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