RES Automation Manager: RunBook Parameter Linking

In een eerdere blog heb ik laten zien hoe je via RES Automation Manager een gebruiker aan kan maken, waarbij de user logonname automatisch via een counter wordt verhoogd in het geval dat er al een gebruiker bestaat met dezelfde logonnaam. In deze blog laat ik zien hoe je die aangemaakt logonname kunt gebruiken om de homedrive voor die gebruiker aan te maken. Uiteraard zou je dit nog verder door kunnen trekken, door ook de mailbox, etc. aan te maken. Het linken of transporteren van de waarde van een module naar een andere module, kan vanaf RES AM 2011 SR1. Datgene wat wij er in deze blog mee gaan doen, kan vanaf RES AM 2011 SR2 of RES AM 2012 IR1. Het is namelijk niet mogelijk om een waarde door te geven op het moment dat de module de status ‘finished with errors’ heeft in RES AM 2011 SR1.

Create Homedrive module

Als eerste maken we een module aan voor het creëren van de homedrive. Geef de module een logische naam, zoals ‘create a homedrive’. Ga vervolgens naar de tab ‘parameters’ en maak een nieuwe parameter aan. Geef deze de naam ‘UserLogonName’ (zonder de ‘ ‘) en stel de parameter zo in dat deze vraagt om een waarde op het moment dat hij gescheduled word. Check tevens de checkboxen en zorg ervoor dat alleen de box ‘Hide parameter if parameter is not used directly’ aangevinkt is.

Ga vervolgens naar het tabblad ‘Tasks’ en maak een nieuwe task aan. Kies voor ‘Configuration -> Files -> Perform operations. Maak hierin een nieuwe aktie type ‘Create Folder’ aan. Bij ‘Folder Path’ type je het path waar de folder aangemaakt moet worden. De driveletter is de letter van de drive van de server waar de map op aangemaakt word. Deze server moet uiteraard ook een RES AM Agent geïnstalleerd hebben. Plaats de cursor vervolgens achter de laatste ” in het path en selecteer de ‘UserLogonName’-parameter (dit kun je doen door een rechtermuisknop -> Insert Parameter -> $[UserLogonName] )

Klik OK en nogmaals OK om de ‘Perform file operation’-task af te sluiten.

Maak nu een nieuwe taak aan in de module. Kies hiervoor Security -> File Permissions -> Set. Gebruik dezelfde folder als in de ‘create folder’-task die je net hebt aangemaakt en vink het vinkje bij ‘Remove all existing permissions’ uit. Dit voorkomt dat standaard permissies die al bestaan op de folder (bv. Domain Users full control), worden verwijderd. Kies vervolgens voor ‘Add Entry’

In de ‘Add entry’ dialog venster kies je voor the ‘UserLogonName’-parameter (via rechtermuisknop) en vervolgens voor ‘Full control’ en ‘Add access allowed’

Klik vervolgens op OK, nog eens OK (om het venster van de taak Folder Permissies te sluiten) en nogmaals op OK (om de module te sluiten). De module voor het aanmaken van de homedrive is nu klaar. Je kunt deze testen door de module eenmaal uit te voeren, een testuseraccount op te geven en deze te module te starten op de machine waar de homedrives op aangemaakt worden. Controleer na het uitvoeren of de directory is aangemaakt en de juiste rechten er op zijn uitgedeeld.

Runbook parameter linking

Nu we beide modules hebben voor het aanmaken van een gebruiker en het aanmaken van een homedrive, gaan we deze samen plaatsen in een RunBook. Hierbij gebruiken we de aangemaakt UserLogonName uit de eerste module als input voor de ‘create homedrive’-module.

Maak een nieuwe RunBook aan en geef deze een goede naam, zoals ‘Create user and homedrive’. Ga vervolgens naar het tabblad ‘Jobs’ en maak hier een nieuwe job aan. In het ‘Add RunBook job’ venster kies je eerst voor ‘What’. Selecteer vervolgens de ‘Create domain user’ task. Vervolgens kies je in het ‘Who’ veld de juiste machine. In het geval van het aanmaken van een user account, zal dit waarschijnlijk de domain controller zijn. Op deze machine moet ook de juiste connector voor deze taak zijn geïnstalleerd. Onder het venster kies je voor ‘Continue Run Book on Error’ in het ‘Error control’ veld. Deze instelling is nodig om het RunBook door te laten gaan in het geval de module met het resultaat ‘Finished with errors’ terug komt (wat niet onwaarschijnlijk is dat dit gebeurd, omdat er regelmatig mensen zijn die dezelfde gebruikersnaam opleveren). Druk vervolgens op OK om de job aan te maken.

