hvordan for hjælp linux udvikling med dukke og vagabonder, del to

, i første del af denne forelæsning, vi viste, hvordan man bruger vagabond at automatisere og forvalte lokale virtuelle maskiner til en software - udvikling miljø.vi har defineret en simpel vagrantfile at specificere visse attributter til vm - at løbe en simpel web - app, og har det løbende ved hjælp af landstryger er kommando linjen værktøj.i denne del af ministeriet, at vi vil bruge dukken til at definere og automatisere konstruktion detaljer for vores vm.denne vej, når vi starter den dev miljø med omstrejfer op, vil det blive nedsat for at lede vores webapplikationen uden yderligere manuel konfiguration., ved hjælp af dukke at specificere systemkonfiguration, dukke er et meget effektivt værktøj for konfigureringen af systemer og har sit eget sprog for at specificere konfiguration.dette sprog fungerer på en sådan måde, at det er de forskellige fra mange andre edb - sprog: det er deklaratoriske,.det betyder, at i stedet for at præcisere en liste over aktioner, som du ønsker den computer til at tage (som i et hylster script), du beskriver en række midler, som du ønsker at eksistere på systemet.ressourcer er byggestenene i dit system er konfiguration, og de falder i mange forskellige typer, som vil være velkendt for alle * nix bruger: filer, pakker, brugere osv.,,,,, lad os undersøge et eksempel i den specifikke mål for denne lektion: at få vores vm til at løbe en simpel webapplikation.i vores tilfælde ønsker vi, at den ansøgning om at blive ledet af apache, eftersom det er en tjeneste, der vil løbe anvendelse i produktionen.for at vores vm til at løbe en ansøgning med apache, skal det for, at pakken er installeret.vi kan beskrive den pakke, der skal dukke sådan her:,, pakke ("apache2": sikre = > nuværende}, vi fortæller dukke - type af ressourcer, vi taler om: en pakke.så siger vi det, titel, af indtægter: i dette tilfælde, apache2, navnet på den pakke, vi vil have installeret.så, vi fastsætter, sikre, at denne attribut,,,.det her siger, at vi ønsker, at den pakke. for at være til stede på vores system.vi kan også sige dukke, hvad kilde, den skal bruge for at finde en pakke med angivelse af en leverandør, og så for eksempel, hvis vi arbejdede på et webapp med ruby på skinner, kan vi sige dukke til at installere, skinner, pakke med, gem, udbyder, som vil få det til at forsøge at klargøre pakke fra rubygems:,, pakke ("spor": sikre = > nuværende leverandør = > perle,}, hver har sine egne leverandører og attributter, der kan anvendes til at forbedre deres beskrivelser.for eksempel, du kunne præcisere, version = > "3.0.0", hvis du vidste, du ville have, 3.0.0, version af en pakke.der er omfattende dokumentation til rådighed på dukke er rig, type og udbyder system til at hjælpe de forekellige måder til at beskrive det ønskede system med dukke.,, dukke er sandt magt er, at man kan beskrive ressourcer til det generelt (jeg vil denne sag til at eksistere på dette sted, med det indhold, jeg ønsker, at denne tjeneste at løbe på havnen, osv.), og vil få dit system. passer på beskrivelsen, uanset de individuelle system er du konfigureringen,.hvor løb du den dukke vil undersøge den aktuelle situation i systemet, sammenligne den med den stat, de har beskrevet, og så gøre, hvad der skal til for at gøre systemet er konfiguration passer til det, de har nævnt.det betyder, at vi kan bytte den bums, rubrik i vores projekt for en boxfile baseret på et andet system, og vores dukke hensættelser stadig vil arbejde med kun mindre ændringer, ved hjælp af, hvad vi har lært om dukke er deklaratoriske sprog, lad os præcisere nogle grundlæggende struktur for vores udvikling miljø.denne kode skal gå i, er åbenbar, fil.We'll define ours in ,sample-dev-env/manifests/default.pp,because this is the default location Vagrant searches for Puppet manifest files., ,$ mkdir manifests $ vim manifests/default.pp exec { "apt-get update": path => "/usr/bin", } package { "apache2": ensure => present, require => Exec["apt-get update"], } service { "apache2": ensure => "running", require => Package["apache2"], } file { "/var/www/sample-webapp": ensure => "link", target => "/vagrant/sample-webapp", require => Package["apache2"], notify => Service["apache2"], } $ git add manifests/default.pp $ git commit -m "Basic Puppet manifest" , ,There are a few new concepts in this sample, most notably the ,require, og meddeler, attributter.det giver dig mulighed for at udtrykke afhængighedsforhold mellem ressourcer, så tingene i den rigtige rækkefølge.i dette eksempel, vi har angivet, at den, apache2, service, ikke kan køre, indtil, apache2, pakke, er installeret, og vi har fortalt, at meddele, apache2, service, når det er forbundet med vores prøve webapp arbejde i misligholdelse apache dokument, rod.vi har også fastlagt en, direktør, ressource til at løbe, kunne få opdatering, før man forsøger at installere apache, det er bare for at være sikker på at kunne ajourføres, før man forsøger at installere noget.,, konstaterer, at den rækkefølge, i hvilken dukke vil tage visse skridt er ikke defineret i deres rækkefølge i de sagsakter, som med shell manuskripter. vi kunne flytte disse ressourcer definition blokke rundt, og resultatet af at anvende åbenbart ville forblive den samme.,, at det alt sammen nu, hvor vi har en simpel dukke - konfiguration, der er defineret for tilførsel af kapital til vm - at omflakkende skaber og forvalter, hvordan kan vi sætte alle brikkerne sammen, så det fungerer?heldigvis, vagrant blev skabt med konfigurationsstyringen systemer som marionet for øje, så det er meget simpelt.det eneste, vi skal gøre, er at tilføje denne linje til vm - ud - blokken i vores vagrantfile:,, config.vm.provision: dukke, da vi har bragt vores åbenbare i default placering, vagabond automatisk vil opdage det og bruge det til proviantering af vores vm.det betyder, at når vi nu med vores vm, vagabond, det vil automatisk blive nedsat til at tjene indhold fra, stikprøve webapp, fortegnelse i vores dev miljø.lad os give det noget at tjene:,,, $pwd procents stikprøve dev env, $mkdir prøve webapp $vi prøve webapp /index.html, < h1 > hallo, verden!< /h1 >,, hvis du nu besøg, localhost: 3000 /prøve webapp i en browser på dit lokale maskine, takket være dukke er henlæggelser og landstryger er havn fremsendelse, du skulle se dit budskab, der vises.du kan fortsætte med at lægge og redigering filer på din lokale maskine, og ændringer vil blive afspejlet på stedet i, hvad der er tjent med apacherne instans løber på din vm., styrken af dette er indlysende: - en entreprenør på dit projekt kan have en lokal vm, der bor ajourføres kode med disse kommandoer:,, $git klon denne e - mail - adresse er beskyttet fra spambots.du har brug for javascript mulighed for at se på det. your_username /your-dev-env-repo.git $cd din dev env repo $så kloner denne e - mail - adresse er beskyttet fra spambots.du har brug for javascript mulighed for at se på det. your_username /your-webapp.git $omstrejfer op, det er det!denne gennemgang kan integreres endnu mere effektiv ved at definere en idiot submodule inden for deres udvikling miljø for de projekter, der kan anvendes til at udvikle sig.som din dukke konfiguration bliver mere komplekse, kan du finde det nyttigt at organisere deres specifikationer til moduler og klasser, eller at udforske de rige række dukke moduler, der er til rådighed på dukke - forge, hvor du kan finde magtfulde blokke til din dukke konfiguration.dukken er super fedt dokumentation til at hjælpe dig videre på din rejse.landstryger også har en rig sæt dokumentation til rådighed, herunder detaljeret dokumentation om anvendelse af dukke med vagabond.hvis bygningen af denne type udvikling, miljø, der interesserer dig, jeg har taget den enkle modeller fra det pædagogiske og stillet dem til rådighed på github som udgangspunkt.,,,,,,

Puppet Labs logo



Previous:
Next Page: