GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Chef Server, Workstation a Chef Client na Ubuntu 18.04

Chef je nástroj pro správu konfigurace založený na Ruby, který se používá k definování infrastruktury jako kódu. To umožňuje uživatelům automatizovat správu mnoha uzlů a udržovat konzistenci mezi těmito uzly. Recepty deklarují požadovaný stav pro spravované uzly a jsou vytvářeny na pracovní stanici uživatele pomocí balíčku Chef Workstation. Vaše recepty jsou distribuovány mezi uzly prostřednictvím serveru Chef. Klient Chef, nainstalovaný na každém uzlu, má na starosti aplikaci receptury na příslušný uzel. Tato příručka vám ukáže, jak nainstalovat a nakonfigurovat Chef Server a Chef Workstation. Zavedeme také uzel, který bude spravovat pomocí Chef.

V tomto tutoriálu se naučíte:

  • Nainstalujte a nakonfigurujte Chef Server
  • Vytvoření uživatele a organizace šéfkuchaře
  • Nainstalujte a nakonfigurujte pracovní stanici Chef
  • Konfigurace Knife a Bootstrapping klientského uzlu

Architektura šéfkuchaře.

Požadavky na software a použité konvence

Softwarové požadavky a konvence příkazového řádku systému Linux
Kategorie Požadavky, konvence nebo použitá verze softwaru
Systém Ubuntu Linux 18.04
Software Chef Server Core, Chef Workstation, Chef Client, Chef Development Kit
Jiné Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz.
Konvence # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz
$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel

Nainstalujte a nakonfigurujte Chef Server

Server Chef je centrem interakce mezi všemi pracovními stanicemi a uzly pod správou Chef. Změny provedené v konfiguračním kódu na pracovních stanicích jsou odeslány na server Chef a poté staženy kuchařem-klientem uzlu, aby se konfigurace použily.

Stáhněte si nejnovější server Chef spuštěním příkazu níže:

# wget https://packages.chef.io/files/stable/chef-server/12.18.14/ubuntu/18.04/chef-server-core_12.18.14-1_amd64.deb

Nyní nainstalujte serverový balíček následujícím příkazem:

# dpkg -i chef-server-core_*.deb

Server Chef obsahuje nástroj příkazového řádku s názvem chef-server-ctl. Spusťte chef-server-ctl pro spuštění služeb Chef serveru.

# překonfigurování chef-server-ctl

Po úspěšné konfiguraci serveru šéfkuchaře uvidíte níže uvedenou zprávu a také zkontrolujete stav serveru šéfkuchaře.

Chef Client dokončen, 493/1100 zdrojů aktualizováno za 12 minut 02 sekundChef Server překonfigurován!
root@ubuntubox1:~# chef-server-ctl statusrun:police:(pid 1435) 6644s; běh:log:(pid 1440) 6644srun:nginx:(pid 1235) 6653s; běh:log:(pid 1744) 6631srun:oc_bifrost:(pid 1196) 6657s; run:log:(pid 1203) 6657srun:oc_id:(pid 1220) 6655s; běh:log:(pid 1227) 6655srun:opscode-erchef:(pid 4376) 6432s; run:log:(pid 1508) 6644srun:opscode-expander:(pid 1335) 6648s; běh:log:(pid 1431) 6646srun:opscode-solr4:(pid 1244) 6650s; run:log:(pid 1285) 6649srun:postgresql:(pid 1176) 6659s; run:log:(pid 1180) 6659srun:rabbitmq:(pid 4188) 6443s; run:log:(pid 1748) 6631srun:redis_lb:(pid 27397) 6931s; run:log:(pid 1735) 6632sroot@ubuntubox1:~#

Vytvoření uživatele a organizace šéfkuchaře

Chcete-li propojit pracovní stanice a uzly se serverem Chef, vytvořte správce a organizaci s přidruženými soukromými klíči RSA.
V domovském adresáři vytvořte adresář .chef pro uložení klíčů.

# mkdir .chef

K vytvoření uživatele použijte chef-server-ctl. V tomto příkladu změňte následující, aby odpovídaly vašim potřebám:USER_NAME, FIRST_NAME, LAST_NAME, EMAIL a PASSWORD. Upravte USER_NAME.pem a ponechte příponu .pem.

chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename ~/.chef/USER_NAME.pem
root@ubuntubox1:~# chef-server-ctl user-create chefadmin Šéfkuchař Správce chefadmin@@ubuntubox1.com '*******' --filename ~/.chef/chefadmin.pem

Chcete-li zobrazit seznam všech uživatelů na serveru Chef, zadejte následující příkaz:

root@ubuntubox1:~# chef-server-ctl user-listchefadminpivotal

Vytvořte organizaci a přidejte uživatele vytvořeného v předchozím kroku. Nahraďte ORG_NAME krátkým identifikátorem organizace, ORG_FULL_NAME úplným názvem organizace, USER_NAME uživatelským jménem vytvořeným ve výše uvedeném kroku a ORG_NAME.pem krátkým identifikátorem organizace následovaným .pem.

chef-server-ctl org-create ORG_NAME "ORG_FULL_NAME" --association_user USER_NAME --filename ~/.chef/ORG_NAME.pem
root@ubuntubox1:~# chef-server-ctl org-create chef-on-ubuntu "Chef Infrastructure on Ubuntu 18.04" --association_user chefadmin --filename ~/.chef/chef-on-ubuntu.pem 

Chcete-li zobrazit seznam všech organizací na serveru Chef, použijte následující příkaz:

root@ubuntubox1:~# chef-server-ctl org-listchef-on-ubuntu

S nainstalovaným serverem Chef a vygenerovanými klíči RSA začneme konfigurovat pracovní stanici Chef. Pracovní stanice je místo, kde budou vytvořeny všechny hlavní konfigurace pro vaše uzly.

Nainstalujte a nakonfigurujte pracovní stanici Chef

Pracovní stanice Chef je místo, kde vytváříte a konfigurujete jakékoli recepty, kuchařky, atributy a další změny nezbytné pro správu vašich uzlů. Ačkoli to může být místní počítač s jakýmkoli operačním systémem, existuje určitá výhoda ponechání vzdáleného serveru jako vaší pracovní stanice, abyste k němu měli přístup odkudkoli.

V této sekci si stáhnete a nainstalujete balíček Chef Workstation, který poskytuje všechny nástroje obsažené také v ChefDK, vývojářské sadě Chef.

Stáhněte si nejnovější Chef Workstation:

root@ubuntubox2:~# wget https://packages.chef.io/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.deb--2019-06 -03 13:35:51-- https://packages.chef.io/files/stable/chef-workstation/0.2.43/ubuntu/18.04/chef-workstation_0.2.43-1_amd64.debResolving packages.chef.io ( packages.chef.io)... 151.101.142.110Připojování k packages.chef.io (packages.chef.io)|151.101.142.110|:443... připojeno.Požadavek HTTP odeslán, čeká se na odpověď... 200 OKDélka:129713682 (124M) [application/x-debian-package]Ukládání do:'chef-workstation_0.2.43-1_amd64.deb'chef-workstation_0.2.43-1_amd64.deb 100 %[=========================================================================================>] 123,70 mil. 1,51 MB/s v 80. letech 2019-06-03 13:37:17 (1,55 MB/s) – 'chef-workstation_0.2.43-1_amd64.deb' uloženo [129713682/129713682]

Nainstalujte Chef Workstation:

root@ubuntubox2:~# dpkg -i chef-workstation_*.deb Vybírá se dříve nevybraný balíček chef-workstation. (Čtení databáze... Aktuálně nainstalovaných 117468 souborů a adresářů.) Příprava na rozbalení chef-workstation_0.2.43-1_amd64. deb ...Rozbalení chef-workstation (0.2.43-1) ...Nastavení chef-workstation (0.2.43-1) ...Chcete-li spustit experimentální aplikaci Chef Workstation App, použijte správce balíčků vaší platformy k instalaci těchto závislostí:libgconf-2.so.4 => nenalezeno Aplikaci pak můžete spustit spuštěním 'chef-workstation-app'. Aplikace bude poté k dispozici v systémové liště. Děkujeme za instalaci Chef Workstation! Několik tipů najdete na Začínáme na https://chef.sh/

Nyní musíme vytvořit úložiště Chef. V adresáři chef-repo budou uloženy vaše kuchařské knihy Chef a další související soubory.

# chef generovat repo chef-repo

Vytvořte podadresář .chef. V podadresáři .chef bude uložen konfigurační soubor Knife a soubory .pem, které se používají pro ověřování párů klíčů RSA se serverem Chef. Přesuňte se do adresáře chef-repo:

root@ubuntubox2:~# mkdir ~/chef-repo/.chefroot@ubuntubox2:~# cd chef-reporoot@ubuntubox2:~/chef-repo#

Autentizace mezi serverem Chef a pracovní stanicí a/nebo uzly je dokončena šifrováním veřejného klíče. Tím je zajištěno, že server Chef komunikuje pouze s důvěryhodnými stroji. V této části budou soukromé klíče RSA vygenerované při nastavování serveru Chef zkopírovány na pracovní stanici, aby byla umožněna komunikace mezi serverem Chef a pracovní stanicí.

Na serveru pracovní stanice vygenerujeme pár klíčů RSA. Tento pár klíčů bude použit k získání přístupu k serveru Chef a následnému přenosu jejich souborů .pem:

root@ubuntubox2:~# ssh-keygen -b 4096Generování páru klíčů veřejný/soukromý rsa.Zadejte soubor, do kterého se má klíč uložit (/root/.ssh/id_rsa):Vytvořen adresář '/root/.ssh'. Zadejte přístupové heslo (prázdné pro žádné heslo):Zadejte znovu stejné přístupové heslo:Vaše identifikace byla uložena do /root/.ssh/id_rsa.Váš veřejný klíč byl uložen do /root/.ssh/id_rsa.pub. Otisk klíče je:SHA256:sR+Nloq6vsc7rX4ZmMINP3SKdk4fYEJH1iLoKNm1YMg [email protected] Náhodný obrázek klíče je:+---[RSA 4096]----+|.. . Ó. ||.E+ oo. . || * o.o... ||+ o... o + ||. .. ooS =. || +o=oo+ . || Oo + oo. || ooO.+. || o=B=*. |+----[SHA256]-----+root@ubuntubox2:~#

Nahrajte veřejný klíč uzlu pracovní stanice do uzlu serveru Chef.

root@ubuntubox2:~# ssh-copy-id [email protected]/usr/bin/ssh-copy-id:INFO:Zdroj klíčů k instalaci:"/root/.ssh/id_rsa .pub"/usr/bin/ssh-copy-id:INFO:pokus o přihlášení pomocí nového klíče (klíčů), pro odfiltrování všech, které jsou již nainstalovány/usr/bin/ssh-copy-id:INFO:1 zbývá nainstalovat klíč (klíče) -- pokud budete nyní vyzváni, je třeba nainstalovat nové heslo [email protected]:Počet přidaných klíčů:1Nyní se zkuste přihlásit do počítače pomocí:"ssh 'root@ ubuntubox1.com'"a zkontrolujte, zda byly přidány pouze klíče, které jste chtěli.root@ubuntubox2:~#

Zkopírujte soubory .pem ze serveru Chef na vaši pracovní stanici pomocí příkazu scp.

root@ubuntubox2:~# scp [email protected]:~/.chef/*.pem ~/chef-repo/.chef/chefadmin.pem 100% 1674 27,9KB/s 00:00chef-on-ubuntu .pem 100 % 1674 496,8 kB/s 00:00

Vypsáním obsahu adresáře .chef potvrďte, že soubory byly úspěšně zkopírovány. Měly by být uvedeny soubory .pem.

root@ubuntubox2:~# ls ~/chef-repo/.chefchefadmin.pem chef-on-ubuntu.pem

Vygenerujte novou kuchařku šéfkuchaře:

root@ubuntubox2:~# kuchař vygenerovat kuchařku chef-first-cookbook V názvech kuchařek se nedoporučuje používat pomlčky, protože mohou způsobit problémy s vlastními zdroji. Další informace najdete na https://docs.chef.io/ctl_chef.html#chef-generate-cookbook.Generování kuchařské knihy chef-first-cookbook- Zajištění správného obsahu souboru kuchařky- Zajištění konfigurace doručení- Zajištění správného doručení obsahu sestavené kuchařkyVaše kuchařka je připraven. Zadejte `cd chef-first-cookbook` a zadejte jej. Existuje několik příkazů, které můžete spustit, abyste mohli začít lokálně vyvíjet a testovat svou kuchařku. Úplný seznam zobrazíte zadáním `delivery local --help`. Proč nezačít napsáním test? Testy pro výchozí recept jsou uloženy na adrese:test/integration/default/default_test.rbPokud byste se do toho raději ponořili, výchozí recept najdete na adrese:recipes/default.rb

Vygenerujte chef-repo a přesuňte se do nově vytvořeného adresáře:

# chef generovat aplikaci chef-repo# cd chef-repo

Konfigurace Knife a Bootstrapping klientského uzlu

Vytvořte konfigurační soubor nože tak, že přejdete do adresáře ~/chef-repo/.chef a vytvoříte soubor s názvem config.rb pomocí preferovaného textového editoru.

Zkopírujte následující konfiguraci do souboru config.rb:


current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                'node_name'
client_key               "USER.pem"
validation_client_name   'ORG_NAME-validator'
validation_key           "ORGANIZATION-validator.pem"
chef_server_url          'https://ubuntubox1.com/organizations/ORG_NAME'
cache_type               'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path            ["#{current_dir}/../cookbooks"]
 

Hodnota pro node_name by měla být uživatelské jméno, které bylo vytvořeno na serveru šéfkuchaře.
Změňte USER.pem v části client_key tak, aby odpovídala souboru .pem pro uživatele šéfkuchaře.
Jméno validation_client_name by mělo být ORG_NAME organizace následované - validator.
ORGANIZATION-validator.pem v cestě validation_key by měl být nastaven na ORG_NAME následovaný -validator.pem.
Konečně by chef_server_url měla být doména Chef serveru s připojeným /organizations/ORG_NAME. Nezapomeňte nahradit ORG_NAME názvem organizace.

Přejděte do adresáře chef-repo a zkopírujte potřebné certifikáty SSL ze serveru:

root@ubuntubox2:~/chef-repo/.chef# cd ..root@ubuntubox2:~/chef-repo# načítání ssl nože UPOZORNĚNÍ:Certifikáty z ubuntubox1.com budou načteny a umístěny do vašeho adresáře důvěryhodných_certifikátů (/root/ chef-repo/.chef/trusted_certs). Nůž nemá žádné prostředky k ověření, zda se jedná o správné certifikáty. Po stažení byste měli ověřit pravost těchto certifikátů. Přidání certifikátu pro ubuntubox1_com do /root/chef-repo/.chef/trusted_certs/ubuntubox1_com.crt

Spuštěním seznamu klientů ověřte, zda je soubor config.rb správně nastaven. Tento příkaz by měl vypsat jméno validátoru.

root@ubuntubox2:~/chef-repo# klient nože listchef-on-ubuntu-validator

Bootstrapping uzlu nainstaluje klienta Chef na uzel a ověří uzel. To umožňuje uzlu číst ze serveru Chef a stahovat a používat všechny potřebné aktualizace konfigurace zjištěné klientem kuchaře.
Z pracovní stanice přejděte do adresáře ~/chef-repo/.chef:

# cd ~/chef-repo/.chef

Zaveďte uzel klienta buď pomocí uživatele root klientského uzlu, nebo uživatele se zvýšenými oprávněními:

