• Nebyly nalezeny žádné výsledky

2018PeterStasinka AbsolvováníindividuálníodbornépraxeIndividualProfessionalPracticeintheCompany VŠB–TechnickáuniverzitaOstravaFakultaelektrotechnikyainformatikyKatedrainformatiky

N/A
N/A
Protected

Academic year: 2022

Podíl "2018PeterStasinka AbsolvováníindividuálníodbornépraxeIndividualProfessionalPracticeintheCompany VŠB–TechnickáuniverzitaOstravaFakultaelektrotechnikyainformatikyKatedrainformatiky"

Copied!
28
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

VŠB – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky

Katedra informatiky

Absolvování individuální odborné praxe Individual Professional Practice in the

Company

(2)
(3)
(4)
(5)
(6)

Abstrakt

Bakalárska práca je písomnou správou o priebehu absolvovania individuálnej odbornej praxe, ktorú som vykonával v spoločnosti ABB s.r.o.. V prvej časti popisujem odborné zameranie spoločnosti a moje pracovné zaradenie. Ďalej sa venujem popisu mne zadaných úloh a ich riešení.

Odborná prax bola zameraná na vývoj virtualizačného prostredia pre ingeneering. Náplň mojej práce súvisela predovšetkým s programovaním v prostredí PowerShell a využitia technologií k písaniu skrípt. V závere práce hodnotím novo získané skúsenosti a zručnosti, ktoré mi chýbali a ktoré som vďaka tejto praxi získal.

Kľúčové slová: odborná prax, ABB s.r.o., PowerShell, PowerCli, VMware Workstation, vCenter Server, Windows Server 2012 R2 Server, 800xA

Abstract

This bachelor thesis is report on the completion of individual professional experience, which I have done in ABB s.r.o. company. In the first chapter I describe the professional orientation of the company and my work position. Further, I describe my tasks and their resolutions.

Professional experience was focused on developing a virtualization environment ingeneering.

My work was connected mainly with programming in the PowerShell enviroment and using technology to write a script. At the end of this work I evaluate my newly acquired experience and skills that I gained through this professional experience.

Key Words: todborná prax, ABB s.r.o., PowerShell, PowerCli, VMware Workstation, vCenter Server, Windows Server 2012 R2 Server, 800xA

(7)

Obsah

Seznam použitých zkratek a symbolů 8

Zoznam obrázkov 9

Seznam výpisů zdrojového kódu 10

1 Úvod 11

2 Odborné zameranie firmy a pracovné zaradenie študenta 12

2.1 Popis profilu spoločnosti . . . 12

2.2 Pracovné zaradenie . . . 12

3 Úlohy zadané v priebehu odbornej praxe 13 3.1 Virtualizácia a automatizácia . . . 13

3.2 Windows Server . . . 14

3.3 Skriptovací jazyk . . . 15

3.4 Skript prekvizit 800xA . . . 17

3.5 Výstup špecifických informácií stroja . . . 19

3.6 Vytvorenie virtuálných strojov . . . 22 4 Teoretické a praktické znalosti získané v priebehu štúdia uplatnenie študen-

tom v priebehu odbornej praxe 25

5 Znalosti či schopnosti chýbajúce študentovi v priebehu odbornej praxe 26

6 Záver 27

Literatura 28

(8)

Seznam použitých zkratek a symbolů

HDD – Hard Disk Drive

AMD – Advanced Micro Devices

OOP – Object-oriented programming

WMI – Windows Management Instrumentation

HTTPS – HyperText Transfer Protocol

RDP – Remote Desktop Protocol

CMD – Command Prompt

ISATAP – Intra-Site Automatic Tunnel Addressing Protocol

GUI – Graphical User Interface

HW – Hardware

OS – Operačný systém

8

(9)

Zoznam obrázkov

1 Prostredie vSphere Client v ktorom je zobrazený môj vytvorený stroj a jeho väzby 14

2 Výpis údajov po zadaní príkazu . . . 17

3 Formát výstupu v exceli . . . 18

4 Výstup skriptu s informáciami . . . 22

5 Výstup skriptu s informáciami po vytvorený stroja . . . 24

(10)

Seznam výpisů zdrojového kódu

1 Skript pre odinštalovanie verzií Googlu Chromu pomocou registra a pomocou

Packagov . . . 16

2 Získanie informácií o diskoch . . . 16

3 Ukážka naplňovania objektu objektmi pre výstup . . . 18

4 Funkcia starajúca sa o Hotfixy . . . 19

5 Stav Licencie OS . . . 20

6 Stav RDP a informácie o účtoch v počítači . . . 21

