9 مثال قابل اعتماد برای Playbooks برای مدیریت Windows

من چندین کار را به شما نشان خواهم داد که یک سرپرست می تواند با استفاده از دفترچه بازی قابل پخش روی یک سیستم ویندوز از راه دور انجام دهد.


Ansible یکی از پرکاربردترین ابزارهای DevOps در بازار امروز است. این مجموعه از ماژول های ویندوز را برای پیکربندی و مدیریت سرور ویندوز فراهم می کند. تصور می کنم قبلاً Ansible را از جایی که می خواهید سرورهای ویندوز را مدیریت کنید در ویندوز نصب کرده اید.

در زیر برخی از کارهایی که معمولاً توسط مدیران ویندوز انجام می شود روزانه انجام می شود. شما شگفت زده خواهید شد که می بینید که ویندوز با استفاده از Ansible چقدر ساده اداره می شود.

آدرس IP دستگاه کنترلر ویندوز من Ansible 192.168.0.106 است ، و آدرس IP سیستم ویندوز از راه دور من 192.168.0.102 است. قبل از شروع ، مطمئن شوید که ماژول win_ping را اجرا کرده اید تا بررسی کنید آیا قادر به اتصال به سرور از راه دور ویندوز هستید یا نه.

[ایمیل محافظت شده] ~
$-Ansible win -m win_ping
192.168.0.102 | موفقیت => {
"تغییر کرد": نادرست,
"پینگ": "پنگ"
}

ارتباط من با یک میزبان از راه دور موفقیت آمیز است.

بنابراین ، بیایید با کتابهای Playful Ansible شروع کنیم …

کپی کردن پرونده ها

win_copy یک ماژول قابل اعتماد است که یک فایل را از سرور محلی در یک میزبان ویندوز از راه دور کپی می کند. من از این ماژول برای کپی کردن یک PDF استفاده می کنم.

از کد YAML زیر استفاده کنید ، مسیرهای مبدا و مقصد را ارائه دهید.

[ایمیل محافظت شده] ~
$ vi copy.yml

– میزبان: برنده شوید

وظایف:

– نام: کپی پرونده

win_copy:

src: C: \ output.pdf

dest: C: \ ansible_examples \

Remote_src: بله

کتاب مربوط به playible را برای win_copy اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook copy.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [فایل کپی] *********************************************** *********************************************** *******************************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 2 تغییر = 1 دست نیافتنی = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

پرونده با موفقیت در مکان مقصد در یک سیستم ویندوز از راه دور کپی شده است.

کپی کردن ویندوزهای حساس

نصب / حذف MSI

برای نصب یک برنامه با استفاده از پرونده MSI ، باید از win_get_url استفاده کنید تا مسیر فایل MSI را برای بارگیری ذکر کنید و سپس از ماژول win_package برای نصب آن استفاده کنید. حالت فعلی به این معنی است که MSI روی دستگاه نصب خواهد شد و برنامه در حالت حاضر است.

در اینجا ، من Apache را نصب می کنم.

کد YAML مورد استفاده:

[ایمیل محافظت شده] ~
$ vi msi.yml

– نام: نصب Apache MSI
میزبان: برنده شوید

وظایف:
– name: نصب کننده 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
حالت: حال

برنامه نصب playible را با استفاده از MSI اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-play msi.yml

PLAY [نصب Apache MSI] ********************************************** *********************************************** *******************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [بارگیری نصب کننده آپاچی] ********************************************* *********************************************** ************
تغییر کرد: [192.168.0.102]

کار [نصب MSI] ************************************************ *********************************************** ****************************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 3 تغییر = 2 دست نیاورد = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

حال به سیستم ویندوز بروید و بررسی کنید که برنامه apache با موفقیت نصب شده است یا خیر.

C: \ کاربران \ geekflare>cd C: \ File Files (x86) \ بنیاد نرم افزار آپاچی \ Apache2.2 \ bin
ج: \ پرونده های برنامه (x86) \ بنیاد نرم افزار آپاچی \ Apache2.2 \ bin>httpd -v
نسخه سرور: Apache / 2.2.25 (Win32)
سرور ساخته شده: 10 ژوئیه 2013 01:52:12

همچنین می توانید برنامه هایی را با استفاده از MSI با آرگومان نصب کنید. در زیر همان مثال بالا آورده شده است ، اما به جای حالت ، ما برای نصب apache از آرگومان نصب استفاده می کنیم.

کد YAML مورد استفاده:

– نام: نصب Apache MSI