Maak vervolgens een tweede job aan. Selecteer hierbij de ‘create user homedrive’ en zorg ervoor dat deze op de fileserver komt te draaien. De fileserver kan van een normale agent worden voorzien. Laat ‘error control’ op de default waarde ‘stop run book on error’ staan.

Nu beide jobs in het RunBook staan, kies je voor het tabblad ‘Run Book parameters’ en klik je vervolgens op de knop ‘AutoCreate’ (onderin het venster). RES Automation Manager creeerd nu alle parameters die ook in de modules en/of projecten worden gebruikt. Verwijder na het aanmaken de ‘Counter’-parameter. Dubbelklik vervolgens op de UserLogonName om deze aan te passen. Maak het veld ‘Value’ leeg en ga vervolgens naar de ‘Links’ tab in dit dialoog venster. Klik hier met rechts op de ‘Create User Account’-job en kies vervolgens voor Action -> Get final value. Dit zorgt ervoor dat op het einde van de job, de waarde van UserLogonName wordt teruggegeven aan het RunBook.

Klik vervolgens met de rechtermuisknop op de ‘Create home drive’-job en kies voor ‘Set initial value’. Het resultaat zou vervolgens moeten zijn wat hieronder staat. De richting van de pijlen is hierbij het belangrijkste.

Klik op OK om terug te gaan naar de RunBook parameters tab. Klik hier op de ‘Links’ tab, deze zou er ongeveer zo uit moeten zien:

Op dit moment hebben we een RunBoom met twee verschillende jobs die mogelijk draaien op twee verschillende servers. De 2de job (het aanmaken van een homedrive) is afhankelijk van de gebruikersnaam die de eerste job (create user) heeft aangemaakt. Als de eerste job heeft gedraaid, wordt door het linken van de parameters, de laatste waarde van de UserLogonName-parameter van de job, getransporteerd naar de gelijkwaardige parameter in de RunBook. Het RunBook start vervolgens de 2de job en geeft deze (ook weer via de gelinkte parameters) de waarde mee die hij van de 1ste job heeft ontvangen. De 2de job maakt daardoor een homedrive aan met de user logonname die de 1ste job uiteindelijk heeft gecreeerd.

Nu hebben we alleen een problem als de ‘create user’-job faalt en het resultaat ‘failed’ krijgt. Doordat is aangegeven dat het RunBook door moet gaan als er problemen optreden, zal hij ook doorgaan als het resultaat ‘failed’ is. Om dit te voorkomen moeten we een conditie op de 2de job zetten. Ga daarvoor naar het tabblad ‘jobs’ van het RunBook, selecteer de 2de job (‘create home drive’) en klik onderaan het scherm op ‘condition’. Maak een nieuwe conditie aan met de volgende waarde ‘Status of previously executed job <> Failed’. Als de conditie WAAR (TRUE) is dan ‘Executed job’. De waarde bij FALSE komt op ‘Skip this and all other jobs’. Dit zorgt ervoor dat andere jobs (na het creeeren van de homedrive) in hetzelfde RunBook ook niet gedraaid worden (bijvoorbeeld het aanmaken van een mailbox).

Resultaat

Als we dit RunBook nu draaien en de voornaam, achternaam, etc. opgeven, maakt het RunBook eerst een gebruikersaccount aan. Daarnaa wordt de homedrive gecreëerd, tenzij de gebruikersnaam niet aangemaakt kon worden. Vraag je de uitslag van het RunBook op na draaien, dan zie je ongeveer hetgene hieronder:

  1. Het aanmaken van de user. De eerste 5x gingen niet goed. Na de 5de keer werd de gebruiker wel goed aangemaakt.
  2. Toont de settings die uiteindelijk via parameters gebruikt zijn in het process van het aanmaken van de gebruiker. De uiteindelijke gebruikersnaam is DuckK5 geworden.
  3. Let op de counter, deze toont het getal 5. Dit zijn de verhogingen van het getal achter de gebruikersnaam die ontstaan zijn doordat het aanmaken de eerste 4 keer niet goed ging, omdat die gebruikersnamen al bestonden.
  4. The job parameter die doorgegeven is aan de job ‘create home drive’. Deze bevat de user logonnaam die in de eerste stappen is gemaakt door de 1ste job.

Dit RunBook kun nu eenvoudig uitgebreid worden met bv. het aanmaken van een mailbox of het geven van rechten op andere systemen waar de gebruikersnaam van belang is. Via een CSV bestand kunnen snel meerdere gebruikers aangemaakt worden en ook is via Service Orchestration deze module te gebruiken om automatisch gebruikers aan te maken.