RES Automation Manager: Parsing Parameters in bestanden

In deze blog tonen we hoe je met RES Automation Manager parameters en Windows variabelen kunt opnemen binnen een bestand. Dit doen we aan de hand van het XenApp update script, die door Thomas Koetzing is gemaakt. Dit script bevat een aantal instellingen die je normaal handmatig moet aanpassen. Door hier parameters in op te nemen, maken we dit script eenvoudig op te nemen in verschillende omgevingen waarin Citrix XenApp 6.0 en XenApp 6.5 draaien.

In dit blog gaan we alleen op het downloaden van de hotfixes in. Het Buildingblock op het einde bevat het update-script in twee delen. Eentje voor het downloaden en eentje voor het updaten van servers. Dit voorkomt dat elke server opnieuw alle hotfixes gaat downloaden van de Citrix servers.

In het script staan alle in te vullen instellingen bovenin. Zie het screenshot hiernaast. We gaan deze instellingen direct vervangen door parameters, nog voordat we ze überhaupt hebben aangemaakt binnen RES AM. Om vervolgens deze parameters te vervangen door de ingevulde waarden, moet het script eerst worden opgenomen binnen de RES Automation Manager database.

 

 

Maak een nieuwe Resource aan en kies ‘Stored in database’. Browse naar het update script en selecteer deze. Nadat hij geïmporteerd is, klik je op het tabblad ‘Properties’ and vink de laatste twee checkboxes aan; ‘Parse variables, parameters and functions’ en ‘Skip parsing of environment variables’. Deze laatste optie zorgt ervoor dat RES Automation Manager geen Windows variabelen aanpast, welke ook later in het update-script staan. Uiteraard zouden we ook alle variabelen in het script kunnen aanpassen met parameters, maar dat kost ontzettend veel tijd en maakt het updaten in de toekomst veel moeilijker.

Nadat we deze opties hebben ingesteld, gaan we direct het bestand aanpassen en de parameters invoegen. Ga terug naar het eerste tabblad en klik op de knop ‘Edit’. Verander alle variabelen door parameters. RES Automation Manager gebruikt de volgende structuur voor een plek die veranderd moet worden door een parameter: $[parameter]. Hieronder staan alle parameters die je moet invoeren (klik op het plaatje om deze te vergroten).Let Op: Op dit moment zit er nog een bug in RES Automation Manager, waardoor %% wordt vervangen door een enkele %. Om te voorkomen dat hierdoor het script defect raakt, moeten we een kleine aanpassing maken. Doe een Zoek&Vervang binnen het script en verander alle %% door %%%. Na het parsen van het bestand, veranderd dit automatisch terug naar %%, waardoor het script blijft werken. Zie ook RES Portal artikel Q203306: Double percent signs are replaced by a single percent sign. Deze bug wordt opgelost in RES AM 2012 SR1. Onthoud dit, omdat je op dat moment de %%% weer moet vervangen door %%.

Zoek binnen het script ook naar het woord ‘Pause’ op het einde van het script. Deze staat er twee maal in. Haal deze regels weg, omdat ze het script anders continue laat doorlopen. Na al deze aanpassingen kun je Notepad afsluiten, de aanpassingen worden op dat moment automatisch opgeslagen.

Het script gebruikt wget.exe om de hotfixes en rollup packs te downloaden. Deze moet dus ook worden toegevoegd als resource. Omdat het een klein bestand is, die gedownload moet worden naar de server die de updates download, kun je hem het beste ook opslaan in de database (‘store in database’).

Nadat dit gedaan is, kun je de download module gaan maken. Creëer een nieuwe module en kies voor de taak ‘Download’. Als resource kies je wget.exe en het update-script die je net hebt toegevoegd als resource. In het ‘destination’-veld maak je een parameter aan. Klik daarvoor met de rechtermuisknop in het veld en kies voor ‘Insert Parameter’->’Add Parameter’. In het tabblad ‘Input’ kies je voor ‘parameter value is required (may not be empty)’. Nadat de parameter is aangemaakt is de taak klaar en kun je hem opslaan met de knop ‘OK’.

De download-taak is nu klaar, maar het script moet ook nog uitgevoerd worden. Voeg een nieuwe taak toe en kies nu voor ‘Command (Execute)’. Selecteer ‘Execute command using Windows command interpreter’ en ‘redirect standard output and standard error to logfiles’. Klik met de rechtermuisknop in de ‘command-line’-box en kies voor ‘Insert Script’. Ga vervolgens naar het tabblad ‘Script’. Klik hier weer met de rechtermuisknop in en selecteer ‘Insert Parameter’ en kies de parameter die je hebt aangemaakt in de ‘Download resource’-taak. Type achter de ingevulde tekst een ‘\’ en type daarna de naam van het update-script. Sluit het venster met de ‘OK’-button.

Nu moeten we allen nog de parameters toevoegen die we in het update-script gebruiken. Er zijn drie parameters die niet worden opgegeven door gebruikers, omdat de waarde hiervan vast staat. Dit zijn de XA-parameter (deze is altijd XA), de OS-parameter (deze is altijd W2K8R2) en de Download_only-parameter (aangezien we ons concentreren op het download gedeelte van het script, is deze altijd Yes). Om deze toe te voegen ga je naar het tabblad ‘Module Parameters’, daar kies je voor ‘Add new parameter’. Creëer de XA, OS en Download_only parameters en vul de default/vaste waarde in. Ga daarna naar het ‘Input’-tabblad. Uncheck ‘when importing buildingblock’ en ‘when scheduling job’, aangezien deze waarden niet door de gebruiker ingevoerd worden. Bij het aanmaken van de parameters, moet je er goed op letten de exact gelijke naam te gebruiken, als je eerder in het script hebt gebruikt tussen de [blokhaken]. Als je een typefout maakt of een andere naam gebruikt, wordt de waarde in het script niet aangepast.

Nadat je deze drie parameters hebt aangemaakt, kun je de rest aanmaken. Doe dit op dezelfde manier als bij de andere drie, maar met een paar kleine veranderingen op het ‘input’-tabblad. Zorg ervoor dat ‘When scheduling job’ aangevinkt blijft en haal het vinkje weg bij ‘Hide parameter if parameter is not used directly’. Deze laatste is nodig om er voor te zorgen dat RES Automation Manager de parameter ook vraagt aan de gebruiker in te vullen, als deze de job scheduled. Zou je hem niet aanvinken, dan wordt de parameter niet getoond, omdat deze niet direct wordt gebruikt in de module, maar indirect bij het parsen.

Nadat je alle parameters hebt aangemaakt, zou je ongeveer deze lijst moeten hebben:

De module kan nu gedraaid worden op de server die de hotfixes download. Hierbij gaan we er vanuit dat er al een download directory is en dat deze ook geshared wordt binnen het netwerk met ‘read rechten’ voor andere domain-members. Bij het schedulen van de module, vraagt RES AM de gebruiker om informatie, wat er ongeveer uit zou moeten zien zoals in de screenshot.

Nadat je het script hebt gedraaid, vind je in de download directory het script met de ingevulde parameters, wget.exe en de gedownloade hotfixes en rollup packs van de XenApp versie die je hebt opgegeven. Kijk je dieper op de uitgevoerde taak binnen RES Automation Manager, dan zie je zoiets als hiernaast staat afgebeeld. Hierin valt mogelijk de ‘error log’ op van het script. Dit is normaal. Hierin staan de verschillende kb-artikelen die het script download om de hotfixes uit te extracten.

Het building block dat aan dit artikel zit, kent een RunBook, 2 modules en het update-script in tweeën gesplitst. Het ene deel download de updates op de fileserver. Het 2de deel kopieert de hotfixes naar de lokale harddisk van de XenApp server, schakelt tijdelijk de UAC uit en update de XenApp server.

Zoals je kan zien is het parsen van paremeters erg krachtig. Daarnaast is RES Automation Manager in staat om ook Windows variabelen al in te vullen binnen het script. Denk hierbij aan bijvoorbeeld de computernaam. Elk text-bestand kan aangepast worden, dus naast .cmd kun je ook .vbs en txt bestanden aanpassen. Een ander voorbeeld is te vinden op ResGuru.com, in het Citrix buildingblock, waar de connectiestring (.dsn) wordt aangepast met behulp van gevraagde parameters.

Buildingblock: runbook_citrix install xenapp hotfixes

RES HyperDrive

RES Software presenteerde vandaag RES Hyperdrive aan een select gezelschap in You Meet in Utrecht.

RES Hyperdrive is vergelijkbaar met DropBox. Het grootste verschil: Het is de Enterprise DropBox. Het draait op de servers binnen je eigen IT infrastructuur. De data komt dus niet in een public cloud, zoals bij Citrix ShareFile, maar staat secure in je eigen datacentrum.

Er komen clients voor een grote range aan devices: Andriod, Windows Phone 7, iOS, OS X en Windows. Hierdoor heb je overal, waar je ook gaat, beschikking over je data op al je devices: Truly Follow-Me-Data. Zo zijn bestanden op je laptop beschikbaar, en als je in vergadering gaat op je iPad. Veranderingen worden gesynchroniseert zogauw er verbinding is met internet.

Naast storage per user, is het mogelijk om net als bij DropBox shared folders aan te maken en zo bestanden te delen onder meerdere personen. Dit is super handig voor bijvoorbeeld projecten, om alle projectleden van de laatste documenten te voorzien en tegelijk worden je gegevens op de laptops van de gebruikers veiliggesteld in je eigen datacentra en is deze beschikbaar tijdens meetings op ieders telefoon en tablet.

RES Hyperdrive behoeft geen installatie. Er komt een (linux) aplianance voor de grote hypervisors in deze wereld, dus de installatie is bijna Plug and Play (of eigenlijk Import en Play).

Security wordt geregeld vanuit je eigen infra. Management wordt geïntegreerd in de bestaande producten van RES, RES Automation Manager en RES Workspace Manager.

Licentie structuur is nog niet bekend, maar er komt uiteraard geen data-limiet op, RES Hyperdrive kan zo groot worden als je eigen storage in je infrastructuur aan kan.

Morgen komt [26-01-2012] Meer informatie is beschikbaar hier en hier en volgende week gaat de PR machine van RES helemaal los.

Mijn persoonlijke mening over RES Hyperdrive (zover ik er nu informatie over heb): RES Hyperdrive = Citrix ShareFile as it should be. Secure from within your own IT infra on all your consumer devices

 

Citrix Web Interface – 403 error

Citrix CloudGateway (Express) en Citrix Web Interface kunnen niet naast elkaar op dezelfde server draaien. De CloudGateway veranderd instellingen op IIS waardoor de Web Interface niet meer werkt.

Citrix Web Interface 403 error

Ook andere applicaties die gebruik maken van IIS kunnen de Web Interface instellingen veranderen, waardoor deze niet meer werkt. De Citrix Web Interface zal op dat moment hoogst waarschijnlijk een 403 error geven. Her installeren van de Web Interface heeft geen nut. De installatie past namelijk de instellingen van IIS niet aan en gaat er van uit dat deze default (en goed) zijn ingesteld.

 

In deze post doorlopen we een drietal instellingen die veranderd kunnen zijn, waardoor de Web Interface een 403 error geeft. Het terugzetten van deze instellingen in hun default waarde kan er voor zorgen dat de Web Interface weer gaat werken. We gaan hierbij uit van IIS 7 of 7.5 (Windows 2008 / 2008R2). Open hiervoor de IIS Management Console (de nieuwe versie, niet de legacy versie). Check onderstaande instellingen op zowel de root van de IIS site, als in de IIS subdir /Citrix/XenApp. De root zal waarschijnlijk de Default Website zijn.

Authentication

Ga als eerste naar Authentication. Controleer hier of anonieme toegang nog is geactiveerd (Anonymous Authentication – Status Enabled).  Is dit niet het geval, dubbelklik dan op de tekst ‘Anonymous Authentication’ en schakel deze in.

Default Document

Controleer of de Default Document Feature is ingeschakeld. Klik hiervoor in de management interface op Default Document. Als rechtsboven in staat dat de feature is uitgeschakeld (1), kun je deze inschakelen door op ‘Enable’ te klikken in het aktiemenu in het rechterscherm (2). Het kan tevens zijn dat de volgorde van de default document is aangepast. Controleer daarom de volgorde (3). Is deze niet correct, pas deze dan aan door ergens in het vak bij (3) te dubbelklikken, en de volgorde te veranderen.

Handler Mappings

De Citrix Web Interface vereist dat Handler Mappings op read/write mode staan. Ga hiervoor eerst naar Handler Mappings en selecteer vervolgens aan de rechterkant de optie ‘Edit Feature Permissions’. Selecteer in het venster wat zich toont, de permissies ‘read’ en ‘write’ door de checkbox aan te klikken.

 

Dit zijn de meest voorkomende instellingen die de oorzaak kunnen zijn van de 403 error in de web interface. Mocht dit ook niet werken, dan is een mogelijk oplossing om de web interface te verwijderen en daarna IIS te de-installeren om vervolgens alles weer te installeren. Denk er daarbij aan, om een repair uit te voeren van de .Net feature te herstellen.

Met deze optie kun je de Citrix CloudGateway en Citrix Web Interface naast elkaar op dezelfde server laten draaien. Dit wordt echter niet gesupport door Citrix. Tevens kan ik niet met zekerheid zeggen of alle functies van de CloudGateway blijven draaien. Ik vermoed dat bijvoorbeeld de legacy mode van de CloudGateway, waarmee oude clients met een PN Agent naar de CloudGateway service kunnen connecten, niet meer werkt.