میزبان: برنده شوید

وظایف:

– name: نصب کننده 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 است.

در اینجا ، من آپاچی را حذف می کنم.

[ایمیل محافظت شده] ~
$ vi uninstall_msi.yml

– نام: حذف نصب MSI

میزبان: برنده شوید

وظایف:

– نام: حذف MSI

win_package:

مسیر: C: \ ansible_examples \ httpd-2.2.25-win32-x86-no_ssl.msi

حالت: غایب

دفترچه بازی -ible را برای حذف با استفاده از MSI اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook uninstall_msi.yml

PLAY [حذف نصب MSI] ********************************************* *********************************************** *******************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [حذف MSI] ********************************************** *********************************************** **************************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 2 تغییر = 1 دست نیافتنی = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

حال اگر نسخه apache را بررسی کنم ، با حذف برنامه از خروجی زیر دریافت می کنم.

ج: \ پرونده های برنامه (x86) \ بنیاد نرم افزار آپاچی \ Apache2.2 \ bin>httpd -v ‘httpd’ به عنوان یک دستور داخلی یا خارجی شناخته نمی شود,
برنامه عملیاتی یا پرونده دسته ای.

حذف نصب نرم افزار (.EXE)

همچنین می توانید با استفاده از شناسه محصول آن نرم افزار ، نرم افزار را با پرونده .exe حذف کنید.

[ایمیل محافظت شده] ~
$ vi uninstall.yml

– میزبان: برنده شوید

وظایف:

– name: 7-Zip را از exe حذف کنید

win_package:

path: C: \ File Files \ 7-Zip \ Uninstall.exe

product_id: 7-پستی

استدلال: / س

حالت: غایب

نسخه قابل اجرا را برای حذف 7-Zip اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook.install.yml

بازی کنید [برنده] ****************************************** *********************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *********************************************** *************************
ok: [192.168.0.102]

TASK [حذف نصب 7-Zip از exe] ***************************************** *********************************************** *********************************************** ***************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** *********************************************** **********************************
192.168.0.102: ok = 2 تغییر = 1 غیرقابل دستیابی = 0 شکست = 0 جست و خیز = 0 نجات = 0 نادیده گرفته = 0

خدمات Windows را متوقف کنید ، راه اندازی کنید و از راه اندازی مجدد کنید

ماژول قابل اعتماد win_service برای شروع ، متوقف کردن یا راه اندازی مجدد یک سرویس استفاده می شود. در اینجا ، من به شما نشان می دهم که چگونه سرویس tomcat را متوقف کنید.

ویندوز قابل حمل tomcat

شما باید نام پرونده را در پرونده YAML ذکر کنید و حالت را متوقف کنید.

[ایمیل محافظت شده] ~
$ vi service.yml

– میزبان: برنده شوید

وظایف:

– نام: سرویس متوقف Tomcat

win_service:

نام: Tomcat8

حالت: متوقف شد

برای متوقف کردن سرویس tomcat ، کتاب پخش ansible را اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook service.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [توقف سرویس Tomcat] ********************************************** *********************************************** ******************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 2 تغییر = 1 دست نیافتنی = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

اگر سرویس tomcat را در سیستم ویندوز بررسی کنید ، اکنون در حالت متوقف است.

ویندوزهای قابل حمل tomcat stop

برای تغییر وضعیت خدمات می توانید حالت شروع یا راه اندازی مجدد یا مکث را تعریف کنید.

جمع آوری حقایق

با استفاده از ماژول قابل قبول win_disk_facts ، می توانید تمام اطلاعات دیسک هاست مورد نظر را بازیابی کنید.

[ایمیل محافظت شده] ~
$ vi disk.yml

– میزبان: برنده شوید
وظایف:
– name: حقایق دیسک را دریافت کنید
win_disk_facts:

– نام: اندازه دیسک اول خروجی
اشکال زدایی:
var: ansible_facts.disks [0]. اندازه

– name: اولین دیسک سیستم را به فرمت های مختلف تبدیل کنید
اشکال زدایی:
msg: “{{disksize_gib}} در مقابل {ks disksize_gib_human}}”
vars:
# دیسک سیستم اول را دریافت کنید
دیسک: ‘{{ansible_facts.disks | selectattr ("system_disk") | اول}} ‘