7 Cyklus čakajúci na koniec customizácie stroja . . . 23

10

(11)

1 Úvod

Pre svoju bakalársku prácu som sa rozhodol využiť možnosť vykonávania bakalárskej praxe vo vybranej firme. Nakoľko som chcel využiť reálne nadobudnuté vedomosti v praxi ako aj v prípade potreby sa niečo nové naučiť a zoznámiť sa s pracovným prostredím vo firme. Táto firma bola ABB s.r.o. [2], ktorá vznikla v ČR v roku 1992. Firma má v ČR viacero sídiel ja som mal tu možnosť pracovať sídle v Ostrave. Tu som sa podieľal na vývoji niekoľkých skriptov v programovacom jazyku PowerShell a neskôr v nadstavbe PoweCli pre virtualizačný nástroj vCenter a VMware. U každého skriptu som riešil rôzne zadanie u jednotlivých zadaní bola rada úloh s ktorými som sa potýkal a bolo treba nájsť čo najefektívnejšie riešenie daného problému.

V predposlednej časti sa budem venovať, ktoré znalosti som počas praxe využíval, ktoré som naopak musel doplniť.

(12)

2 Odborné zameranie firmy a pracovné zaradenie študenta

2.1 Popis profilu spoločnosti

ABB je prednou svetovou spoločnosťou v oblasti energetiky a automatizácie. Umožňuje zákaz- níkom z oblasti priemyslu a distribúcie energií zlepšiť ich výkonnosť a súčasne znížiť dopad ich činností na životné prostredie. Organizačne je ABB rozdelená do štyroch divizií:

• Elektrotechnické výrobky

• Robotika a pohony

• Priemyslová automatizácia

• Energetika

V súčasnej dobe zamestnáva ABB okolo 136 000 ľudí v 100 štátoch sveta, z toho viac ako 3400 v ČR. Posobí v CR v 8 lokalitách v Prahe, Brne, Ostrave, Trutnove a Jablonci nad Nisou.

2.2 Pracovné zaradenie

V rámci svojej odbornej praxe som pracoval na pozicií support pre vytváranie virtuálneho pro- stredia pre inžiniersku činnosť. Náplňou mojej práce bolo vytváranie automatizovaného pro- stredia pre inžiniersku činnosť. Hlavnou náplňou mojej práce bolo vytváranie optimalizovaných skript v PowerShelli a ich následné testovanie a vylaďovanie. Táto práca mi umožňovala prísť do styku s virtuálnym prostredím VMWare a virtuálnymi nástrojmi, ako aj ich následne vytvo- renie a nastavovanie pomocou GUI. Po vytvorený skript v PowerShelli a PowerCli aj pomocou skriptov. Aby som mohol vytvárať automatizované a efektívne skripty musel som zadanie jed- notlivých úloh detailne pochopiť, toto zahrnovalo komunikáciu s mojím vedúcim na bakalárskej práci poprípade naštudovanie si danej problematiky.

12

(13)

3 Úlohy zadané v priebehu odbornej praxe

3.1 Virtualizácia a automatizácia

V priebehu mojej praxe som mal možnosť pracovať na rôznych úlohách avšak najskôr som sa mal zoznámiť s virtualizačním prostredím v ktorom sa mala odohrávať moja ďalšia práca a pochopiť princíp virtualizácie [3] a automatizácie. Získanie praktických znalostí z prostredia Wmvare mi umožnilo lepšie pochopiť moju ďalšiu prácu a jednotlivé úskalia virtualizácie a automatizácie.

Najprv by som vám predstavil virtualizáciu s ktorou som sa počas mojej práce stretával.

Podstatou virtualizácie je beh viacerých izolovaných operačných systémov nad jedným har- dwarom. Tieto operačné systémy sa delia spolu o svoje hardwarové prostriedky ako je procesor, pamäť, pevné disky alebo sieť. Niekedy je žiadúce aby servery bežali v jednom väčšom celku.

Napriek spoločnému využívaniu týchto prostriedkov sú od seba izolované, čo umožňuje beh rôz- nych operačných systémov napríklad Windows a Linux na jednom serveri a môže ich takto bežať desiatky až stovky. Pri páde jedného operačného systému neovplyvní beh ostatných pre- tože navzájom o sebe nevedia takže je dodržaná aj bezpečnosť. V ideálnom prípade sa priamo na hardware nainštaluje tzv. Hypervizor (VMware ESXi). Je to vlastne operačný systém, ktorého jedinou úlohou je slúžiť ako medzivrstva medzi hardwarom a virtuálnymi strojmi. Prideľuje har- dwarové prostriedky virtuálnym strojom, ktorým poskytuje virtuálny hardware. Taký virtuálny stroj nevie, že je virtuálny. Každý virtuálny stroj je vlastne len adresár so súbormi, v ktorých sa nachádzajú informácie o tom, aký virtuálny HW používa, virtuálne HDD atd.. Podstatou je že na jeden fyzický server možno dať viacero virtuálnych serverov má to svoje obrovské výhody:

• Peniaze, bežný server nevyužíva celý svoj výkon takže namiesto 15 serverov budú stačiť 2, to môže ušetriť nemalé peniaze.

• Dostupnosť, keďže virtuálny stroj je len adresár zo súbormi, je ľahké ho niekam presunúť.

Virtuálnemu stroju je jedno, či beží na serveri Dell, ktorý ma procesor Intel alebo na serveri HP ktorý ma procesor AMD.

(14)

Ja som väčšinu svojho času pracoval na skriptoch v PowerShelli a PowerCli ale istý čas som trávil aj vo virtualizačnom prostredí v VMware vSphere Client [4]. Je to webová aplikácia, ktorá sa pripojuje k serveru vCenter, takže správcovia môžu spravovať objekty v vSphere. Je taktiež možnosť pracovať na clientovi, ktoré má veľmi podobné rozhranie ako webová aplikácia. Ja som väčšinou pracoval na webovom rozhraní. Oboznámenie sa s týmito pojmami a technológiami mi trvalo 3-4 dni.

3.2 Windows Server

Mojou ďalšou úlohou bolo na novo vytvorenom stroji nainštalovať Windows Server 2012 R2 a nainštalovať tam systém 800xA bez automatizácie. Teda nastaviť všetky prekvizity ručne pred samotnou inštaláciou od základných vlastnosti jazyk, časové pásmo až po zložitejšie nastavenia, ktoré mi dávali za úlohu oboznámiť sa so správou Windows systému.

3.2.1 Systém 800xA a Windows Server

Systém 800xA [1] je systém pre riadenie spojených technologických procesov. Ponúka všetko potrebné k ucelenému procesnému riadeniu aj úplnú integráciu vlastnej riadiacej, elektrickej, bezpečnostnej a informačnej časti riadiaceho systému v jedinom spoločnom prostredí. Funguje ako integračná platforma, ktorá sprostredkuváva zdieľanie údajov po celom podniku a umožňuje jednotným spôsobom riadiť v reálnom čase všetky jeho prevádzkové aktivity. Tento systém beží na Windows Serveroch.

Virtuálny stroj mal mať špecifické požiadavky ako je veľkosť operačnej pamäte, sieťové karty, pevný disk, na ktorom hostu má byť vytvorený, aký typ pevného disku mal obsahovať atď.. Po vytvorení stroja, ktorého väzby a príslušnosť v rámci úložísk je striktne daná mojím nastavením (viz obrázok 1)

Obr. 1: Prostredie vSphere Client v ktorom je zobrazený môj vytvorený stroj a jeho väzby

14

(15)

som začal nastavovať prekvizity podľa manuálu. Zahrnovalo to napríklad inštaláciu Adobe Readeru, NetFrameworku, nastavení uživateľských účtov a ich práv a skupín. Po všetkých príp- ravách som sa mohol pustiť do inštalácie systému 800xA.

Inštaláciu som realizoval cez ISO súbor, ktorý som nahrával do optickej mechaniky z cloudu.

Následná inštalácia spolu so všetkými nastaveniami trvala približne, 6-7 hodín v priebehu, kto- rých sa ešte môže vyskytnúť chyba ktorej zistenie je následné možné v rámci xml súboru v zložke so systémom 800xA. Kde som bol nútený si informácie prezrieť a zistiť v ktorej časti inštalácie nastala chyba. Moja úloha skončila vtedy pokiaľ bol systém 800xA nainštalovaný korektne a pripravený na používanie. Verím že praxou by sa tento čas zrýchlil maximálne na 4-5 hodín avšak bolo aj tak pomerne veľa s predpokladom že všetko nastavím správne a nikde neurobím chybu. Touto skúsenosťou som si začal v praxi uvedomovať dôležitosť automatizácie a neskôr som bol milo prekvapený ako sa dá uľahčiť práca skriptami.

3.3 Skriptovací jazyk

Mojou základnou úlohou v priebehu mojej praxe bolo sa najprv zoznámiť s PowerShellom a nakoniec aj aktívne ovládať tento skriptovací jazyk. Do tejto doby som sa o tento jazyk zvlášť nezaujímal a nemal som s ním žiadne skúsenosti.

3.3.1 PowerShell

