GNU/Linux >> Znalost Linux >  >> Cent OS

Vytvořte si jednoduché kuchařské knihy pro správu vaší infrastruktury CentOS / RHEL

Kuchařky jsou jednou z důležitých součástí systému správy konfigurace Chef; umožňuje nám konfigurovat a provádět specializované úkoly (vytlačit změny) na vzdálených uzlech šéfkuchaře.

V této příručce vytvoříme kuchařky a poté řekneme šéfkuchaři, aby je posunul, tj. provedl kroky popsané v kuchařce do uzlů.

Tato příručka předpokládá, že máte funkční prostředí šéfkuchaře, které zahrnuje server, pracovní stanici a alespoň jeden uzel, do kterého se budou odesílat změny konfigurace.

ČTĚTE: Jak nastavit Chef 12 na CentOS 7 / RHEL 7

Kuchařka:

Chef Cookbooks je jednotka, která uchovává podrobnosti o konfiguraci a zásadách pro uvedení uzlu do určitého stavu. Kuchařky se vytvářejí na pracovní stanici a poté se nahrávají na server Chef. Kuchařka je pak přiřazena k uzlům „run-list“, což je sekvenční seznam akcí, které mají být spuštěny na uzlu, aby se uzel dostal do požadovaného stavu.

Vytvořte si jednoduché kuchařské knihy:

V této části vytvoříme jednoduchou kuchařku k instalaci a konfiguraci webového serveru Apache.

PŘEČTĚTE SI:Konfigurace LAMP na CentOS 7 / RHEL 7

Přihlaste se do své pracovní stanice Chef, přejděte do ~/chef-repo/cookbooks adresář.

cd ~/chef-repo/cookbooks/

Vytvořte kuchařku s názvem „httpd “. Nahraďte „httpd “, pokud to chcete pojmenovat jinak.

chef generate cookbook httpd

Výstup:

Generating cookbook httpd
- Ensuring correct cookbook file content
- Ensuring delivery configuration
- Ensuring correct delivery build cookbook content

Your cookbook is ready. Type `cd httpd` to enter it.

There are several commands you can run to get started locally developing and testing your cookbook.
Type `delivery local --help` to see a full list.

Why not start by writing a test? Tests for the default recipe are stored at:

test/recipes/default_test.rb

If you'd prefer to dive right in, the default recipe can be found at:

recipes/default.rb

Přejděte do adresáře své nově vytvořené kuchařky, tj. httpd .

cd httpd

Když přejdete do adresáře nové kuchařky, uvidíte v něm níže uvedenou strukturu adresářů.

Výstup:

-rw-r--r--. 1 root root   47 Nov 12 21:18 Berksfile
-rw-r--r--. 1 root root 1133 Nov 12 21:18 chefignore
-rw-r--r--. 1 root root  568 Nov 12 21:18 metadata.rb
-rw-r--r--. 1 root root   53 Nov 12 21:18 README.md
drwxr-xr-x. 2 root root   23 Nov 12 21:18 recipes
drwxr-xr-x. 3 root root   38 Nov 12 21:18 spec
drwxr-xr-x. 3 root root   20 Nov 12 21:18 test

Recept:

Recept se skládá ze série zdrojů, které definují stav konkrétní služby nebo aplikace, například jeden zdroj může říkat „služba NTP by měla být spuštěna“, jiný může říkat „služba telnet by měla být zastavena“

Recept není omezen pouze na správu služeb; lze jej také použít k provádění příkazů, správě uživatelů a mnohem více.

ČTĚTE:Různé typy zdrojů.

Přejděte do adresáře receptů. Zde můžete vidět soubor s názvem „default.rb “. Tento soubor použijeme k přidání prostředků, které jsou nutné pro spuštění serveru Apache.

cd recipes
cat default.rb

Výstup:

Ve výchozím nastavení má soubor řádky záhlaví.

#
# Cookbook Name:: httpd
# Recipe:: default
#
# Copyright (c) 2016 The Authors, All Rights Reserved.

Instalovat Apache:

Pro začátek přidáme zdroj pro instalaci balíčku Apache.

package 'httpd' do
  action :install
end

Kde,

balíček – Definuje zdroj balíčku

httpd –  Název balíčku, který chcete nainstalovat, by měl být legitimní název balíčku.

akce:instalace –  Toto určuje akci pro zdroj „balíček “, v našem případě instalace httpd .

Když tento recept běží na uzlu, šéfkuchař zkontroluje, zda je nainstalován Apache, pokud ano, přeskočí tento prostředek a přejde k dalšímu prostředku. Pokud ne, nainstaluje Apache pomocí instalačního programu systému.

Správa služby Apache:

Dále zajistěte, aby se služba Apache spouštěla ​​automaticky při startu systému a také by služba měla být v provozu. Níže uvedený kód dělá to, co požadujeme.

service 'httpd' do
  action [ :enable, :start ]
end

Kde,

služba – Definuje zdroj služby.

httpd –  Název služby by měl být legitimním názvem služby.

akce [ :enable, :start ] – Zadejte akce, které chcete provést. V našem případě bude tento zdroj začínat „httpd “ a povolte jej při spuštění.

Indexový soubor:

Naším dalším zdrojem je umístění index.html soubor v kořenovém adresáři dokumentů serveru Apache. Vše, co potřebujete, abyste určili umístění, kam chcete soubor a odkud soubor získat.

cookbook_file "/var/www/html/index.html" do
  source "index.html"
  mode "0644"
end

Kde,

soubor_kuchařky – Zdroj pro přenos souborů z podadresáře httpd/files ke zmíněné cestě umístěné na uzlu šéfkuchaře.

zdroj – Zadejte název zdrojového souboru. Soubory se obvykle nacházejí v COOK_BOOKS/files .

režimu – Nastaví oprávnění pro soubor.

Vytvoření indexového souboru:

Protože jsme definovali „soubor_kuchařky ” potřebujeme vytvořit zdrojový soubor “index.html ” uvnitř souborů podadresář vaší kuchařky.

cd ~/chef-repo/cookbooks

Vytvořte podadresář „files “ pod vaší kuchařkou.

mkdir httpd/files

Přidejte jednoduchý text do index.html .

echo "Installed and Setup Using Chef" > httpd/files/index.html

Firewall:

Naším posledním prostředkem bude konfigurace brány firewall tak, aby umožňovala http a https provoz z externích strojů.

execute 'httpd_firewall' do
  command '/usr/bin/firewall-cmd  --permanent --zone public --add-service http'
  ignore_failure true
end

execute 'reload_firewall' do
  command '/usr/bin/firewall-cmd --reload'
  ignore_failure true
end

Kde,

provést – Zdroj pro spuštění jednoho příkazu.

příkaz – Definuje skutečný příkaz, který chcete na uzlu spustit.

ignore_failure – Pokračujte ve spouštění receptu, i když zdroj z jakéhokoli důvodu selže, bude to užitečné, když systém nemá povolenou bránu firewallD.

Konečná verze default.rb bude vypadat níže.

vi ~chef-repo/cookbooks/httpd/recpies/default.rb

Výstup:

#
# Cookbook Name:: httpd
# Recipe:: default
#
# Copyright (c) 2016 The Authors, All Rights Reserved.

package 'httpd' do
  action :install
end

service 'httpd' do
  action [ :enable, :start ]
end

cookbook_file "/var/www/html/index.html" do
  source "index.html"
  mode "0644"
end

execute 'httpd_firewall' do
  command '/usr/bin/firewall-cmd  --permanent --zone public --add-service http'
  ignore_failure true
end

execute 'reload_firewall' do
  command '/usr/bin/firewall-cmd --reload'
  ignore_failure true
end

Nahrát kuchařku:

Jakmile bude vaše kuchařka hotová, můžete ji nahrát na server Chef.

knife cookbook upload httpd

Výstup:

Uploading httpd        [0.1.0]
Uploaded 1 cookbook.

Zkontrolujte, zda můžete uvést kuchařku, kterou jste právě nahráli.

knife cookbook list

Výstup:

httpd   0.1.0

Chcete-li kuchařku odebrat (volitelné ).

knife cookbook delete cookbook_name

Přidejte kuchařku do svého uzlu:

Kuchařku můžete přidat dorun_list konkrétního uzlu pomocí následujícího příkazu. Nahraďte chefclient.itzgeek.local s názvem vašeho klientského uzlu.

knife node run_list add chefclient.itzgeek.local httpd

Výstup:

chefclient.itzgeek.local:
  run_list: recipe[httpd]

Chcete-li odebrat konkrétní recept ze seznamu run_list (volitelné ).

knife node run_list remove chefclient.itzgeek.local recipe[cookbook_name]

Načítání konfigurace:

Přihlaste se do klientského uzlu, kde běží klientský software Chef.

ČTĚTE:Zavedení nového uzlu pomocí nože

Spusťte klienta šéfkuchaře příkaz na klientském uzlu, abyste na serveru Chef zkontrolovali jakýkoli nový run_list a spusťte tyto run_list která mu byla přiřazena.

chef-client

Výstup:

Starting Chef Client, version 12.16.42
resolving cookbooks for run list: ["httpd"]
Synchronizing Cookbooks:
  - httpd (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 5 resources
Recipe: httpd::default
  * yum_package[httpd] action install
    - install version 2.4.6-40.el7.centos.4 of package httpd
  * service[httpd] action enable
    - enable service service[httpd]
  * service[httpd] action start
    - start service service[httpd]
  * cookbook_file[/var/www/html/index.html] action create (up to date)
  * execute[httpd_firewall] action run
    - execute /usr/bin/firewall-cmd  --permanent --zone public --add-service http
  * execute[reload_firewall] action run
    - execute /usr/bin/firewall-cmd --reload

Running handlers:
Running handlers complete
Chef Client finished, 5/6 resources updated in 24 seconds

To, že to funguje, můžete ověřit návštěvou IP adresy nebo názvu domény vašeho uzlu ve webovém prohlížeči.

http://your-ip-addr-ess/

Výstup:

Doplňky:

Šéfkuchařka pro vytvoření uživatele:

K vytvoření nového uživatele můžete použít následující kuchařku. Nahraďte zelenou hodnoty podle vašeho prostředí.

group "raj" do
  gid 9999
end


user 'raj' do
  comment 'Admin [at] ITzGeek'
  uid '9999'
  gid '9999'
  manage_home true
  home '/home/raj'
  shell '/bin/bash'
  password '$6$89lC6OcN$xGO/4ia1j8YXY5TytLFccCjeITSCkgCgQbFMloF4O/kUWFOWhQBH5/BavEkvMj.0fuGx1pMxoUkKF6s9Tpnoj/'
end

To je vše.


Cent OS
  1. Monitorujte a spravujte své služby pomocí Monit na CentOS 6 / RHEL 6

  2. Jak vytvořit a povolit Swap Partition na Centos / RHEL 8

  3. Jak vytvořit úložiště yum v CentOS/RHEL

  1. Jak vytvořit soubor Kickstart pro CentOS/Fedora/RedHat (RHEL)

  2. Jak vytvořit síťový most na CentOS 7 / RHEL 7

  3. CentOS / RHEL :Jak vytvořit a hostovat úložiště yum přes httpd

  1. Jak vytvořit nový /bootový oddíl v CentOS / RHEL

  2. Jak vytvořit síťový most pod CentOS/RHEL

  3. Jak vytvořit banner SSH na serveru CentOS/RHEL