Stageverslag Bachelor toegepaste informatica
Automatisatische installatie van RD&T 9.0
Stagebegeleider: Angeline Van Achter
Student: Ben Vandendriessche
Stagebedrijf: ASIST BVBA, Leuven Stagementor: Gery Put
Academiejaar: 2014-2015
Inhoudsopgave 1.
Voorwoord ...................................................................................................................... 2
2.
Voorstelling van de stage instelling................................................................................. 3
3.
Beschrijving van de opdracht.......................................................................................... 5
4.
3.1.
Wat is RD&T? ......................................................................................................... 5
3.2.
Onze opdracht......................................................................................................... 5
Uitgewerkte opdracht ..................................................................................................... 6 4.1.
Hoofdopdracht......................................................................................................... 6
4.1.1.
Manuele installatie ........................................................................................... 6
4.1.2.
Automatische installatie.................................................................................... 7
4.1.3.
Afwerken van de hoofdopdracht ....................................................................... 8
4.2.
Uitbreiding van de opdracht..................................................................................... 8
4.2.1.
Werking van het migratiescript ......................................................................... 9
4.2.2.
Problemen tijdens de uitwerking ....................................................................... 9
4.2.3.
Vergelijking met de huidige werkwijze .............................................................10
5.
Algemeen besluit ...........................................................................................................12
6.
Slotwoord ......................................................................................................................13
Bijlage 1: Stagedagboek .......................................................................................................14 Bijlage 2: Installatiehandleiding ............................................................................................22
1
1. Voorwoord Als student toegepaste informatica aan HoGent is het de gewoonte om de opleiding af te ronden met een stage van een volledig semester. Het is de ideale gelegenheid om alle kennis die we als student opgedaan hebben, om te zetten in de praktijk. Aangezien ik koos voor de afstudeerrichting Mainframe, was het niet meer dan logisch dat ik een stage zou zoeken in de sector van mainframes. Bij ASIST klopte het plaatje voor mij volledig. Geen groot bedrijf, waar je als een ‘nummer’ behandeld wordt, maar een kleiner bedrijf, met een enorm goede sfeer. Gedurende een periode van 14 weken, hebben Barteld (mijn stagepartner) en ik een automatische manier op poten gezet om de installatie van RD&T, een testomgeving voor mainframe, te vergemakkelijken. Bijhorend hebben we ook nog een Engelstalige handleiding geschreven. In dit stageverslag vind je de samenvatting van deze 14 weken hard werken. Samen met Barteld, wens ik je veel leesplezier. Ben Vandendriessche
2
2. Voorstelling van de stage instelling In 1995 richtten Maurice Brouwers en Paul Pilotto ASIST op. ASIST was toen gespecialiseerd in Application Development. In de 20 jaar dat ASIST bestaat, heeft het bedrijf grote vooruitgang geboekt. Als IBM Premier Business Partner en Microsoft Gold Partner, adviseert ASIST haar klanten met grondige technische kennis op verschillende technische gebieden. ASIST heeft hiervoor 25 werknemers op de loonlijst staan. Sinds 2015 is Guido Verswijvel medeaandeelhouder van ASIST. ASIST is een speler op zowel nationale als internationale markt. De klanten lopen uiteen van particuliere bedrijven tot financiële spelers en zelfs overheden. ASIST biedt haar diensten ook aan bij alle bedrijven die zelf administratieve applicaties ontwikkelen op basis van IBM producten. De belangrijkste of bekendste klanten van ASIST zijn: KBC Cortal Consors (BNP Paribas) Acerta Belfius insurance Kamer van volksvertegenwoordigers AG Insurance Public Institution for Social Security Kuwait International and Commercial Bank of China ASIST staat voor ‘Advice in Software, It Systems and Technologies’. Deze afkorting omvat welke diensten ASIST levert. Deze technische kennis zit gebundeld in drie business units: SAM, integration solutions & insourcing services.
Software Asset Management (SAM): In opdracht van Microsoft, VMWare, Oracle,… audits uitvoeren bij bedrijven om te kijken of deze wel in regel zijn met hun betaalde/gebruikte licenties. Integration Solutions: o Application Lifecycle Management (ALM): Versiebeheer, software distributie & geautomatiseerd testen (d.m.v. IBM-tools, git,...). o Enterprise Modernization (EM): Refactoring van applicaties om te voldoen aan de meest recente technologieën. o IBM Systems and Mobile (SYSTEMS): Combinatie van SAM, ALM en EM op IBM systemen. Insourcing services: Verhuur van personeel aan klanten ter ondersteuning van andere business units.
3
ASIST biedt haar services aan in vier categorieën, ofwel ‘Shopwindows’:
Step into: ASIST organiseert workshops om klanten de nieuwe tools aan te leren (bv. initiatie RDz) Baseline: ASIST installeert en configureert een volledige developmentomgeving on site bij de klant, gebruik makende van de aanwezige infrastructuur (EM, ALM), of maakt een overzicht van wat de klant reeds geïnstalleerd heeft en nog moet installeren of aankopen (SAM). Refresh: ASIST is ervan overtuigd dat een grondige opvolging en ondersteuning nodig is om de continuïteit te garanderen (EM, ALM). Een volledige doorlichting van alle licenties en software hoort ook bij deze categorie (SAM). Project: ASIST biedt ook totaalprojecten aan: zowel de opleiding, installatie on site en opvolging in één pakket.
4
3. Beschrijving van de opdracht Bij ASIST heeft men 2 mainframes: 2 RD&T machines. Dit zijn SUSE Linux Enterprise laptops waarop een mainframe draait. ASIST maakt gebruik van deze machines om mainframes te virtualiseren en de impact van bepaalde veranderingen na te gaan, alvorens de uitgewerkte projecten op een volwaardige mainframe los te laten.
3.1. Wat is RD&T? Rational Development and Test Environment for System Z (RD&T) is een mainframe op kleine schaal. De omgeving wordt geïnstalleerd en gebruikt op een 64-bits Linux-distributie, in ons geval SUSE Linux Enterprise Server. RD&T biedt in de eerste plaats een ontwikkel- en testomgeving voor development op system z. Verder wordt het ook ingezet voor scholing van personeel en ontwikkelaars of voor de demonstratie van applicaties, die ontwikkeld zijn voor mainframe, zonder te moeten inboeten aan veiligheid op de volwaardige machines. Hoewel RD&T de meeste functies van een mainframe bevat, kan en mag deze niet als volwaardige mainframe gebruikt worden. RD&T wordt enkel gebruikt om na te gaan wat het effect is van bepaalde tools, aanpassingen,… op mainframe. De omgeving is ideaal om de kosten van ontwikkeling te drukken. Aangezien de ontwikkelaars volledige toegang hebben tot het systeem en er geen rekening moet gehouden worden met prioriteiten van jobs, applicaties,… (wat op een volwaardige mainframe wel het geval is), is het veel goedkoper om deze machines te gebruiken voor ontwikkeldoeleinden. Tests en ontwikkeltaken kunnen uitgevoerd worden zonder verbruik van MIPS op de reguliere machines en ook de veiligheid blijft gegarandeerd door gebruik van RD&T. Kort samengevat is een RD&T-machine dus een soort van sandbox-omgeving, waar de ontwikkelaar volledige vrijheid heeft om te doen wat hij wil. De ontwikkelaar kan de omgeving die hij gewend is vanop de mainframe nabootsen op de RD&T-machine en op die manier ontwikkelen in een gelijkaardige omgeving als waar de applicaties uiteindelijk in gaan draaien. Aangezien RD&T een standalone systeem is, is het ook mogelijk om gemakkelijk een nieuw systeem op te stellen en van vooraf aan te (her-)beginnen.
3.2. Onze opdracht Onze opdracht bestaat er in om een soort van image te maken die gebruikt zal worden om deze RD&T-machines deels automatisch op te stellen bij klanten. De gebruikte hardware is volledig klantafhankelijk en de installatie gebeurt momenteel volledig manueel. Ook de documentatie van deze installaties laat momenteel te wensen over. Door ons stageproject zou deze installatie veel sneller en vooral gemakkelijker afgehandeld moeten kunnen worden. Het eerste deel van de opdracht bestaat er in om de installatie van RD&T 9.0 manueel uit te voeren en te documenteren. Vervolgens gaan we alles wat we kunnen automatiseren in scripts gieten om gemakkelijk te kunnen uitvoeren en gaan we uitkijken naar een manier om de images gemakkelijk te transporteren en te kopiëren. Als we deze opdracht afgewerkt hebben, hebben we een mainframe opgezet, hebben we met infrastructuur te maken gekregen, code geschreven, … Hopelijk hebben we na deze stage ook een pak extra systeemkennis en ervaring op het mainframe vlak opgedaan. 5
4. Uitgewerkte opdracht Om te beginnen kregen we een grondige briefing waarin zowel de opdracht werd uitgelegd als de structuur van ASIST BVBA. Onze stagementor, Gery Put, legde ons uit wat de bedoeling was van onze opdracht en wist ons ook te zeggen dat er al enkele pogingen ondernomen waren om de installatie van RD&T 9.0 te automatiseren. Aan ons om de installatie en automatisatie ervan volledig uit te werken en te documenteren.
4.1. Hoofdopdracht Voor deze opdracht kregen we een laptop en ISO-files ter beschikking. Op de laptop was reeds een RD&T omgeving geïnstalleerd, maar die werd niet meer gebruikt en dus konden we deze verwijderen om de installatie zelf onder te knie te krijgen. Naast de nodige ISO-files, met volumes voor de RD&T 9.0 en alle nodige software, kregen we ook een Red Book van IBM ter beschikking: ‘IBM Rational Development and Test Environment for System z Version 9.0 Installation and Sample Configuration Guide’. Het eerste wat we deden, was een back-up nemen van bepaalde volumes die geïnstalleerd waren onder de originele RD&T 9.0. Indien we deze later nog zouden nodig hebben, zouden we deze met onze automatisatie gemakkelijk weer moeten kunnen toevoegen. Vervolgens hebben we de laptop geformatteerd en SUSE Linux Enterprise opnieuw geïnstalleerd.
4.1.1. Manuele installatie Het eerste deel van de stageopdracht was om de manuele installatie van RD&T 9.0 onder de knie te krijgen. We bestudeerden de Redbook en hoopten zo gemakkelijk het systeem te kunnen opzetten. Niets was echter minder waar. Al snel bleek dat de Redbook niet alles vermeldde, of niet alles even goed gedocumenteerd was. Vaak zijn we op fouten gebotst die we met elders gevonden informatie pas konden oplossen. Een voorbeeld hiervan is bepalen welke volumes we op zijn minst moesten gebruiken om een IPL van het systeem mogelijk te maken, in de Redbook werd hier niet echt duidelijk over geschreven. Aangezien we beiden geen echte ervaring hadden met mainframe-installaties en/of Linux, gingen we er natuurlijk ook niet van uit dat de installatie onmiddellijk zou lukken. In grote lijnen bestaat de installatie er uit om:
Linux te configureren (i.e. bepaalde systeembestanden aanpassen) bestaande volumes benodigd voor RD&T 9.0 uit te pakken enkele nieuwe volumes aan te maken de USB-licentiesleutel te linken aan het systeem RD&T 9.0 op te starten en z/OS te configureren en tot slot alles met betrekking tot TCP/IP in te stellen op zowel Linux als z/OS
De meeste problemen waar we op botsten bij de manuele installatie van RD&T 9.0 hadden vooral te maken met permissies op Linux. Bepaalde zaken moeten als Root-gebruiker uitgevoerd worden en andere als gebruiker ‘ibmsys1’, welke beperkte rechten heeft. Bij het kopiëren van bepaalde bestanden vergaten we al eens om de permissies aan te passen, waardoor de rest van de installatie niet meer lukte. Het grootste probleem was de configuratie van TCP/IP. Gery had ons gewaarschuwd dat we daar zeker fouten zouden maken en dat we daar lang aan bezig zouden zijn. Uiteindelijk zijn
6
we aan TCP/IP iets meer als een volle stageweek bezig geweest, 1/3 van de volledige tijd die we in de manuele installatie gestoken hebben. Een ander probleem waar we redelijk lang op gezocht hebben, was het linken van de USB-licentiesleutel. Door een script van IBM wordt de sleutel gelinkt aan de RD&T 9.0 installatie. Daarvoor heb je echter een bestand nodig dat jaarlijks vernieuwd dient te worden. Wij hadden een verlopen versie van dat bestand, dus de link tussen de USB-stick en de machine werkte aanvankelijk niet. Uiteindelijk zijn we een goede drie weken bezig geweest met de manuele installatie van RD&T 9.0 en opstellen van (betere, Engelstalige) documentatie. Door gebruik te maken van onze eigen handleiding, hebben we een volledig nieuwe installatie kunnen uitvoeren op een halve dag. Deze installatie omvatte zowel de installatie van SUSE Linux Enterprise Server, als de installatie en configuratie van RD&T 9.0.
4.1.2. Automatische installatie Het tweede deel van de stageopdracht was dan, uiteraard, de installatie zo veel mogelijk automatiseren. Voor de configuratie van Linux hadden we slechts als optie om bash scripts te schrijven om alle aanpassingen vanzelf te laten doorvoeren. Voor de configuratie van z/OS op onze RD&T 9.0 hadden we de keuze uit FTP of uit PDSUtil. Het FTP commando is in staat om datasets te ‘downloaden’ van z/OS, welke we dan kunnen bewerken op Linux en vervolgens terug zouden plaatsen via hetzelfde commando. PDSUtil is simpeler in theorie, maar in praktijk eigenlijk niet zo interessant. Met dit commando heb je de mogelijkheid om de data op z/OS volumes (welke, in het geval van RD&T, op Linux opgeslagen zijn) offline te bewerken. In plaats van de RD&T te moeten IPL’en en FTP te gebruiken, kan je dus alle veranderingen offline doen en dan pas een IPL uitvoeren. In theorie ideaal, in de praktijk niet zo. Het grootste struikelblok van dit commando is dat het niet mogelijk is om extra regels toe te voegen in de datasets, aangezien bestaande recordlengte niet aangepast mag worden. Voor ons project is dit commando dus eigenlijk nutteloos, aangezien er redelijk wat moet toegevoegd worden om z/OS volledig naar onze wensen te configureren. Onze automatische installatie hebben we opgesplitst in twee grote delen: een deel Linux en een deel z/OS. Eerst hadden we de scripts zo gemaakt dat ze per variabele aan de gebruiker input vroegen. Achteraf gezien, was dit niet echt gebruiksvriendelijk (omwille van foutcontrole en ook de beperkte mogelijkheden om parameters aan te passen), dus hebben we de scripts zodanig aangepast dat ze gebruik maken van een parameter file. Op die manier hoeft de gebruiker maar één keer alle parameters in te vullen en kan vervolgens duidelijk alle waarden nakijken en/of aanpassen alvorens de scripts te laten lopen. Configuratie van Linux Het script voor de configuratie van Linux vraagt weinig tot geen interactie. Als SUSE Linux Enterprise Server geïnstalleerd is, dient de gebruiker enkel de .tar-file met de scripts te unzippen op de desktop van de Root-user en het eerste script aan te roepen. Het script gaat eerst na of er fouten in de parameter-file staan, en zal deze rapporteren aan de gebruiker. De gebruiker kan dan, indien nodig, de fouten verbeteren en verder gaan met de verbeterde file. Vervolgens worden de benodigde libraries en de x3270-emulator geïnstalleerd op het systeem. D.m.v. een silent-install met bijhorende XML-file, wordt de IBM-software (o.a. 7
RD&T 9.0) geïnstalleerd op de gewenste plaats. De benodigde systeembestanden worden aangepast (TCP/IP,…), de USB-licentiesleutel wordt gelinkt, alle benodigde volumes worden op de juiste plaats gezet en gebruiker ‘ibmsys1’ wordt klaar gemaakt om RD&T 9.0 te runnen. De enige interactie dat van de gebruiker wordt verwacht, is het aanpassen van de parameter-file, en alle gewenste volumes, samen met de UPW-file voor de USBlicentiesleutel, in een inputmap plaatsen. Deze map wordt tijdens het uitvoeren van het script gegenereerd op de desktop van de Root-gebruiker en wordt na afloop weer verwijderd. Hier en daar moet de gebruiker ook op Enter duwen (bv. na invoeren van een andere CD). Configuratie van z/OS Het script voor de configuratie van z/OS wordt op de desktop van gebruiker ‘ibmsys1’ gegenereerd nadat de configuratie van Linux voltooid is. Bij dit onderdeel is wel wat interactie van de gebruiker nodig: commando’s op de console van z/OS kunnen immers niet geautomatiseerd worden. Aangezien de meeste instellingen op z/OS gebeuren door gebruik te maken van JCL, was het niet zo moeilijk om de configuratie van z/OS te automatiseren. Door middel van FTP is het namelijk mogelijk om de nodige JCL te pushen naar z/OS en op de JES-spool te plaatsen. De datasets waar wijzigingen in moeten gebeuren, worden d.m.v. FTP gedownload naar de Linux-machine. Door gebruik te maken van Linux-commando’s voert het script de nodige aanpassingen door en tot slot worden alle aangepaste datasets terug naar z/OS gepushed, onder de juiste HQL (High Level Qualifier) en op de juiste locatie.
4.1.3. Afwerken van de hoofdopdracht In week 9 was onze stageopdracht klaar. We hebben nog wat laatste tests uitgevoerd en aanpassingen aan onze code gedaan, om de leesbaarheid en/of de gebruiksvriendelijkheid te verbeteren. Om de hoofdopdracht van onze stage volledig af te sluiten, hebben we een clean install van SUSE Linux Enterprise Server gedaan en al onze scripts het werk laten doen. Tijdens het uitvoeren van onze scripts, hielden we nauwlettend de tijd in het oog. De volledige installatie en configuratie (installatie Linux, configuratie Linux en configuratie z/OS) duurt, gebruik makend van onze scripts, nu ongeveer 1 uur en 50 minuten. Veel van deze tijd hangt af van het aantal volumes die aangemaakt/uitgepakt moeten worden: hoe meer volumes, hoe langer de installatie duurt. Ter aanvulling hebben we ook bij dit deel een Engelstalige handleiding geschreven (zie bijlage 2), om het gebruik van onze scripts duidelijk te maken aan de personen die er in de toekomst mee gaan werken.
4.2. Uitbreiding van de opdracht Na het afwerken van onze hoofdopdracht en documentatie, kreeg ASIST bezoek van IBM. Uit de gesprekken die Paul Pilotto met IBM had, kregen we te horen dat er vanuit IBM veel interesse was in ons project. Enige uitbreiding die we nog zouden kunnen maken, om het systeem volledig bruikbaar te maken, was het migreren van data die opgeslagen is op de mainframe naar onze RD&T. Op die manier zou een bedrijf die gebruik maakt van RD&T op
8
een snelle en gemakkelijke manier zijn bestaande omgeving kunnen nabootsen op een RD&T. We kregen ook de vraag om dit extraatje te voorzien tegen de volgende keer dat de persoon van IBM zou langskomen, op die manier konden we een kleine voorstelling geven van ons project en reeds een voorbeeld geven van onze scripts. Tijdens de uitwerking van deze extra opdracht, werd al snel duidelijk dat we ook hier gebruik zouden gaan maken van het FTP-commando en een parameter file om alle parameters mee te geven. In de parameter file kan de gebruiker gemakkelijk het bron- en doel IP-adres ingeven en de gebruikersnaam en wachtwoorden van beide machines.
4.2.1. Werking van het migratiescript We hebben ons script zo opgebouwd dat de gebruiker in de parameter file een lijst van over te zetten data (zowel HLQ als namen van PDS’en, flat files, …) kan ingeven. Die lijst wordt vervolgens verwerkt door het script en de data wordt overgezet van de mainframe naar de gewenste RD&T-machine. Per regel in de lijst van over te zetten data wordt ons script 1 keer aangeroepen. Via het FTP-commando genereren we een lijst van alle aanwezige data onder de opgegeven HLQ of DSN. Via die lijst, maken we een verdere opsplitsing om de data te verwerken. Er dient namelijk een andere werkwijze gevolgd te worden als de gebruiker alle data onder een HLQ wil overzetten, of slechts 1 specifieke dataset. De data die de gebruiker wenst te migreren, wordt d.m.v. FTP afgehaald van de mainframe en op de Linux-machine reeds in de juiste mappenstructuur onder gebracht. Op die manier is het gemakkelijker om de data in een latere stap te pushen naar de RD&T, ofwel, indien gewenst, de data op de Linux-machine op een overzichtelijke manier te bewaren. Als alle data werd afgehaald, gaat het script een JCL-bestand aanmaken om alle benodigde datasets aan te maken op de RD&T-machine. Deze JCL wordt vervolgens naar de JESspool gepushed en uitgevoerd. Als de uitvoering correct verliep, wordt alle data gepushed naar RD&T en worden de aangemaakte datasets of PDS’en (die aangemaakt werden met de JCL) als het ware ‘overschreven’ met de juiste data. In een laatste stap krijgt de gebruiker de optie om de afgehaalde data te bewaren op de Linux-machine. Indien er een backup gewenst is, wordt de data opgeslagen in een nieuwe map met als naam “BRONADRES_BACKUP_DATUM_TIJD”. Nadien wordt alle originele data vanop de Linux-machine verwijderd, alsook alle tijdelijke bestanden die aangemaakt werden tijdens het uitvoeren van het script.
4.2.2. Problemen tijdens de uitwerking Tijdens de uitwerking van deze extra opdracht zijn we op redelijk wat problemen gebotst, het een al gemakkelijker op te lossen dan het ander:
Door het aanmaken van een lijst van aanwezige datasets in een over te zetten PDS, hadden we de mogelijkheid om alle nodige parameters (qua record length e.d.) op te vragen, om zo de JCL op te stellen. Het data set name type (PDS of library) is echter nergens terug te vinden, maar uit onze tests bleek dat dit niet noodzakelijk is om een werkende JCL (een JCL om datasets aan te maken) te verkrijgen. 9
Aanvankelijk dachten we dat flat files gewoon op RD&T te plaatsen zijn. We hadden er niet aan gedacht dat FTP deze soms op een ander dan gewenst volume zet. Ook voor deze files hebben we dus JCL moeten schrijven. Door de naamstructuur op z/OS, bv. IBMUSER.Z113H.IPLPARMS, was het moeilijk om de structuur te bewaren na de migratie. We hebben de mogelijkheid ingebouwd om bovenstaand voorbeeld te migreren naar bv. ASIST.IPLPARMS. Deze naamsverandering zal echter niet vaak voorkomen, aangezien de gebruiker hoogstwaarschijnlijk dezelfde namen zal aanhouden bij de migratie, om zo een ‘kopie’ van de mainframe te gaan gebruiken, maar indien de gebruiker de naam wel wenst te veranderen, is dit dus ook perfect mogelijk. Een andere, grotere fout, hebben we pas gemerkt bij het testen met veel grotere testdata dan aanvankelijk het geval was. We hebben vanop een andere RD&Tmachine alle data onder een bepaalde HLQ proberen migreren, maar als de JCL gepushed werd, werd deze maar voor de helft uitgevoerd, wat natuurlijk voor de nodige frustratie en ongeloof zorgde. Opzoekingswerk leerde ons dat JCL ‘slechts’ 255 EXEC-statements mag bevatten; een beperking van z/OS. Uiteindelijk heeft een simpele lus, met een teller die de JCL pushet als 250 EXEC-statements bereikt zijn, dit probleem verholpen. Ons script pushet en submit dus JCL’s met maximum 250 EXEC-statements, om zeker de 255 niet te overschrijden. Bij deze vermelden we ook duidelijk dat ons script geen beperking kent op het aantal JCL’s dat gepushed en gesubmit wordt.
Op 7 mei mochten we ons project voorstellen aan Henk van der Wijk van IBM. Hieruit kregen we twee opmerkingen, die doorheen de voorstelling naarstig besproken werden door zowel ons, als Henk, Gery en Paul:
Een vraag was of we in onze lijst met over te zetten data ook wildcards kunnen gebruiken. We moesten aanvankelijk het antwoord schuldig blijven, maar na een kleine test en wat opzoekingswerk, konden we besluiten dat het FTP-commando dit niet toelaat en dat dit dus ook niet mogelijk is. De tweede vraag was welke manier van werken sneller is: volledige volumes, met inhoud, kopiëren (wat nu wordt gedaan bij een migratie), of onze werkwijze (nieuw volume op RD&T aanmaken en de migratie via onze scripts uitvoeren). Op deze bedenking konden we ook geen antwoord geven, aangezien we enkel gewerkt hadden aan onze werkwijze, en van de normale gang van zaken eigenlijk geen kennis hadden genomen.
4.2.3. Vergelijking met de huidige werkwijze Om verder te gaan op de laatste bedenking dat Henk van der Wijk maakte, hebben we het hckd2ckd-commando verder bestudeerd, om een vergelijking te kunnen maken tussen beide werkwijzen. De redenering die Henk maakte, was dat de klanten meer geneigd gaan zijn om volledige volumes, i.p.v. enkele PDS’en of datasets, te kopiëren naar RD&T. In dat geval zou, bij onze werkwijze, de administrator een nieuw volume moeten aanmaken met dezelfde eigenschappen als het te kopiëren volume. Vervolgens moet hij kijken welke data er staat op het te kopiëren volume en dit één voor één ingeven in onze parameter-file, om vervolgens het script te laten lopen. Niet echt ideaal, als we spreken over (soms wel) honderden datasets. 10
Een betere oplossing zou dan zijn om het commando van IBM te gebruiken, welke een volledig volume naar Linux kopieert op een manier dat het onmiddellijk in RD&T te gebruiken is. We hebben zelf ondervonden dat de uitwerking hier echter ook niet echt zo gemakkelijk is als dat het in de documentatie van IBM omgeschreven wordt. Eerst en vooral moet er een server-module op z/OS geïnstalleerd worden. Deze module wordt door IBM voorzien bij de installatie van RD&T; men moet deze enkel pushen naar z/OS, uitpakken en activeren. Het klinkt simpeler dan dat het eigenlijk is. Bij het pushen naar z/OS moet een binaire FTP gebruikt worden, wat niet standaard is, en waardoor wij dus al redelijk veel problemen hadden. Toen dit verholpen was, was het wel gemakkelijk om de module uit te pakken en te activeren door de bijhorende JCL uit te voeren. Wat ook niet duidelijk vermeld staat in de documentatie van IBM, is hoe men kan afleiden welke poort gebruikt wordt door het hckd2ckd-commando. De eerste pogingen die we deden, liepen mis door de standaard poort te gebruiken. Eens we de poort veranderd hadden, konden we het commando uitvoeren. Wij hebben de test gedaan met volume ‘USER00’, welke tijdens de installatie van RD&T aangemaakt wordt. Dit is een groot volume, maar bevat zeer weinig data. Ideaal dus om beide werkwijzen op uit te testen:
Bij onze eigen werkwijze moeten we eerst en vooral een nieuw volume aanmaken om de data naar te migreren. Vervolgens moeten we de devmap aanpassen, een IPL uitvoeren en dit nieuwe volume alloceren. Vervolgens moeten we ons script uitvoeren om de data te migreren vanop de originele locatie naar de nieuwe locatie. Deze werkwijze duurt ongeveer een kwartier. Bij de werkwijze van IBM, moet eerst de server-module opgestart worden op z/OS (we gaan ervan uit dat deze zich al op de RD&T bevindt en dat deze bruikbaar is) en daarna moet het hckd2ckd-commando op Linux uitgevoerd worden. Als het volume is afgehaald, moet ook hier de devmap aangepast worden, maar het volume moet niet meer gealloceerd worden. Een IPL is wel noodzakelijk om de nieuwe devmap te gebruiken. Deze werkwijze duurt, met ons testvolume 30, minuten.
Een conclusie is hier moeilijk te maken. Veel zal afhangen van de wensen van de klant en/of de te kopiëren volumes. Staat er veel data op de volumes, of wil de klant een volledig volume in één keer kopiëren, dan zal de werkwijze van IBM gemakkelijker zijn. Wil de klant slechts enkele datasets kopiëren, of bevat het volume niet veel data (en is dit dus bijgevolg gemakkelijk in te geven in onze parameter-file), dan zal de werkwijze die wij ontwikkeld hebben gemakkelijker zijn. Bij onze werkwijze moet er ook rekening mee gehouden worden dat de klant moet weten wat er zich precies op het volume bevindt; zonder deze kennis kan ons script niet gebruikt worden.
11
5. Algemeen besluit Onze stage draaide helemaal rond het opzetten van een mainframe testomgeving. Deze RD&T-machines worden gebruikt door ontwikkelaars om op een snelle en gemakkelijke manier te kunnen ontwikkelen zonder te moeten inboeten aan veiligheid op de reguliere mainframes. Aangezien er geen rekening moet gehouden worden met prioriteiten van jobs, hebben de ontwikkelaars veel meer vrijheid in het ontwikkelproces (snellere respons,…). Ook voor scholingen of het geven van demo’s zijn deze machines ideaal. We hebben aan den lijve mogen ondervinden dat er echt wel nood is aan een snellere en vooral gebruiksvriendelijkere manier om deze testomgeving op te zetten. Bijhorend is er ook nood aan duidelijke en concrete documentatie, die dit proces nog net dat ietsje makkelijker maakt. RD&T draait, in ons geval, op een laptop waarop SUSE Linux Enterprise Server is geïnstalleerd. De volledige installatie en configuratie van zowel Linux, als RD&T gebeurde manueel, en nam dus veel tijd in beslag. Zelf hebben we ongeveer 3 weken gewerkt eer we onze eerste installatie van RD&T volledig hebben afgerond. Tijdens deze 3 weken hadden we de Redbook van RD&T bestudeerd en ondertussen zelf gedocumenteerd waar de installatie fout liep en waar we speciaal moesten op letten. Met onze eigen (Engelstalige) documentatie bij de hand, konden we de installatie (zowel Linux als RD&T) doen op een halve dag. De volgende 6 weken hebben we gespendeerd aan het automatiseren van de installatie. Aangezien RD&T op een Linux-machine draait, was het logisch om te kiezen voor een bashscript. De installatie hebben we in twee delen opgesplitst: een voor de configuratie van Linux, (die we uitvoeren op de root-gebruiker), en een voor de configuratie van z/OS (welke op de gebruiker ibmsys1 draait). De scripts zijn zo opgemaakt dat alles wat automatisch kan gebeuren, ook automatisch gedaan wordt. Er blijft steeds interactie van de gebruiker nodig voor bepaalde stappen (voornamelijk bij de configuratie van z/OS). De installatie hebben we, door onze scripts, kunnen inkorten tot 1 uur en 50 minuten. Tot slot hebben we onze opdracht nog uitgebreid met een ‘tool’ voor de migratie van data naar de RD&T-machine. Dit hebben we ook d.m.v. een bash-script gemaakt, in combinatie met FTP. Onze opdracht was om de installatie te automatiseren en om Engelstalige documentatie op te stellen. Alle tests die we deden, verliepen goed, dus we kunnen besluiten dat we in ons opzet geslaagd zijn.
12
6. Slotwoord Deze stage heb ik ervaren zoals ik het mij ingebeeld had. ASIST is een bedrijf waar iedereen aanvaard wordt en waar alles wordt gedaan om iedereen ten volle te motiveren. De opdracht die we kregen was zeer uitdagend. Ik denk dat ik voor ons beide spreek als ik zeg dat we nog niet veel ervaring hadden met mainframe vooraleer we aan deze stage begonnen. Ook mijn kennis van Linux liet vaak te wensen over. Doorheen de 14 stageweken, heb ik enorm veel bijgeleerd. Niet alleen van Linux en z/OS, maar ook andere skills, zoals werken in team, deadlines halen, documenteren,… In dat opzicht kan ik zeggen dat de taak die we kregen op vele vlakken enorm leerrijk was, en niet enkel en alleen op het mainframe vlak. Ik heb enorm veel kennis opgedaan over de configuratie van z/OS en het opzetten van RD&T, de bewuste testomgeving, waar het allemaal om draaide. Bij dezen wil ik nog graag een speciaal dankwoordje richten aan Paul Pilotto en Maurice Brouwers, die het mogelijk gemaakt hebben dat ik de stage bij ASIST mocht doen. Ook wil ik mevrouw Angeline Van Achter bedanken voor de steun en opbouwende kritiek tijdens de stage. Tot slot wil ik ook Gery Put bedanken, voor de begeleiding van onze opdracht. Hij maakte er nooit een probleem van om onze vragen te beantwoorden en dat maakte de hele ervaring net dat tikkeltje aangenamer. Natuurlijk mag ik ook Barteld niet vergeten te bedanken. 14 weken intensief samenwerken is lang, en soms vermoeiend, maar ik heb enorm veel van Barteld geleerd en ben hem daar ook enorm dankbaar voor. We hadden af en toe wel eens een meningsverschil, maar uiteindelijk kwamen we toch altijd tot een akkoord. Tijdens deze stage heb ik mij enorm goed geamuseerd, maar heb ik vooral enorm veel nieuwe zaken bijgeleerd. Iets wat niemand mij nog kan afnemen. Ben
13
Bijlage 1: Stagedagboek
Stagedagboek Barteld Logghe & Ben Vandendriessche
ASIST - Leuven Week 1: 16 februari t.e.m. 19 februari 2015 16/02/2015
● ● ● ● ●
17/02/2015
●
● ● ● ●
18/02/2015
● ● ●
19/02/2015
● ● ●
Korte briefing: wat houdt de stage in, wie is ASIST, … Uitleg van reeds gerealiseerd project waarop we verder gaan werken; uitleg van nieuw project met dezelfde bedoeling, maar volgens andere werkwijze Branden van ISO-files voor de installatie van de RD&T Back-up maken van bestaande (en eventueel nog benodigde) user accounts op de RD&T vooraleer te formatteren Eerste installatie van SUSE Linux SUSE opnieuw installeren volgens de richtlijnen uit de handleiding van RD&T ( = laptop formatteren) + extra aanpassingen ter voorbereiding van RD&T → probleem bij installatie (bestanden ontbraken) opgelost door installatie via CLI uit te voeren RD&T ISO-files geïnstalleerd en uitvoerbaar gemaakt Instellingen RD&T machine aanpassen/aanmaken (bestanden aanpassen volgens handleiding) Volumes op de RD&T aanmaken → probleem bij uitvoeren commando: opgelost door doelmap van eigenaar te veranderen Begonnen aan script om de RD&T op te starten (voorbeeld uit handleiding volgen) Script om de RD&T op te starten verder uitwerken ( = handleiding verder volgen) Probleem met licenties van de USB stick Opnieuw installeren SUSE om fouten proberen weg te werken → fout blijft Afwachten antwoord IBM over fout van licenties Opzoekingswerk backup & restore RDT Nieuwe clean install uitvoeren, met klok expliciet op GMT gezet → probleem blijft
14
Week 2: 23 februari t.e.m. 26 februari 2015 23/02/2015
● ● ● ● ● ● ●
24/02/2015
● ● ●
25/02/2015
26/02/2015
●
Probleem opgelost door nieuwe licentie te gebruiken (fout lag bij de gebruikte file, welke was verlopen) Handleiding verder doornemen om het systeem op te starten Installeren van x3270 emulator op Linux Script om RDT automatisch op te starten aangemaakt Extra images branden, omdat bepaalde bestanden nog niet geïnstalleerd waren ISO-files inladen IPL gedaan, nog probleem met aanmelden Volumes uit de handleiding gedubbelchecked; nog 1 extra toegevoegd IPL lukt, aanmelden in TSO en opstarten van ISPF lukt JCL uit handleiding uitvoeren → loopt fout (JCL ERROR, lijkt niet te komen door een fout uit de code, dus voorlopig onopgelost)
● ● ●
Probleem met uit te voeren JCL oplossen (spatie over het hoofd gezien) JCL’s uit RedBook uitvoeren Datasets aanmaken/kopiëren om members en wijzigingen op te slaan Nieuwe datasets maken voor /tmp en mounten
● ●
Bezoek van de stagebegeleidster TCP/IP van de linux en de z/os instellen
Week 3: 2 maart t.e.m. 5 maart 2015 02/03/2015
● ●
Aanpassen van member BPXPRMDB Proberen TCP/IP op te lossen
03/03/2015
● ●
TCP/IP nog verder uitzoeken TCP/IP probleem opgelost: “Future attempts may succeed”
04/03/2015
● ●
RACF instellen TCP/IP verbeteren om connectiviteit op te zetten (ping mogelijk maken)
●
Volumes verwijderen en herbeginnen met installatie van RDT, om fouten uit vorige delen uit te sluiten (om TCP/IP te laten werken) Verbeteren van onze documentatie
05/03/2015
●
15
Week 4: 9 maart t.e.m. 12 maart 2015 09/03/2015 10/03/2015 11/03/2015
12/03/2015
●
TCP/IP herbekeken en werkend gekregen
● ●
Volledig herbeginnen om documentatie na te kijken Handleiding voor manuele installatie opstellen
● ● ●
Handleiding verder afwerken en aanvullen met screenshots Bepalen van welke volumes we een backup nemen Het commando pdsutil bekijken, eventuele problemen die kunnen voorkomen oplijsten
●
Beginnen met schrijven van script voor het aanpassen van alles aan de Linux kant van de installatie van de RDT. Afwachten van antwoord voor onze problemen met pdsUtil Basis van Linux scripts is af. (hardcoded) (aanpassen van sysctl, bashrc)
●
Week 5: 16 maart t.e.m. 19 maart 2015 16/03/2015 17/03/2015 18/03/2015 19/03/2015
●
Invoer toevoegen in scripts + foutafhandeling
●
Script schrijven die directory aanmaakt waarin UPW file en volumes moeten komen
●
Scriptjes aan elkaar koppelen, alles testen, een opmaak geven aan de scripts, betere foutafhandeling
●
Problemen met ip adres, dhcp, default gateway, dns proberen oplossen.
16
Week 6: 23 maart t.e.m. 26 maart 2015 23/03/2015
● ●
Scripts voor Linux kant afwerken (TCP/IP + finetunen) Problemen met verbinden met samba na aanpassen van TCP/IP (dit uitstellen aangezien dit niet echt problemen oplevert en niet tot de essentie van de opdracht behoort)
24/03/2015
● ●
Handleiding verder aanvullen voor automatische installatie Beginnen met testen van kleine .sh scripts met ftp commando, om pds-members aan te passen op de mainframe
●
Uitgebreider met ftp commando werken, testen (submit van JCL, zaken combineren get + put, …)
●
Skelet maken en het hardcoden van ons script om volgende week met Gery te overleggen wat er juist variabel moet zijn.
25/03/2015 26/03/2015
Week 7: 30 maart t.e.m. 2 april 2015 ● ● ●
Handleiding verder uitwerken voor automatische installatie Scripts voor configuratie van z/OS (hard coded) maken Debugging bestaande scripts
● ● ● ●
Scripts z/OS verder aanmaken en aanpassen + uittesten Overleg met Gery voor stand van zaken en opheldering van bepaalde vragen Debugging bestaande scripts Clean install + uittesten alle scripts
01/04/2015
● ●
Aanpassen en aanvullen scripts z/OS Aanpassen scripts Linux voor gebruik met parameter file
02/04/2015
● ●
Bezoek Angeline Van Achter Opzoeken en proberen silent install van z1090 door XML-file
30/03/2015
31/03/2015
17
Week 8: 6 april t.e.m. 9 april 2015 06/04/2015 07/04/2015
Paasmaandag - geen stage ● ●
08/04/2015
● ● ● ● ● ● ● ●
09/04/2015
● ● ● ●
Clean install + final test scripts Linux-kant + debugging en updaten handleiding (8u50 - 11u30) Scripts configuratie verder aanpassen + debuggen (11u45 - 17u00): ○ Verschillende volumes aanmaken door input met parameterfile ○ Controle inbouwen in parameter-file (volumes mogen niet bestaan + lengte naam + device controleren) Script allocatie volumes verder aanpassen + testen en debuggen (8u45 - 10u40) (Ben) Aanzet scripts FTP inbouwen in Linux-scripts (10u50 - 11u45) (Ben) Handleiding herbekijken en uitbreiden (11u50 - 17u00) (Barteld) FTP script debugging + aanpassen (10u50-13u00) (Barteld) FTP test scripts maken (13u-13u30) (Barteld) Opzoekwerk naar linux FTP commando in samenwerking met input geven aan de z/OS terminal (13u00-15u00) Opnieuw installeren van de volumes + debuggen FTP scripts (13u0016u30) FTP - scripts overlopen en bepalen welke zaken variabel zijn.(16u3017u00) (Ben) Opzoeken instellingen extra volumes initialiseren (9u00 12u15) (Ben) Overlopen scripts FTP + handleiding en ordenen (13u00 17u00) (Barteld) Debuggen BPX scripts (9u00-12u00) (Barteld) Een halt in het FTP script steken zodat er geen conflicten kunnen optreden bij het uitvoeren van de verschillende JCL’s (13u0017u00)
18
Week 9: 13 april t.e.m. 16 april 2015 13/04/2015
14/04/2015
● ● ●
(Ben) Scripts configuratie z/OS via FTP verder ordenen + debuggen + handleiding aanpassen (8u45 - 17u00) (Barteld) Scripts aanpassen BPX-members (8u50-13u40) (Barteld) debuggen z/OS-install scripts (14u00-17u00)
●
Scripts configuratie z/OS testen en debuggen (8u50 - 17u00) (= 4x volumes opnieuw initialiseren)
15/04/2015
16/04/2015
● ● ●
Testen + debuggen scripts installatie en configuratie z/OS (8u50 12u00) Herbekijken scritps TCP/IP + debuggen (13u15 - 14u30) Nieuwe install volumes voor laatste tests (14u45 - 17u30)
● ●
Opruimen code + clean install en volledige test (9u00 - 12u15) Aanvullen en verbeteren installatiehandleiding (13u00 - 16u40)
Week 10: 20 april t.e.m. 23 april 2015 20/04/2015 21/04/2015
●
Stageverslag opstellen (9u30 - 17u00)
●
Samen zitten met Paul Pilotto over informatie ASIST (stageverslag) + bespreken wat er juist verwacht wordt tijdens onze demo van 7 mei (Communicatie tussen 2 RD&T machines, PDS’en kopiëren van 1 RD&T naar de andere) Opzoeken Linux commando’s FTP, HEAD, … Schrijven van Script om PDS’en over te zetten van de ene machine op de andere
● ●
22/04/2015
● ● ●
23/04/2015
●
(Ben) Verder werken aan stageverslag: aanvulling en verbetering van bedrijfsvoorstelling (9u00 - 11u45) (Barteld) Schrijven script: afhalen complete PDS (dynamisch) (9u00 13u00) Debuggen script (13u00 - 17u00) Schrijven van de JCL via een script , script: FTP zet de member metJCLl code op de mainframe + voer uit (dynamisch) & debuggen (9u00 - 17u00)
19
Week 11: 28 april t.e.m. 1 mei 2015 28/04/2015 29/04/2015
Terugkomdag school + jobevent - Geen stage ● ●
30/04/2015 01/05/2015
●
Debuggen + aanpassen Script (verschil libraries/PDS bij het ophalen van de lijst achterhalen) (8u00 - 12u00) Script uitbreiden naar pds kopiëren van 1 mainframe en op een andere zetten (13u00 - 17u00) Script datasets overzetten verder uitbreiden + debuggen (9u00 17u00)
Feest van de arbeid - Geen stage
Week 12: 04 mei t.e.m. 07 mei 2015 04/05/2015
05/05/2015 06/05/2015
● ●
Clean install RD&T (9u00 - 11u00) Verder uitwerken script overzetten datasets + refactoring van bestaande code (11u00 - 17u00)
●
Afwerken scripts overzetten datasets (9u00 - 17u00) en aanvullen handleiding
●
Installeren VNC op RD&T om projectie mogelijk te maken (presentatie te geven) (9u00 - 10u30) Code refactorren en documentatie uitbreiden (10u45 - 17u00)
● 07/05/2015
● ● ●
Meerdere datasets overzetten mogelijk maken door parameterfile aan te passen (9u00 - 13u30) Presentatie aan IBM (13u30 - 15u30) Aanvullen + debuggen + refactorren bestaande code (15u30 - 17u00)
20
Week 13: 11 mei t.e.m. 14 mei 2015 11/05/2015
12/05/2015 13/05/2015
14/05/2015
● ● ● ●
Voorbereiden stagepresentatie (9u00 - 12u30) Aanvullen stageverslag (9u00 - 17u00) Code voor datamigratie verder aanvullen (13u00 - 17u00) Bezoek Angeline Van Achter: Tussentijdse presentatie
● ●
Aanvullen stageverslag (9u00 - 17u00) Debuggen en refactorren code (9u00 - 17u00)
● ● ● ●
Aanvullen handleiding: toevoegen datamigratie (9u00 - 15u30) Inbouwen controle voor volume in migratiescript (9u00 - 12u45) Grondig nalezen handleiding (15u45 - 17u00) Error-handling (13u30 - 17u00)
Hemelvaart - Geen stage
Week 14: 18 mei t.e.m. 21 mei 2015 18/05/2015
● ●
19/05/2015 20/05/2015
21/05/2015
Nalezen en opstellen finale versie van installation guide (9u00 10u30) Stageverslag aanvullen: algemene stukken + nalezen (10u45 17u00)
● ●
Testen datamigratie d.m.v. hckd2ckd-commando (9u00 - 15u00) Stageverslag zaanvullen (12u00 - 17u00)
● ● ● ● ●
Optimaliseren datamigratiescript (9u00 - 12u00) Clean install + test scripts (13u00 - 19u00) Presentatie aanvullen (screenshots,...) (13u00 - 19u00) Aanvullen stageverslag (9u00 - 19u00) Installeren screen record software op Linux om demo op te nemen (15u00 - 19u00)
● ● ● ●
Clean install + klaarzetten presentatie (9u00 - 18u00) Presentatie afwerken (14u00 - 18u00) Stagedagboek nalezen en bij stageverslag voegen (9u00 - 10u00) Stageverslag volledig afwerken (opmaak, persoonlijke stukken, algemeen besluit) (10u00 - 18u00)
21
Bijlage 2: Installatiehandleiding Onderstaand vindt u de installatiehandleiding die we opgesteld hebben als leidraad voor het gebruik van onze scripts. We hebben deze handleiding opgesteld in het Engels, aangezien ASIST een internationaal bedrijf is en er dus eerder nood is aan Engelstalige documentatie in plaats van Nederlandstalige.
22
Installation Guide RD&T 9.0
ASIST – Leuven Internship project of Barteld Logghe & Ben Vandendriessche, HoGent February 2015 – May 2015
Table of contents 1.
2.
Manual Installation ......................................................................................................... 2 1.1.
Installing and configuring SUSE Linux Enterprise Server ........................................ 2
1.2.
Installing RD&T environment ................................................................................... 3
1.3.
Configuring Network Settings on Linux .................................................................... 5
1.4.
Installing z/OS volume images ................................................................................ 5
1.5.
Start z/OS for the first time ...................................................................................... 6
1.6.
Configuring z/OS ..................................................................................................... 7
1.7.
Configuring TCP/IP ................................................................................................13
Automated installation ...................................................................................................20 2.1.
Prerequisites ..........................................................................................................20
2.2.
Installing and configuring SUSE Linux Enterprise Server .......................................20
2.3.
Starting and configuring z/OS .................................................................................21
3.
Migration of data from Mainframe to RD&T 9.0 .............................................................24
4.
Appendixes ...................................................................................................................25 4.1.
Changing Screen Resolution to use by default .......................................................25
4.2.
Devmap..................................................................................................................25
4.3.
Parameters used in InputParameters-file with automated installation RD&T 9.0 ....27
4.4.
Parameters used in InputParameters-file with data migration .................................29
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
1
1.
Manual Installation The first part of this installation guide describes the manual installation of RD&T 9.0 on SUSE Linux Enterprise Server. We use a laptop with at least the minimum requirements described in the Redbook ‘IBM Rational Development and Test Environment for System z Version 9.0 Installation and Sample Configuration Guide’, (IBM Corporation, 2013). Our installation guide is based on this Redbook.
1.1
Installing and configuring SUSE Linux Enterprise Server To make this manual complete, we start with the description of the installation of our Linux distribution. We use SUSE Linux Enterprise Server 11 SP 2. If you like to use another Linux distribution1, you can skip to part 1.2 Installing RD&T environment. We use a clean install of the OS, to have full use of our device. If you already have an installed laptop with SLES 11 SP 2, or another supported Linux distribution, you can skip to part 1.2 Installing RD&T environment. 1. Mount the ISO-file and complete the installation wizard Don’t forget to use the English version of the OS, but change the keyboard-layout to the one suited for your machine! Keep in mind - to have the license key working in one of the future steps - to set the hardware clock to UTC (GMT)! 2. When the computer reboots, choose “Boot from Hard Disk”, or wait until the option gets selected automatically. We will now configure our new Linux installation. 3. Choose a password for root User; in this manual, we’ve used ‘linux’ 4. If you prefer to change the Hostname and Domain Name of the device, you can do so, but keep in mind that u will need the two of them in later steps. In our manual, we use ‘clmweb2.swg’ 5. Use the standard network configuration (click “Next” 3 times) 6. Technical support for Linux is not really needed, but you can configure this if you prefer to. In our manual, we skip this step. 7. For network Services Configuration, we use the standard settings 8. Create a local user for your machine, if the installer lets you choose an Authentication Method, choose ‘Local (/etc/passwd)’. In our manual, we’ve created user ‘ibmsys1’ with password ‘linux’ 9. Use the default Hardware Configuration to complete the setup. Supported Linux distributions can be found in Redbook ‘IBM Rational Development and Test Environment for System z Version 9.0 Installation and Sample Configuration Guide’, (IBM Corporation, 2013). Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche 1
2
If you prefer to change the Display Settings, you can by following the steps in Appendix 4.1 Changing Screen Resolution to use by default. For RD&T 9.0, it’s not necessary to clone the system for AutoYaST. 10. Make sure the 32-bit libraries (libstdc++*) are installed before proceeding. You must mount the ISO-file, containing SUSE Linux Enterprise Server, to complete the installation. While you’re at it, install the x3270-emulator we will use to connect to z/OS. If these libraries are already installed, just ignore this step.
1.2
Installing RD&T environment 1. Log in as Root-user 2. Mount the first ISO-file of z/OS and open ‘launchpad.sh’ (run in terminal) to install the application 3. Install the IBM installation manager by completing the wizard 4. If the Installation Manager is installed, restart the installer to start the installation of other packages Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
3
5.
Install “Rational Development and Test Environment for System Z version 9.0.0.0” by completing the wizard
6.
After you install Development and Test Environment with the IBM Installation Manager, you must make minor changes to your kernel configuration and add a few environment variables for the user IDs that are going to run RD&T 9.0: Use the file explorer or a terminal to edit file /etc/sysctl.conf. Add the following lines to the file: kernel.shmmax=18000000000 kernel.core_pattern=core-%e-%p-%t kernel.core_uses_pid=1 kernel.msgmni=512 kernel.msgmax=65536 kernel.msgmnb=65536 net.core.rmem_max=1048576 net.core.rmem_default=1048576
7.
After changing /etc/sysctl.conf, run the following command as root, to verify if the file was changed correctly: /sbin/sysctl -p /etc/sysctl.conf
8.
Log out and log back in as user Ibmsys1
9.
Next step is to update the $HOME/.bashrc file. Add the following lines: export PATH=/usr/z1090/bin:$PATH export LD_LIBRARY_PATH=/usr/z1090/bin:$LD_LIBRARY_PATH export MANPATH=/usr/z1090/man:$MANPATH ulimit -c unlimited ulimit -d unlimited #ulimit -m unlimited #ulimit -v unlimited The ulimit -m and ulimit -v statements are probably not required for most users but should be uncommented if you have more than 128 emulated I/O devices.
10. Open a new terminal and run the command z1090instcheck If the command notes an error, try rebooting or check for typos in the two files you’ve changed before. 11. If the z1090instcheck command runs without errors, log out and log back in as root. It’s time to install the USB license key. 12. Place the UPW-file in directory /usr/z1090/bin and make sure the machine is connected to the internet! Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
4
13. Open a terminal and run the following commands: cd /usr/z1090/bin ./SecureUpdateUtility -u upw_filename The SecureUpdateUtility-command should report that the update was successful.
1.3
Configuring Network Settings on Linux To make sure the IP settings of your Linux machine are correct - prior to installing RD&T 9.0 - we will set them now. Keep in mind that the network settings of your machine may be different in your network. 1. Open YaST Control Center and choose Network Settings 2. Set a static IP address for your Linux machine, fitting to your network settings (IPaddress, subnet mask, default gateway and DNS-server) In our manual, we use static IP 192.168.0.230/24 for the Linux machine. If you want to check if your changes are successful, try to ping from another computer in the network.
1.4
Installing z/OS volume images 1. Log in as user ibmsys1, open a terminal and run the following command: mkdir –p /home/ibmsys1/z1090/disks 2. Mount the ISO-files and copy the needed volumes to the directory you’ve just created. Make sure to have at least all of the volumes as listed in Appendix 0: 4.2
Devmap, except SYSCFG, USER00 and PUBLIC, these will be created in later steps. 3. Unzip the volumes by running: cd /home/ibmsys1/z1090/disks gunzip *.gz 4. Create 3 volumes to use with RD&T; these volumes are arbitrary: alcckd /home/ibmsys1/z1090/disks/SYSCFG -d3390-1 alcckd /home/ibmsys1/z1090/disks/USER00 –d3390-9 alcckd /home/ibmsys1/z1090/disks/PUBLIC –d3390-3 5. After unzipping and creating all volumes, change the permissions by running: chmod 755 /home/ibmsys1/z1090/disks/*
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
5
6. Next step is to create the devmap: perl <pathtocommand>/create_devmap.pl pathtodisks > generateddevmap In our example, this is: perl /opt/IBM/Rational\ Development\ and\ Test\ Environment\ for\ system\ z/CONFIGGUIDESAMPLE/create_devmap.pl /home/ibmsys1/z1090/disks > generateddevmap 7. In the generated devmap add --tunnel_ip=10.1.1.1 --tunnel_mask=255.255.255.0 to the --path=A0 -line (as in Appendix 4.2 Devmap). You may need to change the IP-address, if you prefer to use another one for the tunnel to z/OS. 8. Copy the runzpdt-file from /opt/IBM/Rational Development and Test Environment for System z/ConfigGuideSample to $HOME/z1090 For your convenience, you may want to create a script on your desktop to start the RD&T. The script could look like this: #!/bin/bash cd /home/ibmsys1/z1090 bash runzpdt –d generateddevmap –l CS Don’t forget to change the permissions of your script to 700 using the chmod-command!
1.5
Start z/OS for the first time 1. Start your new script, or use the following commands in a terminal: cd /home/ibmsys1/z1090 bash runzpdt –d generateddevmap –l CS 2. When IPL-ing for the first time, the mstcon-console expects a reply. Give the following: reply 0,I (zero and capital letter i) 3. Wait for the system to perform the IPL, the mstcon-console should print something like the this: […] process id 65554, server job name FTPD1 4. Now switch to the tso-terminal, insert “1” and press enter to confirm
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
6
5. Type logon IBMUSER and press enter to confirm 6. The initial password is ‘IBMUSER’, change this now. The new password we’ve used is ‘sys1’, but you can use another if you like to. 7. Wait for all the broadcast messages to appear (red color), and press enter to start ISPF
1.6
Configuring z/OS 1. To initialize the new volumes we have created earlier, you first need to put them in offline-mode. In the z/OS command prompt, enter the following command: V AB0,offline V AB1,offline V AB2,offline or V (AB0-AB2),offline The AB0, AB1 and AB2 addresses may vary. You can find the correct addresses in the generated devmap, for volumes PUBLIC, USER00 and SYSCFG 2. In ISPF, create dataset IBMUSER.CNTL on volume HDSYS1 and use the standard settings to allocate. 3. Create member IBMUSER.CNTL(J01INIT) and copy the following JCL to this member: //J01INIT JOB (ACCT),MSGCLASS=H,NOTIFY=&SYSUID., // REGION=0M //*----------------------------------------------------//*----------------------------------------------------//* MOD-3: VTOC(0,1,974) INDEX(65,0,50) //* MOD-9: VTOC(0,1,2939) INDEX(196,0,150) //FORMAT EXEC PGM=ICKDSF //SYSPRINT DD SYSOUT=* //SYSIN DD * INIT UNIT(AB0) NOVALIDATE NVFY VOLID(PUBLIC) PURGE VTOC(0,1,974) INDEX(65,0,50) INIT UNIT(AB1) NOVALIDATE NVFY VOLID(USER00) PURGE VTOC(0,1,2939) INDEX(196,0,150) INIT UNIT(AB2) NOVALIDATE NVFY VOLID(SYSCFG) PURGE VTOC(0,1,89) INDEX(6,0,10) /* Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
7
4. Submit this JCL. You will see messages on the mstcon-console that you must respond to. As in the screenshot below, you can see that the console gives you a number to respond to. In the screenshot, number 03 needs respond ‘R 3,U’ and number 04 results in reply ‘R 4,U’. This job should end with return code 0.
5. In the console, put the 3 volumes back online by entering the following command: V (AB0-AB2),ONLINE 6. When initialization is complete, create member IBMUSER.CNTL(J02CATLG) and copy the following JCL to this member, to create user catalogs: //J02CATLG JOB (ACCT),MSGCLASS=H,NOTIFY=&SYSUID. //*---------------------------------------------------//DEFCAT EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE USERCATALOG (NAME(USERCAT.VUSER00) ICFCATALOG CYLINDERS(10 5) VOLUME(USER00) ) DEFINE USERCATALOG (NAME(USERCAT.VSYSCFG) ICFCATALOG CYLINDERS(5 5) VOLUME(SYSCFG) ) /* 7. Submit this JCL, it should end with return code 0. 8. Create member IBMUSER.CNTL(Q12ALIAS) to create new aliases for users: //Q12ALIAS JOB (ACCT),MSGCLASS=H,NOTIFY=&SYSUID. //*------------------------------------------------//DEFALIAS EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE ALIAS (NAME(RDZ850) RELATE(USERCAT.VSYSCFG)) DEFINE ALIAS (NAME(CUST) RELATE(USERCAT.VUSER00)) DEFINE ALIAS (NAME(FEU) RELATE(USERCAT.VSYSCFG)) /* If you prefer to create a personal alias, you can change ‘FEU’ to another value or add extra lines. 9. When submitting this JCL, it should also end with return code 0 Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
8
10. Submit the following JCL (create member IBMUSER.CNTL(Z01DSFEU)) to allocate datasets which will hold configuration settings: //Z01DSFEU JOB 'IBMUSER',CLASS=A,NOTIFY=&SYSUID,MSGCLASS=H //ALLOC PROC RECL=80,RECF=FB,SP='(TRK,(30,60,20))',LLQ=, // TYPE=LIBRARY //BR14 EXEC PGM=IEFBR14 //ANYDD DD DSN=FEU.V9R0M0.Z113H.&LLQ, // VOL=SER=SYSCFG,UNIT=3390, // DISP=(NEW,CATLG,DELETE),SPACE=&SP, // DSNTYPE=&TYPE, // DCB=(BLKSIZE=0, // RECFM=&RECF,LRECL=&RECL) //EALLOC PEND //CLIST EXEC ALLOC,LLQ=CLIST //CICSIN EXEC ALLOC,LLQ=DFH420.SYSIN,SP='(TRK,(5,5,9))' //ISPPLIB EXEC ALLOC,LLQ=ISPPLIB,SP='(CYL,(14,10,60))' //LINKLIB EXEC ALLOC,LLQ=LINKLIB,TYPE=PDS, // RECF=U,RECL=32760,SP='(CYL,(9,9,30))' //PARMLIB EXEC ALLOC,LLQ=PARMLIB,TYPE=PDS //PROCLIB EXEC ALLOC,LLQ=PROCLIB,TYPE=PDS //TCPPARMS EXEC ALLOC,LLQ=TCPPARMS //VTAMLIB EXEC ALLOC,LLQ=VTAMLIB,TYPE=PDS, // RECF=U,RECL=32760,SP='(CYL,(1,9,20))' //VTAMLST EXEC ALLOC,LLQ=VTAMLST If you didn’t use ‘FEU’ in the previous JCL, or want to store configuration settings on another alias, change the value of ‘DSN’ in the ANYDD-step. Keep in mind you also need to change the following steps in this manual accordingly, because we’ve used the ‘FEU’-members. 11. To ensure that new permanent data sets are written to USER00 and that temporary data sets are written to PUBLIC, copy ADCD.Z113H.PARMLIB(VATLST00) to FEU.V9R0M0.Z113H.PARMLIB(VATLST00) and change it to: VATDEF IPLUSE(PRIVATE),SYSUSE(PRIVATE) PUBLIC,0,1,3390 ,N USER* ,0,0,3390 ,N The data must be in specific columns, so make sure to use the copied file as a template. 12. Create four new members in SYS1.IPLPARM by copying existing members:
New member
Based on old
member Description
LOADRC
LOADCS
Cold Start. No DB2, CICS, and so on.
LOADRW
LOADWS
Warm Start. No DB2, CICS, and so on.
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
9
LOADXC
LOADDC
Cold Start, DB2 v10, CICS v4.2
LOADXW
LOADDW
Warm Start, DB2 v10, CICS v4.2
In each of the new members, add a PARMLIB line after the existing USER.PARMLIB entry which specifies a data set name of FEU.V9R0M0.Z113H.PARMLIB and a volume name of SYSCFG. Be sure to place your entries in the same columns as the existing ones. The screenshot below shows one of the LOADRC-members after adaptation.
13. You should also copy ADCD.Z113H.CLIST(ISPFCL) to FEU.V9R0M0.Z113H.CLIST(ISPFCL) and change the first line from PROC 0 VOL(HDSYS1) to PROC 0 VOL(USER00) To reduce accidental updates to the master catalog, set the TSO prefix for all users when they log on by adding PREFIX(&SYSUID.) to the line that begins with PROFILE (line number 3): PROFILE NOMODE MSGID PROMPT INTERCOM WTPMSG PREFIX(&SYSUID.)
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
10
14. To enable the use of FEU.V9R0M0.Z113H.PROCLIB create FEU.V9R0M0.Z113H.PARMLIB(MSTJCL00) based on ADCD.Z113H.PARMLIB(MSTJCL00) and include FEU.V9R0M0.Z113H.PROCLIB in the IEFPDSI DD name:
15. Create FEU.V9R0M0.Z113H.PROCLIB(JES2) based on ADCD.Z113H.PROCLIB(JES2), and modify the PROC00 concatenation to include FEU.V9R0M0.Z113H.PROCLIB after USER.PROCLIB.
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
11
16. Because the supplied z/OS distribution provides fairly small file systems for the /tmp and /u directories (which can cause problems when installing software, etc.), we need to create new directories. Create two new zFS files on volume USER00 named CUST.ZFS.U and CUST.ZFS.TMP using the following JCL: //Q13ZFS JOB ’IBMUSER’,CLASS=A,NOTIFY=&SYSUID,MSGCLASS=H //ZFSALLOC EXEC PGM=IDCAMS,REGION=0M //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE CLUSTER( NAME(CUST.ZFS.TMP) VOLUME(USER00) LINEAR CYL(100 20) SHAREOPTIONS(3) ) DEFINE CLUSTER( NAME(CUST.ZFS.U) VOLUME(USER00) LINEAR CYL(100 20) SHAREOPTIONS(3) ) //* //ZFSFORMT EXEC PGM=IOEAGFMT,REGION=0M,COND=(0,LT,ZFSALLOC), // PARM=’-aggregate CUST.ZFS.TMP -compat’ //SYSPRINT DD SYSOUT=* //ZFSFORMT EXEC PGM=IOEAGFMT,REGION=0M,COND=(0,LT,ZFSALLOC), // PARM=’-aggregate CUST.ZFS.U -compat’ //SYSPRINT DD SYSOUT=* Pay attention to the lowercase characters! 17. After you have submitted this JCL and thus after you have created CUST.ZFS.TMP and CUST.ZFS.U, change PARMLIB members BPXPRMCS and BPXPRMDB (in ADCD. Z113H.PARMLIB) as follows: /* MOUNT /* /* /* MOUNT
FILESYSTEM(’HFS.&ADCDLVL..TMP’) TYPE(HFS) MODE(RDWR) NOAUTOMOVE MOUNTPOINT(’/&SYSNAME./tmp’)
*/ */ */ */
FILESYSTEM(’CUST.ZFS.TMP’) TYPE(ZFS) MODE(RDWR) NOAUTOMOVE MOUNTPOINT(’/&SYSNAME./tmp’)
and Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
12
/* MOUNT /* /* /* MOUNT
FILESYSTEM(’HFS.&ADCDLVL..USERS’) TYPE(HFS) MODE(RDWR) MOUNTPOINT(’/u’)
*/ */ */ */
FILESYSTEM(’CUST.ZFS.U’) TYPE(ZFS) MODE(RDWR) MOUNTPOINT(’/u’)
It’s not necessarily to comment out the original code. You can delete it if you want to, it’s just for backup reasons. 18. Finally, you must copy the existing /u directories to contain the new /u file system, and ensure that everyone has proper access permission to the new file systems. Use the TSO OMVS command line (option M.10 in IPSF) to enter the following Linux commands: cd / mkdir /tempmnt /usr/sbin/mount -f cust.zfs.u /tempmnt /samples/copytree /u /tempmnt ls /tempmnt # to verify that the copy worked chmod 777 /tempmnt /usr/sbin/unmount /tempmnt /usr/sbin/mount –f cust.zfs.tmp /tempmnt chmod 777 /tempmnt /usr/sbin/unmount /tempmnt rm -r /tempmnt 19. Next, you need to perform an IPL. To perform an IPL, log off from TSO and enter this command on the mstcon-console: S SHUT00 Wait for the system to completely shut down and perform an IPL using load parameter RC: change your script or the command to cd /home/ibmsys1/z1090 bash runzpdt –d generateddevmap –l RC
1.7
Configuring TCP/IP Because we have configured our Linux set-up in an early step, the only thing left to do is configuring TCP/IP on z/OS. We will do this in this section, by copying and adapting existing members.
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
13
1. First, we need to copy the datasets listed below from the ADCD-members to the correct FEU-members: Members from ADCD.Z113H.TCPPARMS: - PROF2
to
FEU.V9R0M0.Z113H.TCPPARMS(PROFILE)
- TCPDATA
to
FEU.V9R0M0.Z113H.TCPPARMS(TCPDATA)
- TN3270
to
FEU.V9R0M0.Z113H.TCPPARMS(TN3270)
Pay attention to the new name of ‘PROF2’! Members from ADCD.Z113H.PROCLIB: - FTPD
to
FEU.V9R0M0.Z113H.PROCLIB(FTPD)
- PORTMAP
to
FEU.V9R0M0.Z113H.PROCLIB(PORTMAP)
- TCPIP
to
FEU.V9R0M0.Z113H.PROCLIB(TCPIP)
- TN3270
to
FEU.V9R0M0.Z113H.PROCLIB(TN3270)
- RESOLVER
to
FEU.V9R0M0.Z113H.PROCLIB(RESOLVER)
2. Next, we need to create two members in FEU.V9R0M0.Z113H.TCPPPARMS: -
Member IPNODES which contains the following code: 192.168.0.231 10.1.1.1 127.0.0.1 127.0.0.1
ASIST.LEUVEN CLMTEST LOCALHOST ZOS.DEV
Pay attention to use the IP addresses you used earlier in this manual (tunnel 10.1.1.1 and static IP for z/OS 192.168.0.231; 192.168.0.230 is the static IP for Linux) -
Member RESOLVER which contains the following code: GLOBALTCPIPDATA(‘FEU.V9R0M0.Z113H.TCPPARMS(TCPDATA)’) GLOBALIPNODES(‘FEU.V9R0M0.Z113H.TCPPARMS(IPNODES)’) COMMONSEARCH
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
14
3. Adjust the members you’ve copied earlier according to the screenshots below: -
Member FEU.V9R0M0.Z113H.TCPPARMS(PROFILE):
-
Member FEU.V9R0M0.Z113H.TCPPARMS(TCPDATA): (the screenshot doesn’t show comment-lines)
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
15
-
Member FEU.V9R0M0.Z113H.TCPPARMS(TN3270) doesn’t need any changes.
-
Member FEU.V9R0M0.Z113H.PROCLIB(FTPD):
-
Member FEU.V9R0M0.Z113H.PROCLIB(PORTMAP):
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
16
-
Member FEU.V9R0M0.Z113H.PROCLIB(TCPIP):
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
17
-
Member FEU.V9R0M0.Z113H.PROCLIB(TN3270):
-
Member FEU.V9R0M0.Z113H.PROCLIB(RESOLVER):
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
18
4. The last changes we need to make are in the PARMLIB members BPXPRMCS and BPXPRMDB, to make sure our members in the FEU-datasets are being used by z/OS. Both members need the same extra statement, like in the screenshot below:
5. Now you need to perform an IPL with LOADPARM RC and check if you can ping from an external device to z/OS, using your z/OS static IP address (192.168.0.231, if you used the same one as in this manual). If all tests pass, your installation of RD&T 9.0 is complete.
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
19
2.
Automated installation The second part of this installation guide describes the automated installation of RD&T 9.0 on SUSE Linux Enterprise Server. As in part 1 Manual Installation, we use a laptop with at least the minimum requirements described in the Redbook ‘IBM Rational Development and Test Environment for System z Version 9.0 Installation and Sample Configuration Guide’, (IBM Corporation, 2013).
2.1
Prerequisites To start the automated installation of RD&T 9.0, with the scripts we’ve created, you need to have a working laptop with (clean) installed SUSE Linux Enterprise Server. You can use part 1.1 Installing and configuring SUSE Linux Enterprise Server to install and configure your Linux machine. You don’t have to bother about the installation of the 32-bit libraries and the x3270emulator; this will be done automatically in a next step.
2.2
Installing and configuring SUSE Linux Enterprise Server In this part, we will automatically configure our Linux system. We will install the RD&T 9.0 software, make changes to the system files, install the USB License Key, set TCP/IP for Linux, install and mount the z/OS volumes and create the devmap to IPL the RD&T system. Make sure you have logged on at least once as user ‘ibmsys1’! (or the user that will run RD&T 9.0) 1. Log in as Root-user 2. Copy and unzip the file ‘AutomatedInstallationRDT90.tar.gz’ to your desktop. You can do this trough a terminal or just right click on the file and extract it. If you use a terminal, use the following command: cd Desktop/ tar –zxvf AutomatedInstallationRDT90.tar.gz 3. In the directory we’ve just copied, you find a file ‘InputParameters’. Open this file in gedit and change the parameters if you wish to do so. Keep in mind that changes are at your own risk and also make sure you’ve read the Redbook ‘IBM Rational Development and Test Environment for System z Version 9.0 Installation and Sample Configuration Guide’, (IBM Corporation, 2013), to know more about these parameters. More info about the used parameters can be found in Appendix 4.3 used in InputParameters-file with automated installation RD&T 9.0.
Parameters
4. When you’ve checked and/or adapted the parameter-file, launch ‘AutoInstall_RDT90.sh’. Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
20
5. First, the program will check whether the parameter-file meets certain standards (ref. Appendix 4.3 Parameters used in InputParameters-file). If a parameter is not correct, you will be asked to change it. Just follow the steps on the terminal if you need to. 6. In the next step, the program will install the 32-bit libraries needed and the x3270-emulator software. Make sure you have the ISO-file of SUSE Linux Enterprise Server mounted and press ‘Enter’ when asked to. 7. Next, you need to mount the first ISO-file of the RD&T 9.0 files. The program will install the RD&T 9.0 software. Press ‘Enter’ when asked to. 8. The program will create a directory on the Root user’s Desktop. You need to copy all the compressed volumes (.gz-files) you need. Make sure to have at least all of the volumes as listed in Appendix 4.2 Devmap, except SYSCFG, USER00 and PUBLIC: these will be created for you. 9. Copy the UPW-file to the same directory. Press ‘Enter’ to confirm. If you don’t have the minimum required volumes or don’t have copied the UPW-file, the program will return an error-message. 10. The program will automatically change the system files, as done manually in Part 1 Manual Installation of this manual, using the parameters listed in the parameter-file. 11. Connect the USB license-key and press ‘Enter’ to continue. If the key is not mounted, or the wrong UPW-file is used, the system will warn you. 12. TCP/IP on Linux will be configured and the firewall will be shut down. Next, the needed volumes will be unzipped to the correct location. The process will take a long time, depending on the hardware used. 13. In the final step of the installation, the devmap will be created in the correct directory, and a script to run RD&T 9.0 will be placed on the Desktop of the user who will be running RD&T 9.0. A directory (called AutoInstallConfigZOS) with scripts to configure z/OS will be created on the Desktop of this same user. We will use and explain these scripts in the next part of the manual.
2.3
Starting and configuring z/OS In this next part, we will IPL our RD&T 9.0 and configure it. Before IPL’ing, make sure you are logged on as ‘ibmsys1’. You will find a directory (‘AutoInstallConfigZOS’) on the Desktop containing a script (‘AutoConfigZOS.sh’) and a parameter file. Open the parameter file and make sure the correct parameters were copied; change it if needed. Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
21
1. To IPL for the first time: use the script on your Desktop (‘StartRDT90’), run in a terminal and choose ‘CS’ as loadparameter. 2. As in part 1 of this manual, we have to give a reply to the mstcon-console when it asks for it. Give the following: reply 0,I (zero and capital letter i) 3. Wait for the system to perform the IPL, the mstcon-console should print something like the following: […] process id 65554, server job name FTPD1 4. Now switch to the tso-console, insert “1” and press enter to confirm 5. Type logon IBMUSER and press enter to confirm 6. The initial password is ‘IBMUSER’, change this now. The new password we’ve used is ‘sys1’, but you can use another password if you like to. 7. Wait for all the broadcast messages to appear (red color), and press enter to start ISPF 8. If the system is started, go to the ‘AutoInstallConfigZOS’-directory on your Linux Desktop and start ‘AutoConfigZOS.sh’. 9. The first part of the script will create a PDS to store all the needed JCL’s. No interaction is required. 10. When finished, the Linux console will print a message to put the volumes offline. These are the volumes created by the parameters in the parameter-file; in our example ‘SYSCFG’, ‘USER00’ and ‘PUBLIC’. In the mstcon-console, type the following: V (AB0-AB2),offline (the correct device number can be found in the devMap) Hit ‘Enter’ in the Linux-console. When you look at the mstcon-console, you will see that the system asks for a reply per volume. As in the manual installation, the reply is R XX,U (with XX the corresponding number on the ‘mstcon’-console) Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
22
And put them back online by typing: V (AB0-AB2),ONLINE 11. The following step will create user catalogs. When the Linux-console prompts a message, hit ‘Enter’ to continue. 12. Next step is the creation of user aliases. Hit ‘Enter’ when finished. 13. Now the scripts will create the needed PDS’es to store configuration settings on volume SYSCFG. The used high-level qualifier is the value of parameter ‘FEU’ in the parameter file. 14. In the next step, the script will download the needed files from the RD&T system, make changes to them and will upload them back to the correct PDS. No interaction is needed in this step. 15. In the final step, the script will create bigger temp-volumes. When this is finished, you need to copy the existing /u directories to contain the new /u file system, and ensure that everyone has proper access permission to the new file systems. Use the TSO OMVS command line (option M.10 in IPSF) to enter the following Linux commands: cd / mkdir /tempmnt /usr/sbin/mount -f cust.zfs.u /tempmnt /samples/copytree /u /tempmnt ls /tempmnt # to verify that the copy worked chmod 777 /tempmnt /usr/sbin/unmount /tempmnt /usr/sbin/mount –f cust.zfs.tmp /tempmnt chmod 777 /tempmnt /usr/sbin/unmount /tempmnt rm -r /tempmnt Use ‘exit’ to exit OMVS. 16. Shut down z/OS by logging out of TSO and entering ‘S SHUT00’ in the mstcon-console. 17. Perform an IPL with loadparameter ‘RC’. When the system is started, you’ve completed the installation and configuration of RD&T 9.0.
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
23
3.
Migration of data from Mainframe to RD&T 9.0 This next part describes the migration of data from a mainframe to the RD&T. We assume that you have made the RD&T configuration using one of the previous chapters of this manual. If not, look at part 1 Manual Installation and make sure that Linux and z/OS are configured in a similar way. Pay special attention to the fact that the devmap needs to be located at ~/z1090/devmap! 1. Log in as the user that runs RD&T 9.0 2. Copy and unzip the file ‘MigrateDataToRDT.tar.gz’ to your desktop. You can do this trough a terminal or just right click on the file and extract it. If you use a terminal, use the following command: cd Desktop/ tar –zxvf MigrateDataToRDT.tar.gz 3. In the directory we’ve just copied, you find a file ‘InputParameters’. Open this file in gedit and change the parameters to your needs. More info about the used parameters can be found in Appendix 4.3 used in InputParameters-file with automated installation RD&T 9.0.
Parameters
4. After changing the ‘InputParameters’-file, you can launch ‘MigrateData.sh’.
5. Press ‘Enter’ to continue. 6. When the migration is finished, you will see a message on the terminal to let you know if there were errors or not. 7. If the script ended with errors, you will find an errorfile in the directory from where the script started. You have to correct the errors and afterwards, you need to run the migration-script once more. You don’t need to delete the correctly migrated data parameters from the ‘InputParameters’-file: correctly migrated ones are being deleted from the list while executing. Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
24
4.
Appendixes
4.1
Changing Screen Resolution to use by default 1. Open YaST Control Center 2. Search and open ‘Boot Loader’ 3. Set ‘Failsafe’-section as default and choose ‘Edit’ 4. Change the value of ‘Vga Mode’ to ‘795’, or a value suitable to your own device:
5. Click ‘OK’ and reboot to use the new configuration
4.2
Devmap The following example shows a sample devmap, created by ’create_devmap.pl’ # Volume directory: [system] memory 6163m processors 3 3270port 3270
/home/ibmsys1/z1090/disks
#ipl 0A80 "0A8200"
# IPL command if automation required.
# define storage size for virtual host # number of processors # port number for TN3270 connections
#cpuopt zvm_couplingfacility [manager] name aws3274 0002 # device 0700 3279 3274 device 0701 3279 3274 device 0702 3279 3274 device 0703 3279 3274 device 0704 3279 3274
define a few 3270 terminals mstcon tso1 tso2 tso3 tso4
[manager] name awsrdr 010C # define a card reader for job submission device 00C 2540 2821 /home/ibmsys1/z1090/disks/../cards/* # Network adapters are defined in the next two stanzas. # Insure that the device addresses listed here correspond to the addresses Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
25
# listed in your VTAMLST definitions. Insure that the devices defined in your # TCP/IP profiles and their associated VTAM definitions refer to the correct # type of connection as listed by the find_io command. # The "Wired" connection is for external network connectivity. # The "Tun/Tap" connection is for connection to the driving Linux system. [manager] # tap0 define network adapter (OSA) for communication with Linux name awsosa 0009 --path=A0 --pathtype=OSD --tunnel_intf=y -tunnel_ip=10.1.1.1 --tunnel_mask=255.255.255.0 # QDIO mode device 400 osa osa --unitadd=0 device 401 osa osa --unitadd=1 device 402 osa osa --unitadd=2 [manager] # eth0 define network adapter (OSA) for communication with network name awsosa 0019 --path=F0 --pathtype=OSD # QDIO mode device 404 osa osa --unitadd=0 device 405 osa osa --unitadd=1 device 406 osa osa --unitadd=2 # DASD Devices are defined below. This list was derived from # files in /home/ibmsys1/z1090/disks # Files with six character names that are greater than 800MB in size are # assumed to be uncompressed DASD volume images. The first files named xxRES1 # and xxSYS1 (case insensitive) were assigned 0A80 and 0A82 respectively. [manager] name awsckd device 0A80 device 0A81 device 0A82 device 0A83 device 0A84 device 0A85 device 0A86 device 0A87 device 0A88 device 0A89 device 0A8A device 0A8B device 0A8C device 0A8D device 0A8E device 0A8F device 0A90
0001 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390
3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
/home/ibmsys1/z1090/disks/hdres1 /home/ibmsys1/z1090/disks/hdc421 /home/ibmsys1/z1090/disks/hdsys1 /home/ibmsys1/z1090/disks/hddba1 /home/ibmsys1/z1090/disks/hddba2 /home/ibmsys1/z1090/disks/hddba3 /home/ibmsys1/z1090/disks/hddis1 /home/ibmsys1/z1090/disks/hddis2 /home/ibmsys1/z1090/disks/hddis3 /home/ibmsys1/z1090/disks/hddis4 /home/ibmsys1/z1090/disks/hddis5 /home/ibmsys1/z1090/disks/hddis6 /home/ibmsys1/z1090/disks/hdpaga /home/ibmsys1/z1090/disks/hdpagb /home/ibmsys1/z1090/disks/hdpagc /home/ibmsys1/z1090/disks/hdpagd /home/ibmsys1/z1090/disks/hdpage 26
device device device device device device device device device device device device device device device # # ====
4.3
0A91 0A92 0A93 0A94 0A95 0A96 0A97 0A98 0AA3 0AB0 0AB1 0AB2 0AB3 0AB4 0AB5
3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390
3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390
/home/ibmsys1/z1090/disks/hdpagf /home/ibmsys1/z1090/disks/hdprd1 /home/ibmsys1/z1090/disks/hdprd2 /home/ibmsys1/z1090/disks/hdprd3 /home/ibmsys1/z1090/disks/hdres2 /home/ibmsys1/z1090/disks/hduss1 /home/ibmsys1/z1090/disks/hduss2 /home/ibmsys1/z1090/disks/sares1 /home/ibmsys1/z1090/disks/hddbar /home/ibmsys1/z1090/disks/PUBLIC /home/ibmsys1/z1090/disks/USER00 /home/ibmsys1/z1090/disks/SYSCFG # Available for dynamic mounts # Available for dynamic mounts # Available for dynamic mounts
END OF DEVICE MAP =================
Parameters used in InputParameters-file with automated installation of RD&T 9.0 In the automated configuration of RD&T, we’ve provided a file with all the used parameters. The goal is to edit this file just once and let the scripts run to configure the system to your needs. In this appendix, you can find some more information about this file and the used parameters. We also refer to the Redbook ‘IBM Rational Development and Test Environment for System z Version 9.0 Installation and Sample Configuration Guide’, (IBM Corporation, 2013). Parameter
Explanation
Providing user name IBMUSER
The user that will be running RD&T 9.0; in our manual, we’ve used ‘ibmsys1’
Configuration of system file ‘/etc/sysctl.conf’ kShmmax
maximum shared memory that a user can request
kMsgmni
512 by default, this might be larger if you have many emulated I/O devices
kMsgmax kMsgmnb rmemMax rmemDefault
Not needed for some Linux releases because these are the default settings, but it doesn’t harm to include them Default values
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
27
Configuration of system file ‘$HOME /.bashrc’ IODEV
Default set to ‘n’ (no); need to be set to ‘y’ (yes) if you intend to use more than 128 emulated I/O-devices
Configuring TCP/IP STATIP
Static IP address of Linux (dotted decimal format)
SUBNETM
Subnet Mask (dotted decimal format)
DEFGTW
Default gateway (dotted decimal format)
DNSSERV
DNS-server address (dotted decimal format), if present; can be left blank
STATZOS
Static IP address of z/OS (dotted decimal format)
TUNLIN
IP address of tunnel at Linux-side (dotted decimal format)
TUNZOS
IP address of tunnel at z/OS-side (dotted decimal format)
TUNMSK
Subnet Mask of tunnel addresses (dotted decimal format)
Allocate new volumes
#BEGINVOLUMES SYSCFG -d3390-1 #ENDVOLUMES
SYSCFG -d3390-1 is an example, can be altered or deleted. Used to add extra, new, volumes. Use one line per volume; make sure the name consists of 6 alphanumeric characters or less and isn’t used by another volume. The used device type and size has to be one of the following: "-d3380-1", "-d3380-2", "-d3380-3", "-d3390-1", "d3390-2", "-d3390-3", "-d3390-9"
Parameters for use in z/OS USERZOS
The used username on z/OS
PASSWORDZOS
The password of “USERZOS” (after changing!)
FEU
The alias for saving z/OS configuration files. This parameter must consist of 1 to 8 alphanumeric characters and cannot start with a number!
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
28
4.4
Parameters used in InputParameters-file with data migration In data migration scripts, we’ve provided a file with all the used parameters. The goal is to edit this file just once and let the scripts run to migrate the data. In this appendix, you can find some more information about this file and the used parameters. Global parameters The IP address used by the source (Mainframe) and the destination (RD&T) SOURCENAME / The username used on the Mainframe and RD&T, DESTNAME respectively The password of SOURCENAME and DESTNAME, SOURCEPW / DESTPW respectively Source- and destination parameters #SOURCETMP ASIST.PARMLIB A list of source data (HLQ, DSN, PDS) #ENDSOURCE #DESTTMP A list of corresponding source locations (where to copy) and IBM.PARMLIB USER00 the corresponding volume per location. #ENDDEST SOURCEIP / DESTIP
Make sure you have the same amount of source- and destination parameters, because they will be used in the same order as given in the parameter-file. The destination-parameter and its volume needs to be separated by one space. If the volume doesn’t exist, the script will let you know and you can execute it once the volume is created or the error is corrected.
Installation Guide RD&T 9.0 ASIST- Leuven Barteld Logghe & Ben Vandendriessche
29