1. Översikt Puppet är ett öppen källkodsverktyg för mjukvaruautomatisering som är lätt att använda och kraftfullt, och som får allt mer uppmärksamhet, och många stora IT-företag använder nu Puppet för att hantera och distribuera mjukvara i kluster, som Google som använder Puppet för att hantera mer än 6 000 Mac-stationära datorer (data från 2007). Denna artikel introducerar främst installationsmetoden, designarkitekturen och användningsmetoden för dockor.
2. Designarkitektur Puppet är baserad på C/S-arkitekturen. Serversidan lagrar all konfigurationskod för klientservern, som kallas manifest i puppet. Efter att klienten laddat ner manifestet kan servern konfigureras enligt manifestet, såsom pakethantering, användarhantering och filhantering.
Som visas i figuren ovan är arbetsflödet för puppet följande: (1) Klientens puppetd anropar facter, och facter detekterar vissa värdvariabler, såsom värdnamn, minnesstorlek, IP-adress osv. pupppetd skickar denna information till servern via en SSL-anslutning; (2) Serversidans puppetmaster upptäcker klientens värdnamn, hittar sedan motsvarande nodkonfiguration i manifestet och tolkar denna del av innehållet. Parsing delas in i flera steg, syntaxkontroll och felrapportering om syntaxen är fel. Om syntaxen är korrekt, fortsätt att parsa, och resultatet av parsningen genererar en mellanliggande "pseudokod" och skickar sedan pseudokoden till klienten; (3) Klienten tar emot "pseudokoden" och exekverar den, och klienten skickar exekveringsresultatet till servern; (4) Serversidan skriver klientens exekveringsresultat till loggen. Det finns två punkter värda att notera i PUPPET-processen: för det första baseras klienten och mastern på SSL och certifikat, och endast klienten som autentiseras av mastercertifikatet kan kommunicera med mastercertifikatet; För det andra kommer puppet att hålla systemet i ett visst förväntat tillstånd och underhålla det hela tiden, till exempel genom att upptäcka en fil och se till att den alltid finns, säkerställa att ssh-tjänsten alltid är på, om filen raderas eller ssh-tjänsten stängs, nästa gång puppet körs (30 minuter som standard), kommer den att återskapa filen eller starta ssh-tjänsten.
3. Programvaruinstallation Det rekommenderas inte att använda apt-get-kommandot för installation eftersom dockan som laddas ner med detta kommando har en bugg. Den kan installeras direkt från källkoden, och mjukvaran som behöver installeras är Ruby, Facter och Puppet.
3.1 Installationsprocedur Redigera /etc/host för att ändra värdnamnet, eftersom puppet är certifikatbaserat och innehåller värdnamnet i certifikatet; Installera Ruby, Facter och Puppet på Master and Slave, och använd Ruby Install.rb för att installera Facter och Puppet.
3.2 Katalogstruktur efter installation (1) Installationskatalog Installationskatalogen lagras i /etc/puppet och manifesteras i denna katalog för att lagra manifestfiler. Andra körbara filer under /user/sbin inkluderar huvudsakligen: puppet: Används för att köra oberoende mainfest-filer skrivna av användaren, såsom: Puppet -l /tmp/manifest.log manifest.pp puppetd: Ett klientprogram som körs på den hanterade värden, såsom: puppet –serverservernamn –waitforcert 60 puppetmasterd: Ett serverprogram som körs på hanteringsmaskinen, såsom: Puppetmasterd – Debug Puppetca Puppet-certifieringsprogrammet används främst för att autentisera slavcertifikat, såsom: Kontrollera slaven för att autentiseras: puppetca –list Certifiera dessa slavar: puppetca -s –a PuppetRun används för att ansluta till klienten och tvinga den lokala konfigurationsfilen att köras, till exempel: puppetrun -p 10 –host host1 –host host2 -t fjärrfil -t webbserver (2) Konfigurationsfiler puppet.conf Huvudkonfigurationsfilen för Puppet är /etc/puppet/puppet.conf för root-användare, och ~user/.puppet/puppet.conf för vanliga användare För specifika konfigurationsparametrar, se:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Konfigurationsfilen för dockfilservern. Använd sökvägskonfigurationsfilen sökväg och tillåt/neka för att konfigurera åtkomstbehörigheter, se http://docs.puppetlabs.com/guides/file_serving.html
3.3 Verifiera att installationen är framgångsrik Välj en slav för att verifiera med mästaren, förutsatt att slavens värd är slave00 och mästarens värd är masterhost, ange på slave00: puppetd –test –server servernamn Titta sedan på slaven som ska autentiseras på masterhost: Puppetca –lista Om det är okej kan du se slave00 skriva under slavens certifikat: Puppetca -s -a På detta sätt klarade slave00 certifikatvalideringen och kunde interagera vidare med mastern. Skriv filen site.pp i /etc/puppet/manifests-katalogen i masterhost, som lyder: Node default { fil { "/tmp/test": content=>"hej", läge => 0644;
}
} Samtidigt anger du puppetd –test –server servername på slave00, kontrollerar /tmp-mappen i slave00 och genererar ett nytt filtest, vars innehåll är hello, och filens behörighet är -rw-r—r-. På detta sätt bevisas dockinstallationen vara framgångsrik
|