
Puppet je bezplatný a otevřený nástroj pro správu konfigurace, který vám pomůže centrálně nasadit a spravovat konfigurace stovek klientských systémů. Je k dispozici pro GNU/Linux, Mac, BSD, Solaris a počítačové systémy založené na Windows, vydané pod licencí Apache, napsané v jazyce „Ruby“. Tato příručka vám pomůže nainstalovat loutku na CentOS 7 / RHEL 7.
Architektura loutky:
Agent / Master:
V této architektuře jeden nebo více serverů provozuje loutkovou hlavní aplikaci, obvykle jako Rack aplikaci spravovanou webovým serverem (jako Apache s Passenger) a aplikace loutkového agenta běží na klientských serverech, obvykle jako služba na pozadí.
Loutkář bude pravidelně zasílat fakta loutkáři a požadovat katalog. Master zkompiluje a vrátí katalog tohoto uzlu pomocí několika zdrojů informací, ke kterým má přístup.
Samostatná architektura:
V této architektuře klientské servery spouštějí loutkovou aplikaci (samostatnou kombinaci aplikací loutkového mistra a loutkového agenta), obvykle jako naplánovanou úlohu nebo úlohu cron.
Prostředí:
Zde vám ukážu, jak nakonfigurovat loutku v architektuře master / agent. V tomto tutoriálu budu používat dva systémy CentOS 7, jak je uvedeno níže.
Puppet Master:
Operační systém:CentOS 7 MinimalIP Address :192.168.12.10HostName :server.itzgeek.local
Loutkový klient:
Operační systém:CentOS 7 MinimalIP Address :192.168.12.20HostName :client.itzgeek.local
Předpoklady:
Nakonfigurujte úložiště EPEL na CentOS 7 / RHEL 7.
Ujistěte se, že váš systém (loutkový server i klient) je schopen vzájemně rozlišit název hostitele, použijte soubor /etc/hosts nebo server DNS .
Abychom měli připravené produkční nastavení loutky, musíme použít apache s pasažérem. Chcete-li získat cestujícího, stáhněte si a umístěte repo soubor do /etc/yum.repos.d/
Poznámka:Pouze na hlavním serveru.
[root@server ~]# curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repoPro instalaci loutkového mistra / agenta bychom vyžadovali nastavení úložiště loutek na všech uzlech. Povolte úložiště loutkových laboratoří instalací pod rpm.
Poznámka:Spusťte jej na hlavním uzlu i na uzlu agenta.
# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpmNainstalujte a nakonfigurujte Puppet na CentOS 7:
Nyní je čas nainstalovat loutku. Nainstalujte loutkový server pomocí níže uvedeného příkazu.
[root@server ~]# yum -y instalace loutkového serveruJak již bylo řečeno dříve, nakonfigurujeme loutku pro architekturu master / agent. Tento uzel tedy bude fungovat jako hlavní uzel. Upravte konfigurační soubor loutky a upravte dns_alt_names .
[root@server ~]# vi /etc/puppet/puppet.conf[main]dns_alt_names =server,server.itzgeek.local certname =server.itzgeek.localPokud je tento stroj jediným loutkovým mistrem ve vašem prostředí, spusťte níže uvedený příkaz a vytvořte certifikát loutkového mistra.
[root@server ~]# puppet master --verbose --no-daemonizeInfo:Vytvoření nového klíče SSL pro caInfo:Vytvoření nového požadavku na certifikát SSL pro caInfo:Otisk žádosti o certifikát (SHA256):81:C6:BB :8B:1D:71:4C:64:E1:13:54:1B:EC:CF:99:D8:85:90:D1:6C:E8:85:50:3E:03:41:BA:C5 :47:A7:4C:E5Upozornění:Podepsaná žádost o certifikát pro caInfo:Vytvoření nového seznamu odvolání certifikátuInfo:Vytvoření nového klíče SSL pro server.itzgeek.localInfo:Načítání souboru csr_attributes z /etc/puppet/csr_attributes.yamlInfo:Vytvoření nového Žádost o certifikát SSL pro server.itzgeek.localInfo:Otisk žádosti o certifikát (SHA256):FF:BE:D4:9B:E4:12:83:79:AE:BE:50:17:76:5F:F5:CD:5F :53:EA:5D:AA:5D:87:9E:7C:C4:BC:1B:8A:C6:FA:5CNotice:server.itzgeek.local čeká na žádost o certifikátUpozornění:Podepsaná žádost o certifikát pro server.itzgeek. localNotice:Odebírání souboru Puppet::SSL::CertificateRequest server.itzgeek.local na '/var/lib/puppet/ssl/ca/requests/server.itzgeek.local.pem'Notice:Odstraňování souboru Puppet::SSL::CertificateRequest server.itzgeek.local na '/var/lib/puppet/ssl/certificate_requests/server.itzgeek.local.pem'Upozornění:Spouštění Puppet master verze 3.8.3Jakmile získáte „Upozornění:Spouštění hlavní verze loutky
“, stiskněte ctrl-C zabít proces. Konfigurace webového serveru připraveného na produkci:
Puppet je dodáván se základním webovým serverem loutkového hlavního serveru, ale nelze jej použít pro reálné zatížení. Než začneme spravovat naše uzly pomocí Puppet, musíme nakonfigurovat webový server v produkční kvalitě.
[root@server ~]# yum -y install httpd httpd-devel mod_ssl ruby-devel rubygems gcc gcc-c++ pygpgme curlNainstalujte modul Passenger a apache.
[root@server ~]# instalace yum -y mod_passengerVytvořte pro aplikaci tři adresáře (nadřazený adresář, „veřejný“ adresář a adresář „tmp“ ), Zkopírujte soubor ext/rack/config.ru ze zdrojového kódu Puppet do nadřazeného adresáře a nastavte vlastnictví souboru config.ru.
[root@server ~]# mkdir -p /usr/share/puppet/rack/puppetmasterd[root@server ~]# mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/ rack/puppetmasterd/tmp[root@server ~]# cp /usr/share/puppet/ext/rack/config.ru /usr/share/puppet/rack/puppetmasterd/[root@server ~]# chown puppet:puppet / usr/share/puppet/rack/puppetmasterd/config.ruPřidejte virtuálního hostitele pro loutku vytvořením níže uvedeného konfiguračního souboru.
[root@server ~]# vi /etc/httpd/conf.d/puppetmaster.confPřidejte obsah níže do souboru virtuálního hostitele, změňte zelenou barevné položky podle vašeho prostředí.
# tato nastavení pravděpodobně budete chtít vyladitPassengerVysokýVýkon naPasažérMaxVelikost bazénu 12PassengerPoolDoba nečinnosti 1500# PassengerMaxRequests 1000PassengerStatThrottleRate 120Poslouchat 8140SSLEngine na SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite EDH + CAMELLIA:EDH + Arsa:EECDH + Arsa + AESGCM:EECDH + Arsa + SHA384:EECDH + Arsa + SHA256:EECDH:+ CAMELLIA256:+ AES256:+ CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA SSLHonorCipherOrder na SSLCertificateFile /var/lib/puppet/ssl/certs/server.pitzgeem SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/server.itzgeek.local.pem SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem # Pokud si Apache stěžuje na neplatné podpisy v CRL, můžete zkusit deaktivovat # Kontrola CRL komentářem na dalším řádku, ale nedoporučuje se to. SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem # Apache 2.4 zavádí direktivu SSLCARevocationCheck a nastavuje ji na hodnotu none #, která účinně deaktivuje kontrolu CRL; pokud používáte Apache 2.4+, musíte # specifikovat 'SSLCARevocationCheck chain', abyste CRL skutečně použili. # SSLCarevocationCheck Chain SSLVERIFYCLIENT Volitelný SSLVERIFYDEPTH 1 # `ExportCertData` možnost pro vypršení agenta pro osvědčení agenta SSLoptions +stdenvvars +exportData # Tato záhlaví musí být nastavena -Předmět %{SSL_CLIENT_S_DN}e Sada RequestHeader X-Client-DN %{SSL_CLIENT_S_DN}e RequestHeader sada X-Client-Verify %{SSL_CLIENT_VERIFY}e petr Petr Pot.> RackBaseURI / /usr/share/puppet/rack/puppetmasterd/> Možnosti Žádné AllowOverride Žádné Objednat povolit, odepřít povolit ze všech Restartujte apache server, aby se projevil efekt loutkového virtuálního hostitele, k tomu spusťte následující příkaz na terminálu.
[root@server ~]# restart systemctl httpd.serviceZakažte službu loutky a povolte automatické spouštění serveru Apache při spouštění systému.
[root@server ~]# systemctl zakázat puppet.service[root@server ~]# systemctl povolit httpd.serviceFirewall:
Loutka poslouchá na portu č. 8140; Nakonfigurujte tabulky IP tak, aby to umožňovaly.
[root@server ~]# firewall-cmd --zone=public --add-port=8140/tcp --permanent[root@server ~]# firewall-cmd --reloadInstalovat loutku na uzly agentů:
Na vašem klientském počítači nainstalujte loutkového agenta pomocí níže uvedeného příkazu.
Poznámka:V uzlech agentů musíte mít nakonfigurované úložiště loutek.
[root@client ~]# yum -y nainstalovat loutkuUpravte konfigurační soubor loutky a nastavte informace o hlavní loutce ve stanze klienta.
Poznámka:Upravte hodnotu „server“ podle svého prostředí. V mém případě je server „server.itzgeek.local“
[root@client ~]# vi /etc/puppet/puppet.conf[agent]server =server.itzgeek.localSpusťte loutku na uzlu agenta a nechte ji automaticky spouštět při zavádění systému.
[root@client ~]# systemctl start puppet.service[root@client ~]# systemctl povolit puppet.serviceDostanete se pod události v protokolech.
Oct 21 05:46:45 client systemd:Starting Puppet agent...Oct 21 05:46:46 client systemd:Start Puppet agent.Oct 21 05:47:03 client systemd:Reloading.Oct 21 05:49 :10 client puppet-agent[2694]:Neobdrželi certifikátPodepište certifikát uzlu agenta na hlavním serveru:
V nasazení agent/master musí správce schválit žádost o certifikát pro každý uzel agenta, než může tento uzel načíst konfigurace. Agentní uzly budou vyžadovat certifikáty při prvním pokusu o spuštění.
Přihlaste se do hlavního serveru loutek a spusťte níže uvedený příkaz pro zobrazení nevyřízených požadavků.
[root@server ~]# loutkový cert list"client.itzgeek.local" (SHA256) D4:88:EC:C5:0A:F7:5D:4E:32:C5:B3:61:E0:51 :7B:0C:CD:B3:49:9E:68:0B:E7:5D:75:19:1D:0B:92:8A:E7:C1Spusťte loutkový certifikační znak pro podepsání žádosti nebo loutkový certifikační znak – vše pro podepsání všech čekajících požadavků.
[root@server ~]# loutkový certifikační znak client.itzgeek.localNotice:Podepsaná žádost o certifikát pro client.itzgeek.localNotice:Odebírání souboru Puppet::SSL::CertificateRequest client.itzgeek.local na '/var/lib/ puppet/ssl/ca/requests/client.itzgeek.local.pem'Spuštěním následujícího příkazu na klientském počítači zkontrolujte certifikát
[root@client ~]# loutkový agent -tInfo:Ukládání certifikátu pro client.itzgeek.localInfo:Ukládání do mezipaměti Certificate_revocation_list pro caInfo:Ukládání certifikátu pro client.itzgeek.localInfo:Načítání pluginfactsInfo:Načítání pluginInfo:Ukládání katalogu pro client.itzgeek .localInfo:Použití konfigurační verze '1445401911'Info:Vytváření stavového souboru /var/lib/puppet/state/state.yamlNotice:Spuštění katalogu dokončeno za 0,09 sekundTo je vše. Nyní jste úspěšně nakonfigurovali loutkového mistra a agenta. Je čas vytvořit manifest (konfigurace klienta). Zůstaňte naladěni.
Tento návod je pro starou verzi Puppet Master, některé odkazy jsou nefunkční a nemusí fungovat. Nová verze je k dispozici zde:Jak nainstalovat Puppet 4.x na CentOS 7 / RHEL 7.
Jak nainstalovat Foreman na CentOS 7 / RHEL 7 / Oracle Linux 7 Jak nakonfigurovat Autofs na CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26Cent OS