PowerShell [6] je postavený na platforme .NET Frameworku a preto využíva objektovo-orientovane programovanie (OOP) a vie veľmi dobre využívať tzv. regulárných výrazov, ktoré sú zákla- dom teórie formálnych jazykov, automatov a gramatických systémov. Takže môžeme vytvárať celé skripty s podmienkami, cyklami, atď.. PowerShell je akousi nadstavbou príkazového riadku (cmd) okrem príkazov dokáže pristupovať k registrom a ich editácia hodnôt ako aj ich kľúčov, efektívne spracovávať beh služieb a procesov. Ďalej je možno vytvárať presúvať ukladať súbory a efektívne ich aj formátovať.

PowerShell ponúka vďaka modulom použitie špecifických príkazov pre prácu s určitou ob-

(16)

Za jeho hlavné výhody pokladám možnosť správy systému bez použitia GUI. Na druhej strane kladie na užívateľa znalosť syntaxe príkazov a možností. V priebehu celej praxe som mal väčšinou pracovať v PowerShelli a tak prvotné zoznámenie trvalo asi 4-5 dní z mojej bakalárskej praxe v priebehu, ktorých som absolvoval školenie v rámci firmy. Kde som si zopakoval alebo doplnil teoretické informácie ohľadom softwéru používaného v rámci firmy, ktoré boli neoddeli- teľnou súčasťou práce na tvorbe virtuálneho prostredia v PowerShelli a PowerCli.

3.3.2 Zhodnotenie PowerShellu

Po absolvovaní kurzu PowerShell som mal základné znalosti o možnostiach jazyka. Písaní, skla- daní a ľahkom formátovaní objektov (viz výpis kódu 2), tieto znalosti mi mali pomôcť pri písaní skript v mojej ďalšej úlohe. Pre príklad uvádzam rôzne príkazy v PowerShelli a varianty prí- kazov, kde si môžeme vyskladať z príkazu to čo potrebujeme alebo použiť existujúci príkaz a dostaneme všeobecné informácie (viz obrázok 2). PowerShell sa samozrejme ako aj iné jazyky vyvíja a s novšou verziou 5.1 je možné napríklad odinštalovávať programy o čosi jednoduchšie (viz výpis kódu 1) ako tomu bolo v minulosti.

gwmi win32_product -Filter "name LIKE ’Google\%’"

| select identifyingnumber

| ForEach-Object {cmd.exe /c msiexec.exe -x \$_.identifyingnumber -qb}

Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

| ForEach-Object {Get-ItemProperty -Path \$_.pspath -Name displayname, uninstallstring -ErrorAction SilentlyContinue

| Where-Object {$_.displayname -like "*7-zip*"}

| select -ExpandProperty uninstallstring

| ForEach-Object {cmd.exe /c $_}}

// Odinštalovanie Google Chromu pomocou Packagov

Get-Package -Name "Google Chrome" -RequiredVersion "65.0.3325.181" | Uninstall- Package -Force

Výpis 1: Skript pre odinštalovanie verzií Googlu Chromu pomocou registra a pomocou Packagov Get-Volume | Where-Object -FilterScript ‘

{($_.sizeremaining/$_.size) -gt 0 -and ($_.sizeremaining/$_.size) -lt 0.85} | Select-Object -Property ‘

@{n=’pismeno jednotky’;e={$_.driveletter}}, ‘

@{n=’typ jednotky’;e={$_.drivetype}}, ‘

@{n=’volne misto [GB]’;e={"{0:N2}" -f ($_.sizeremaining/1GB)}}, ‘

@{n=’volne misto [\%]’;e={"{0:P0}"-f ($_.sizeremaining/\$_.size)}}

16

(17)

//alternatívny zápis zo základných príkazov PowerShellu stačí použiť Get-Volume

Výpis 2: Získanie informácií o diskoch

Obr. 2: Výpis údajov po zadaní príkazu

3.4 Skript prekvizit 800xA

Mojou úlohou bolo vytvoriť skript nastavení rôznych špecifických požiadaviek podľa, ktorých som sa riadil pri predchádzajúcom nastavovaní stroja pre prvotnú inštaláciu. Ako som zistil je tu potreba automatizácie a vytvorenie skriptu pre uľahčenie práce a času ľudí. Na vytvorenie skriptu som používal PowerShell na formátovanie kódu sa kládol veľký dôraz kvôli prípadnej ďalšej rozšíriteľnosti a prehľadnosti. Ak som sa chcel vyhnúť ručnému formátovaniu mohol som používať PowerShell Studio 2018, ktoré mi kód napísaný v PowerShelli pekne sformátovalo a tak som mal o starosť menej, avšak malo len obmedzenú bezplatnú licenčnú dobu. Práca na tomto skripte mi zabrala asi 15 dní z mojej praxe.

3.4.1 Práca na skripte

Po absolvovaní školenia som sa pustil do práce na rozsiahlom skripte, ktorého zadanie bolo rozpracované na jednotlivé menšie pod úlohy a zaberalo bezmála 20 strán. Jednotlivé body som skúšal samostatne na virtuálnom a pridelenom stroji, ktorý som si sám vytvoril. Mal OS

(18)

nastavení. CSV je jednoduchý formát súboru určený pre výmenu tabuľkových dat. Súbor vo formáte csv pozostáva z riadkov v ktorých sú jednotlivé položky oddelené čiarkou.

[void]Export(){

$EBTable = New-Object -TypeName System.Collections.ArrayList

$EBTable.Add( [PSCustomObject] @{Prekvizita = ’EnableNetworkDiscovery’; Hodnota

= $this.NetworkDiscoveryResult ;}) | Out-Null

$EBTable.Add( [PSCustomObject] @{Prekvizita = ’DisableInternetSecuritySet’;

Hodnota = $this.InternetSecuritySetForDigitalSignatureValidationResult;}) | Out-Null

$EBTable.Add( [PSCustomObject] @{Prekvizita = ’Check MS Word’; Hodnota = $this.

MSOfficeWordResult;}) | Out-Null

$EBTable.Add( [PSCustomObject] @{Prekvizita = ’Check MS Excel’; Hodnota = $this .MSOfficeExcelResult;}) | Out-Null

$EBTable.Add([PsCustomObject]@{Prekvizita= ’enable network discovery File’;

Hodnota=$This.FileandPrinterSharingResult;}) | Out-Null

$EBTable | Export-Csv -Path C:\Users\Export.csv -NoTypeInformation }

Výpis 3: Ukážka naplňovania objektu objektmi pre výstup

Pri zostavovaní prehľadnej tabuľky vykonaných akcií som sa stretával s rôznymi spôsobmi.

Nakoniec som sa rozhodol pre vytvorenie objektu typu pole, ktoré som postupne plnil ďalšími vytvorenými objektmi a ich hodnotami (viz výpis kódu 3) a nakoniec môžem ukázať malú ukážku z exportu ktorý som si vytvoril a sformátoval (viz obrázok 3).

Obr. 3: Formát výstupu v exceli

18

(19)

V priebehu práce na skripte som sa zoznámil s pracou nastavovania hodnôt a kľúčov v registroch cez PowerShell alebo ich vytvárania ako aj získania špecifických informácií vo WMI, CIM a ich ďalšie používanie. Splnenie niektorých požiadaviek vyžadovalo viacej naštudovania danej problematiky alebo zložitejšie písanie kódu. Niektoré požiadavky sa dalo vyriešiť viacerými cestami a bolo dôležité si uvedomiť, ktorá cesta je najviac efektívna. Pridávam jednu funkciu, ktorá sa starala o Hotfixy a informovala užívateľa o ich priebehu (viz výpis kódu 4).

InstalHotfixwithIPSecEnabled(){

$kbpath=".\KB3007072.msu"

$updates = @(Get-ChildItem -Path $kbpath -Filter".msu") if ($updates.Count -ge 1)

{

$updates | %{

Write-Host "Processing update $($_.Name)."

& wusa $_.FullName /quiet /norestart }

}

else{Write-Host "No updates founds."}

}

Výpis 4: Funkcia starajúca sa o Hotfixy

Po úspešnom odladení a nastavení všetkých prekvizít som mohol vyskúšať moju prácu v praxi a potvrdiť si úspešný výsledok skriptu a automatizácie. Po úspešnom splnení úlohy nasledovala ďalšia časť mojej práce.

3.5 Výstup špecifických informácií stroja

Obsahom tejto úlohy bolo napísať skript pre bližšiu špecifikáciu vybraných technických vlast-

(20)

3.5.1 Práca na skripte

Výstup mal mať niekoľko kategórií, v ktorých boli logicky obsiahnuté jednotlivé parametre a to systémové informácie, informácie o stroji a jeho špecifické vlastnosti, príslušnosť k doméne alebo naopak k workgoupe, informácie o PowerShelli, diskové informácie o jednotlivých zväzkov a typov, informácie o vzdialenom prístupe, lokálnych účtov a skupín, sieťové prvky pripojené do stroja a ich vybrané parametre, softwérové informácie a iné. Jednotlivé body som riešil samostatne a odladil si prípadné chyby a zase to bolo pre cieľový OS Windows Server 2012 R2.

Prácu s formátovaním som si uľahčil zase pomocou PowerShell Studia 2018.