root@ubuntubox2:~/chef-repo/.chef# bootstrap nože ubuntubox3.com -x root -P ******* --název-uzlu chef-client-nodeVytváření nového klienta pro chef-client- nodeVytváření nového uzlu pro chef-client-nodePřipojování k ubuntubox3.comubuntubox3.com -----> Instalace Chef Omnibus (-v 14) ubuntubox3.com stahování https://omnitruck-direct.chef.io/chef/install.shubuntubox3 .com do souboru /tmp/install.sh.2019/install.shubuntubox3.com zkouší wget...ubuntubox3.com ubuntu 18.04 x86_64ubuntubox3.com Získávání informací pro chef stable 14 pro ubuntu...ubuntubox3.com stahování https:// omnitruck-direct.chef.io/stable/chef/metadata?v=14&p=ubuntu&pv=18.04&m=x86_64ubuntubox3.com do souboru /tmp/install.sh.2023/metadata.txtubuntubox3.com při pokusu o wget...ubuntubox3.com sha1 ed9b1fcdaf947d9a3d60e6d196308183a082bcffubuntubox3.com sha256 9ddcd5ceef19c95ecc1f34bef080c23d9cb42ae8ebc69fd41dcf1c768a6a708fubuntubox3.com url https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.11-1_amd64. debubuntubox3.com verze 14.13.11 stažený soubor metadat vypadá platně... Stahování ubuntubox3.com https://packages.chef.io/files/stable/chef/14.13.11/ubuntu/18.04/chef_14.13.14-1_amd .debubuntubox3.com do souboru /tmp/install.sh.2023/chef_14.13.11-1_amd64.debubuntubox3.com zkoušení wget...ubuntubox3.com Porovnání kontrolního součtu s sha256sum...ubuntuboxdpkg Instalace chef 3.comubunt instalací ...ubuntubox3.com Výběr dříve nevybraného šéfkuchaře balíčků. (Čtení databáze ... Aktuálně nainstalovaných 117468 souborů a adresářů.)ubuntubox3.com Příprava na rozbalení .../chef_14.13.11-1_amd64.deb ...ubuntubox3.com Rozbalení kuchař (14.13.11-1) ...ubuntubox3.com Nastavení šéfkuchaře (14.13.11-1) ...ubuntubox3.com Děkujeme, že jste si nainstalovali klienta Chef Infra Client! Pro nápovědu, jak začít, navštivte https://learn.chef.ioubuntubox3.com Spuštění prvního spuštění klienta Chef Client...ubuntubox3.com Spuštění klienta Chef Client, verze 14.13.11ubuntubox3.com řešení kuchařských knih pro seznam spuštění:[]ubuntubox3.com Synchronizace Cookbooks:ubuntubox3.com Instalace Cookbook Gems:ubuntubox3.com Kompilace kuchařek...ubuntubox3.com [2019-06-03T14:01:44+04:00] VAROVÁNÍ:Uzel chef-client-node má prázdný run list.ubuntubox3 .com Converging 0 resourcesubuntubox3.comubuntubox3.com Running handlers:ubuntubox3.com Running handlers completeubuntubox3.com Chef Client dokončen, 0/0 zdroje aktualizovány za 05 sekund Potvrďte, že uzel byl bootstrapován uvedením klienta nodes:root@ubuntubox2:~/ chef-repo/.chef# 

Potvrďte, že uzel byl úspěšně zaveden, uvedením uzlů:

root@ubuntubox2:~/chef-repo/.chef# uzel nože listchef-client-noderoot@ubuntubox2:~/chef-repo/.chef# uzel nože show chef-client-nodeNode Name:chef-client-nodeEnvironment :_defaultFQDN:ubuntubox3.comIP:192.168.1.107Spustit seznam:Role:Recepty:Platforma:ubuntu 18.04Značky:

Závěr

V tomto podrobném článku jsme se dozvěděli o nástroji Chef Configuration Management s jeho základním pochopením a přehledem jeho součástí s nastavením instalace a konfigurace. Více o Chefovi se můžete dozvědět na webových stránkách Chef, tj. https://www.chef.io/


Ubuntu
  1. Jak nainstalovat NTP server a klienta na Ubuntu 18.04 LTS

  2. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  3. Jak nainstalovat klienta a server NFS na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Nainstalujte UrBackup Server a klienta na Ubuntu 20.04 - Jak na to?

  3. Nainstalujte vnc server a klienta na Ubuntu

  1. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04