Automatizace prostředí pomocí System Center Orchestrator a Service Manager

1.1 Proč automatizovat?

Možná by správně ta otázka měla znít: Proč neautomatizovat? Napadlo Vás někdy automatizovat běžné každodenní činnosti v reálném životě? Určitě ano, vždyť se o to lidstvo už nějakou dobu snaží – jsme dnes zaplaveni různými robovysavači a robosekačkami. Máme přece tak málo času, tak proč ho věnovat stejným činnostem stále dokola? Tak proč tak málo automatizujeme naše každodenní úkoly v IT? Myslím, že většina si v duchu odpoví, že na to není čas. Zní to poměrně úsměvně, když si uvědomíme, že automatizace má čas hlavně šetřit.

Pojďme se tedy podívat, co nám ta automatizace přinese. Jsme lidi, děláme chyby, stroje chyby nedělají (když už, tak to bývá chyba programátora), takže rozhodně se nám podaří alespoň částečně eliminovat chyby. Určitě by nám to také mělo šetřit čas. A teď se asi ptáte, jak Vám to ušetří čas, když už stejně máte ty skripty hotové a jen je spouštíte se spoustou parametrů? Odpověď je zároveň další hlavní výhodou automatizace – automatizujte proces a delegujte jeho spouštění a zadávání parametrů. Pro vysvětlení si představte, že Váš skript na založení nového uživatele je webová stránka a HR namísto odeslání mailu s údaji nového zaměstnance na IT, otevře webovou stránku a údaje zadá. Automatizace se postará o vše ostatní.

1.2 Seznamte se s Orchestratorem a Service Managerem

Ať už děláme cokoliv, je dobré mít šikovného pomocníka. Když jdeme sekat zahradu, vezmeme si sekačku, když jdeme automatizovat IT procesy, vezmeme si System Center Orchestrator.

System Center Orchestrator(aktuálně ve verzi 2012 R2) je úžasně jednoduchý nástroj. Představte si, že skriptujete v MS Visio a nebudete daleko od pravdy, však se podívejte na obrázek Runbook Designeru níže. Základem Orchestratoru je tzv. Runbook, což je vlastně jedna ohraničená funkce. Runbook se skládá z jednotlivých aktivit, které jednoduše přetáhnete myší tam, kam potřebujete. Aktivita je základní stavební kostka (můžete si je představit jako kostičky oblíbené dětské stavebnice) a je součástí tzv. Integration Packu. Integration Packy tvoří Microsoft, výrobci HW, aplikací a samozřejmě přispívá ve velkém i komunita. Aktivity mohou něco monitorovat, vyčítat data, zapisovat data, spouštět skripty a tak dále, možnosti aktivit jsou omezené jen možnostmi kódu. A samozřejmě jedna z těchto aktivit dokáže spustit i celý jiný runbook, který pak vlastně slouží jako funkce/procedura. Zní to celé až moc hezky? Samozřejmě to má pár úskalí, ale většinu základních procesů dokážete automatizovat během pár desítek minut a na žádné úskalí nenarazíte.

blog

Obrázek 1: Orchestrator Runbook Designer

Velkou výhodou Orchestratoru je jeho webový portál, kde vidíte stav všech runbooků, můžete je ručně spouštět a můžete se podívat podrobně na každý běh. Orchestrator také disponuje webovou službou založenou na protokolu REST/OData, pomocí které můžete snadno spouštět a kontrolovat runbooky pomocí skriptu nebo jiného kódu.

System Center Service Manager(aktuálně ve verzi 2012 R2) je naopak obrovská robustní platforma, která má mnoho funkcí. My se v tomto článku zaměříme jen na jednu oblast a tou jsou pracovní postupy a jejich využití v rámci incidentů a požadavků. Důležitým prvkem, bez kterého se v Service Manageru neobejdeme, je webový portál. Ten bude sloužit jako primární rozhraní pro zadávání požadavků, jako sekundární rozhraní je ideální využít e-mail. Pak už jen v Service Manageru vytvoříme katalog služeb a návazných žádostí a tyto žádosti namapujeme na runbooky v Orchestratoru. Výsledkem je webový portál, kde mohou být například tyto typy žádostí:

- Vytvoření uživatele (viditelné jen pro HR)

- Přenesení aplikační databáze z PROD do DEV (obnova ze zálohy do jiné instance)

- Aktualizace serverové farmy

- Rekonfigurace VM

- Přesun VM do jiného cloudu

- …

1.3 Pojďme si to ukázat…

Začněme něčím úplně jednoduchým, kde využijeme jen samotný Orchestrator – v každém IT prostředí jsou nějaké naprosto triviální aktivity, které je potřeba dělat opakovaně. Klasickým příkladem je skript, který vyfiltruje všechny distribuční skupiny, které vyžadují ověření při odeslání e-mailu na ně, a tento příznak odstraní. Je to věc, na kterou se při ručním zakládání často zapomene (paradoxně kdyby bylo založení distribuční skupiny automatizované, nemusel by existovat tento runbook). Následující runbook hlídá čas a každých 24 hodin spustí následnou aktivitu, což je jednoduchý powershell skript, který využívá Exchange modulu.

blog2

Obrázek 2: Jednoduchý runbook na nápravu distribučních skupin

Dalším jednoduchým příkladem může být založení uživatele. Zde už můžeme využít Service Manager, aby personální oddělení mohlo jen vyplnit webový formulář. Runbook můžeme samozřejmě spouštět i ručně nebo z jakéhokoliv jiného systému/aplikace. Založení uživatele se většinou skládá z několika menších úkolů:

- Vygenerování hesla

- Založení účtu v AD

- Vytvoření mailboxu

- Přidání do skupin

- Povolení Lyncu (Skype for Business)

V tomto případě už je samozřejmě nutné přidat do runbooku větší inteligenci – pokud některá aktivita selže, chceme runbook hned ukončit. Také chceme logovat všechny aktivity, abychom věděli, co se dělo. Orchestrator sám o sobě loguje dost podrobně, ale my potřebujeme také vědět, co se děje uvnitř našich skriptů, proto doporučuji logovat jednoduše do SQL. Aktivita „Write Log“ volá další runbook, který vlastně slouží jako funkce.

blog3

Obrázek 3: Formulář vytvoření uživatele na webovém portálu Service Manageru

blog4

Obrázek 4: Runbook na založení uživatele

1.4 Brnkačka, nemáte něco složitějšího?

Přijde Vám i založení uživatele jednoduché? Dobře. Pojďme se podívat, jak aktualizovat kritickou distribuovanou aplikaci. Aktualizační proces využívá dva hlavní runbooky a čtyři další runbooky-funkce. Při aktualizaci je nutné dodržet naprosto přesný postup a pravidla:

- Ověřit, že všechny servery a System Center Configuration Manager jsou dostupné

- Aktualizovat jeden server po druhém v přesně daném pořadí

- Před a po aktualizaci musíme zkontrolovat stav služeb a celého server

- Před aktualizací musíme vyřadit server z monitoring a z NLB a po dokončení vše vrátit

- Restart server probíhá řízeně a jen v případě nutnosti včetně detailního logování

- Notifikujeme e-mailem začátek aktualizačního procesu, na konci odesíláme souhrnnou tabulku všech serverů včetně počtu nainstalovaných aktualizací

- V případě chyby musíme vše okamžitě ukončit a poslat e-mailem upozornění

blog5

Obrázek 5: Hlavní řídící runbook pro aktualizaci kritické aplikace

blog6

Obrázek 6: Podřízený runbook pro aktualizaci kritické aplikace

1.5 Závěr

Jak vidíte, automatizace není nic složitého, tak si na to najděte čas. Určitě si vyzkoušejte stáhnout zkušební verzi MS System Center Orchestrator 2012 R2, určitě si tento nástroj oblíbíte.

Zkušební verze MS System Center Orchestrator 2012 R2: https://www.microsoft.com/en-us/download/details.aspx?id=40842

Jan Lukele, KPCS CZ