Pri získavaní informácií o licencii operačného systému som siahol po technológií WMI, ktorá ma širokú škálu informácií a umožňuje správu Windowsu a je pomerne rozsiahla a pre ne- skúseného používateľa ťažko prehľadná. V ukážke prikladám kód ako som danú problematiku vyriešil, kde bolo nutné si celkom rozobrať WMI objekt a zistiť si bližšie informácie ohľadom stavov licencie (viz výpis kódu 5).

LicenseInfo() {

$this.License= Get-WmiObject -ClassName SoftwareLicensingProduct|

where PartialProductKey | select

@{Name=’LicenseStatus’;Exp=

{

switch ($_.LicenseStatus) {

0 { $this.License0=’Unlicensed’}

1 { $this.License0=’Licensed’}

2 { $this.License0=’OOBGrace’}

3 { $this.License0=’OOTGrace’}

4 { $this.License0=’NonGenuineGrace’}

5 { $this.License0=’Notification’}

6 { $this.License0=’ExtendedGrace’}

Default { $this.License0=’Undetected’}

} }

} }

Výpis 5: Stav Licencie OS

Pri riešení jednotlivých úlohách som postupoval postupne a bolo treba si ozrejmiť dané príkazy a ich jednotlivé znenie, pretože existovalo viacero ciest a bolo treba postupovať čo najviac jed- noducho aby boli informácie zachované priamo od jadra systému a predchádzalo sa nejakým

20

(21)

stratám informácii pri dlhšom výpočte alebo použitím nadstavbových príkazov. Samozrejme nie vždy sa tomu dalo zabrániť. Ale bolo potreba to obmedziť na minimum.

Ďalej bolo potrebné si pri niektorých úlohách importovať niektorý z modulov, ktorý obsaho- val bližšie špecifické príkazy pre určitú časť systému. Funkciu, ktorej úlohou je podať informácie o prístupu k vzdialenej pracovnej ploche kde som musel využiť práve pridaný modul ServerMa- nager ktorý mi zaistil splnenie tejto funkcie a jej úspešne spracovanie. Pridávanie modulov je vcelku jednoduché, Import-Modul ServerManager v tomto prípade názov modulu je potrebné si zistiť alebo vylistovať z možností, ktoré nám PowerShell ponúka príkazom Get-Module –ListA- vailable. Môžete vidieť funkciu ktorá je zostavená z príkazov v moduly LocalAccount (viz výpis kódu 6).

RemoteDesktopInfo()