# نمایش اندازه دیسک در Gibibytes
disksize_gib_human: ‘{{disk.size | پرونده سازی قالب (واقعی)}}’
disksize_gib: ‘{{(disk.size / 1024 | power (3)) | دور | int int} GiB’

برای به دست آوردن اطلاعات دیسک ، برنامه playible ansible را اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook disc.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [دریافت حقایق دیسک] ************************************************ *********************************************** **************************
ok: [192.168.0.102]

کار [اندازه دیسک اول خروجی] ********************************************* *********************************************** *******************
ok: [192.168.0.102] => {

"ansible_facts.disks [0]. اندازه": "1000204886016"
}

TASK [تبدیل دیسک سیستم اول به قالب های مختلف] ****************************************** **********************************************
ok: [192.168.0.102] => {
"msg": "932 GiB vs 931.5 GiB"
}

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 4 تغییر = 0 دست نیافتنی = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

با استفاده از ماژول قابل اعتماد win_command ، می توانید دستوراتی را روی میزبان از راه دور اجرا کنید و اطلاعات CPU ، جزئیات دستگاه و موارد دیگر را بدست آورید.

[ایمیل محافظت شده] ~
$ vi check.yml

– میزبان: برنده شوید
وظایف:
– name: حقایق دیسک را دریافت کنید
win_command: cpu wmic دریافت زیرنویس ، دستگاه ، نام ، شماره ، امتیازات ، maxclockspeed ، وضعیت
ثبت نام: استفاده

– اشکال زدایی: msg ="{{use.stdout}"

برای به دست آوردن اطلاعات سیستم از راه دور ، برنامه playible ansible را اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook check.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [دریافت حقایق] ************************************************* *********************************************** **************************
تغییر کرد: [192.168.0.102]

کار [اشکالزدایی] ************************************************ *********************************************** **********************************
ok: [192.168.0.102] => {
"msg": "عنوان دستگاه MaxClockSpeed
نام
NumberOfCores وضعیت \ r \ r \ nIntel64 Family 6 Model 142 پله 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 تغییر = 1 دست نیاورد = 0 شکست = 0
جست و خیز = 0 نجات = 0
نادیده گرفته شده = 0

اجرای دستورات

دستوراتی که بر روی یک پنجره اجرا می کنید ، از طریق ماژول قابل اجرا win_command قابل اجرا است. فقط باید دستور را در پرونده YAML خود مشخص کنید. در اینجا ، من فقط یک دایرکتوری ایجاد می کنم.

[ایمیل محافظت شده] ~
$ vi commands.yml

– میزبان: برنده شوید

وظایف:

– name: با استفاده از win_command اجرایی را اجرا کنید

win_command: whoami.exe

– name: دستور cmd را اجرا کنید

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

برای اجرای عملیات win_command ، برنامه playible ansible را اجرا کنید.

[ایمیل محافظت شده] ~
$ commible-playbook Commands.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [با استفاده از win_command اجرایی را اجرا کنید] ****************************************** *********************************************** *******
تغییر کرد: [192.168.0.102]

کار [اجرای یک فرمان cmd] ********************************************* *********************************************** *************************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 3 تغییر = 2 دست نیاورد = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

متغیرهای محیطی

یک سیستم ویندوز دارای چندین متغیر محیطی ، به عنوان مثال JAVA_HOME. با استفاده از ماژول قابل قبول win_en Environment ، می توانید متغیرهای محیط را در سیستم ویندوز اضافه یا اصلاح کنید. در این مثال ، من یک متغیر جدید به لیست متغیرهای محیط ویندوز اضافه می کنم.

[ایمیل محافظت شده] ~
$ vi env.yml

– میزبان: برنده شوید
وظایف:
– name: یک متغیر محیط برای همه کاربران تنظیم کنید
win_enround:
حالت: حال
نام: NewVariable
مقدار: مقدار جدید
سطح: دستگاه

دفترچه بازی سازگار را اجرا کنید تا متغیر محیط را در دستگاه ویندوز از راه دور اضافه کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook env.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

TASK [یک متغیر محیط برای همه کاربران تنظیم کنید] ******************************************** *********************************************** ***
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 2 تغییر = 1 دست نیافتنی = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

به پنجره متغیرهای محیط بروید. متغیر جدیدی را که اضافه کردید خواهید دید که در اینجا موجود است.

متغیرهای ویندوز حساس

رجیستری را اضافه یا ویرایش کنید

از ماژول win_regedit ansible برای افزودن یا ویرایش جزئیات رجیستری در دستگاه ویندوز از راه دور استفاده می شود. شما باید مسیر رجیستری و مطالب را اضافه یا به روز کنید. در اینجا من یک ورودی جدید رجیستری GeekFlare را در داخل HKLM ایجاد می کنم: \ SOFTWARE مسیر و سپس نام و داده ای را به این رجیستری اضافه می کنم.

[ایمیل محافظت شده] ~
$ vi Register.yml

– میزبان: برنده شوید

وظایف:

– name: ایجاد رجیستری

win_regedit:

مسیر: HKLM: \ نرم افزار \ GeekFlare

– name: اصلاح رجیستری ، افزودن نام و داده

win_regedit:

مسیر: HKLM: \ نرم افزار \ GeekFlare

نام: گیک

داده ها: شعله ور شدن

برای اضافه کردن رجیستری ، کتابچه بازیibleible را اجرا کنید.

[ایمیل محافظت شده] ~
$ ansible-playbook register.yml

بازی کنید [برنده] ****************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [ایجاد رجیستری] ********************************************* *********************************************** *********************
تغییر کرد: [192.168.0.102]

وظیفه [اصلاح رجیستری ، افزودن نام و داده] ***************************************** *********************************************** ***
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** **********************************
192.168.0.102
: ok = 3 تغییر = 2 دست نیاورد = 0 شکست = 0
جست و خیز = 0 نجات = 0 نادیده گرفته = 0

اگر به سیستم از راه دور به Registry Editor بروید ، می توانید ببینید که این رجیستری با موفقیت با پارامترهای Name and Data اضافه شده است.

رجیستری ویندوز حساس

حذف ورود به سیستم

ماژول قابل اعتماد win_eventlog برای اضافه کردن ، پاک کردن یا حذف پرونده های وقایع ویندوز از سیستم ویندوز استفاده می شود.

به Windows Powershell بروید و EventLogs موجود در دستگاه ویندوز از راه دور را لیست کنید.

PS C: \ کاربران \ Geekflare> دریافت-EventLog – لیست
حداکثر (K) ورود به سیستم OverflowAction را حفظ کنید
—— —— ————– ——- —
20،480 0 OverwriteAsNeeded 33،549 برنامه
20،480 0 OverwriteAsNeeded 0 HardwareEvents
512 7 OverwriteOlder 20 Internet Explorer
20،480 0 OverwriteAsNeeded 0 خدمات مدیریت کلید
128 0 OverwriteAsNeeded 190 OAlerts
امنیت
20،480 0 OverwriteAsNeeded 44،828 سیستم
15،360 0 OverwriteAsNeeded 3،662 Windows PowerShell

حال ، من نحوه حذف سیاهههای مربوط از همه منابع برای Internet Explorer را نشان خواهم داد.

[ایمیل محافظت شده] ~
$ vi log.yml

– میزبان: برنده شوید
وظایف:
– name: حذف سیاهههای مربوط به Internet Explorer
win_eventlog:
نام: اینترنت اکسپلورر
حالت: غایب

دفترچه بازی با جواب را اجرا کنید تا Internet Explorer از دستگاه ویندوز از راه دور خارج شود.

[ایمیل محافظت شده] ~
$ ansible-play log.yml

بازی کنید [برنده] ****************************************** *********************************************** *********************************************** ************************************

کار [جمع آوری حقایق] ********************************************** *********************************************** *********************************************** *************************
ok: [192.168.0.102]

کار [حذف گزارش های اینترنت اکسپلورر] ********************************************* *********************************************** ***********************************************
تغییر کرد: [192.168.0.102]

PLAY RECAP ************************************************** *********************************************** *********************************************** **********************************
192.168.0.102: ok = 2 تغییر = 1 غیرقابل دستیابی = 0 شکست = 0 جست و خیز = 0 نجات = 0 نادیده گرفته = 0

حال ، اگر EventLogs را دوباره بنویسید ، مشاهده خواهید کرد که سیاهههای مربوط به Internet Explorer برداشته شده است.

PS C: \ کاربران \ Geekflare> دریافت-EventLog – لیست

حداکثر (K) ورود به سیستم OverflowAction را حفظ کنید
—— —— ————– ——- —
20،480 0 OverwriteAsNeeded 33،549 برنامه
20،480 0 OverwriteAsNeeded 0 HardwareEvents
20،480 0 OverwriteAsNeeded 0 خدمات مدیریت کلید
128 0 OverwriteAsNeeded 190 OAlerts
امنیت
20،480 0 OverwriteAsNeeded سیستم 44،835
15،360 0 OverwriteAsNeeded 56 Windows PowerShell

بنابراین ، این همه مربوط به کتابهای بازی 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