{ Function Get-RemoteDesktopConfig() {

if ((Get-ItemProperty -Path ’HKLM:\System\

CurrentControlSet\Control\Terminal Server’).

fDenyTSConnections -eq 1) { $tmp="not allowed" }

elseif ((Get-ItemProperty -Path ’HKLM:\System\CurrentControlSet\

Control\Terminal Server\WinStations\RDP-Tcp’).

UserAuthentication -eq 1)

{ $tmp= "Only Secure Connections allowed" } else

{$tmp= "all Connections allowed" } return $tmp

}

$this.RemoteDesktop=Get-RemoteDesktopConfig

$this.localadmins=Get-LocalGroupMember -Name Administrators

$this.localusers=Get-LocalGroupMember ’Remote Desktop users’

(22)

Obr. 4: Výstup skriptu s informáciami

fickými pomôckami a tak výsledok bol ľahšie čitateľný. Ale aj ako textový súbor hlavne pre jeho jednoduchosť a podporu v čisto nainštalovanom stroji. Prehľadnosť informácií nebolo jed- noduché docieliť v textovom súbore pre takmer žiadnu grafickú úpravu z prostredia PowerShell.

Ale nakoniec som sa myslím popasoval s danou úlohou najlepšie ako som vedel a časť výstupu môžete vidieť sami (viz obrázok 4). Pri vytváraní výstupu som použil jeden objekt, ktorý bol naplnený všetkými informáciami.

3.6 Vytvorenie virtuálných strojov

Prostredie VMware vSphere Client som úž dôkladne poznal z mojej predchádzajúcej práce a tak moja nasledujúca úloha sa orientovala na toto prostredie ale z odlišného hľadiska. PowerCli [5]

je rozhranie PowerShellu pre správu vSphere. Umožňuje vykonávanie všetkých úloh, ktoré som inak poznal z grafického prostredia Vmware a tak dokáže automatizovať procesy. Automatizácia vytvárania virtuálneho stroja alebo strojov bola mojou úlohou. Dôraz sa kládol na čo najväčšiu automatizáciu a tak ušetrenia času a prostriedkov. Práca na tomto skripte mi trvala približne 12-14 dní.

22

(23)

3.6.1 PowerCli skript

Splnenie tejto úlohy si vyžadovalo autorizáciu v rámci firmy, ktorou som nedisponoval a tak moja práca spočívala v plnení určitej časti úlohy a následne jej ladenie prebiehalo pri mojom vedúcom, ktorý mal túto autorizáciu a vedel mi poprípade poradiť.

Práca v novom prostredí vyžadovala opätovnú orientáciu v nových príkazoch. Vytvorenie tried, enumov, ktoré by reprezentovali vybrané vlastnosti strojov: meno organizácie, popis, meno stroja, dátové úložisko, pamäť, ktorú sieť použiť, aký template použiť, zmazanie a vytvorenie užívateľských účtov, nastavenie hesla, licencie a iné.. Po vytvorený a získaní jednotlivých údajov ich bolo treba efektívne skontrolovať a odstrániť prípadne chyby. Ak bolo všetko v poriadku mohol som začať vytvárať virtuálny stroj. Systém 800xA vyžadoval presne zloženie užívateľov a ich členstvo v skupinách.

Pripájanie do vCentra prebiehalo pomocou https protokolu do zvolenej siete. Vytvorený stroj sa ukladal do mnou nastaveného hostu v ktorom sa nachádzalo niekoľko dátových úložísk s veľkosťou rádovo niekoľko stoviek Gigabit. Stroj bol vytvorený pomocou templatu na dátovom úložisku. Ako som program testoval a spúšťal, narazil som na niekoľko problémov jedným z nich bolo vykonávanie sledu príkazov predtým ako bol ukončený sled príkazov im predchádzajúcich.

Riešenie problému som jednoducho zakomponoval do wait-tasku, kde som v cykle čakal až sa sled príkazov dokončil a až potom mohol prejsť na ďalšie (viz výpis kódu 7). Písaním prehľadného skriptu som chcel docieliť jeho ľahkú správu a orientáciu v ňom i pre ostatných a následné ďalšie nadstavby skriptu pretože každý proces sa dá stále viac zautomatizovať.

Do

{ Write-Verbose -Message ’*Waiting for OSCustomizationSpec ... 60 seconds .’ -Verbose

Start-Sleep -Seconds 60

$VMEvents = Get-VIEvent -Entity $VM

$SucceedEvent = $VMEvents | Where-Object -FilterScript { $_.GetType().

Name -match ’CustomizationSucceeded’ }

(24)

Výpis 7: Cyklus čakajúci na koniec customizácie stroja

Po celkovom odladení všetkých častí skriptu a jeho spustení sa mi podarilo vytvoriť virtuálny stroj behom pár chvíľ. Celkový čas som následne premietol aj do výstupu (viz obrázok 5). Kde si môžem porovnať tento čas s časom na začiatku mojej práce, keď som sa venoval vytvoreniu virtuálneho stroja. Úlohu, ktorú som dostal na začiatku práce mi trvala niekoľko hodín a aj vďaka tomuto a predchádzajúcim skriptom sa práca skrátila asi na 20 až 30 minút. Automatizácií bráni v tomto prípade aj fakt že bolo treba pomocou RDP sa dostať do stoja a nakopírovať moje skripty do tohto stroja aby mohli byť spustené. Vzhľadom na prvotný čas niekoľko hodín mi toto meškanie nepripadalo nijak dlhé. V rámci priečinku v ktorom boli vytvorené virtuálne stroje bola možnosť zdieľania informácií v rámci strojov.

Obr. 5: Výstup skriptu s informáciami po vytvorený stroja

24

(25)

4 Teoretické a praktické znalosti získané v priebehu štúdia uplat- nenie študentom v priebehu odbornej praxe

V priebehu vykonávania praxe som mal možnosť využiť niekoľko skúseností z prostredia školy.

Najviac mi asi pomohlo orientácia v OOP a to najmä predmety ako Algoritmy 1 a 2. Pri teore- tických znalostiach ohľadom správy Windowsu mi pomohol predmet Správa Windows systémov, ako aj napríklad Počítačové siete, pretože moje pôsobenie vo firme sa veľakrát dotýkalo týchto oblastí. A v neposlednej rade aj celkový prehľad v rámci IT technológií.

(26)

5 Znalosti či schopnosti chýbajúce študentovi v priebehu odbor- nej praxe

Keď som vo firme začínal dosť pojmov a teoretických znalostí som musel riešiť samoštúdiom, ako aj v celom priebehu mojej praxe, keďže vždy sa vyskytlo v požiadavkách niečo nové s čím bolo treba sa zoznámiť a osvojiť si danú problematiku. Hlavne PowerShell bol pre mňa veľkou neznámou a tak chvíľu trvalo kým som sa naučil používať tento skriptovací jazyk. Pojmy virtualizácia a automatizácia mi veľa nehovorili ale postupne som si ich osvojoval.

26

(27)

6 Záver

Z môjho uhľa pohľadu som s praxou celkovo spokojný moje dosiahnuté výsledky v priebehu nej sa myslím si stále zväčšovali. Postupne som získaval stále viac a viac skúseností v obore. Chápanie dôvodu písania prehľadného a ďalej rozšíriteľného kódu mi boli počas praxe ozrejmované. Moje znalosti v oblasti sietí a správy Windows systému sa myslím obohatili a hlavne používania PowerShellu na pokročilejšej úrovni. To mi prinieslo zaujímavé skúsenosti. Hlavne o časovej náročnosti úkonov a ich nahradenia skriptom som dokázal diametrálnu časovú úsporu,o ktorej som na začiatku praxe ani nedúfal. Absolvovanie praxe hodnotím z mojej strany pozitívne.

Na zadaných úlohách som pracoval najlepšie ako som vedel v rámci možností a snažil som sa byť prínosom. Časť mojej práce sa niesla aj v znamení získavania teoretických znalostí pre dosiahnutie praktického nastavenia. Práca v tejto firme bola pre mňa skúsenosť, ktorú som vyhľadával. Pracovné prostredie a možnosť získania pracovných skúsenosti je na nezaplatenie.

(28)

Literatura

[1] 800xa v6 pro dalsi zvysovani produktivity provozu [online]. 2016 [cit2018- 04-20].Dostupné z WWWW: http://automa.cz/cz/casopis-clanky/

abb-system-800xa-v6-pro-dalsi-zvysovani-produktivity-provozu-2015_10_

54165_7851

[2] ABB základnéúdaje [online]. 2018 [cit2018-04-20]. Dostupné z WWWW: http://new.

abb.com/cz/o-nas/zakladni-udaje

[3] Virtualizácia [online]. 2011 [cit2018-04-20]. Dostupné z WWWW:http://www.v-portal.

sk/2011/01/co-je-to-virtualizacia/

[4] VMware vSphere Client [online]. 2018 [cit2018-04-20]. Dostupné z WWWW: https://

searchvmware.techtarget.com/definition/VMware-vSphere-Web-Client

[5] VMware PowerCLI [online]. 2016 [cit2018-04-20]. Dostupne z WWWW: https://www.

altaro.com/vmware/vmware-powercli-getting-started-part-1/

[6] Windows PowerShell [online]. 2012 [cit.2018-20-04]. Dostupne z WWWW: http://www.

pclife.cz/579-co-je-windows-powershell-a-co-nabizi/

[7] Základní info o ESXi free a dlouhodobé zkušenosti [online]. 2015 [cit.2018-20- 04]. Dostupne z WWWW: http://www.abclinuxu.cz/blog/Max_Devaine/2015/4/

zakladni-info-o-esxi-free-a-dlouhodobe-zkusenosti

28

Odkazy

Související dokumenty

4.4.2.2 Vstup pro výběr předdefinovaných dat s výběrem pouze jedné položky HTML elementy typu input nebo select, díky kterým si zákazník vybere nastavení z předdefi-

Byl to sice úkol jen na cca 3 hodiny a šlo čistě jen o připravení vzhledu, ale byl jsem rád, že jsem tento úkol dostal právě já, protože drobné úpravy na již

Student měl během práce na starosti vývoj automati- zovaných testů uživatelského rozhraní pro programy Sencha Architect, Sencha Themer a Liferay, dále se podílel na úpravě

Architekti TIXu v něm navíc z nějakého důvodu nechtějí implementovat stránkování a řazení záznamů na straně serveru, z toho důvodu to bylo nutné implementovat ve

Vývoj DivvyPay je poměrně dynamický, průběžně vznikají nové funkce a opravují se chyby, je proto nutné mít vždy k dispozici poslední sestavení aplikace.. 4.2.2

V rámci tohoto kroku jsem vytvářel třídy, které imple- mentovaly jednotlivé kroky definované v souborech s definicí testů v jazyce Gherkin. Tyto třídy jsem vytvářel tak, aby

Jelikož byly všechny reporty vytvářeny v jednom souboru, mohl být pro zrychlení práce využit sdílený dataset – takovýto dataset se dá použít pro více reportů zároveň,

V druhé části se budu věnovat vývoji webové aplikace, jenž by umožňovala sledování obrazu kamer, které jsou na systém Zoneminder připojeny a také sledování