Ինչպես տեղադրել Chef Infra սերվերը Debian 12-ում


Այս էջում

  1. Նախադրյալներ
  2. FQDN-ի կարգավորում
  3. Սերվերների միջև ժամանակի համաժամացում

    1. Chrony-ի կարգավորումը խոհարարի սերվերում
    2. Շեֆ-խոհարարի աշխատակայանի և հաճախորդի վրա
  4. Խոհարարի սերվերի տեղադրում և կարգավորում

    1. Խոհարարի սերվերի տեղադրում DEB-ի միջոցով
    2. Օգտագործողի և կազմակերպության կազմաձևում
  5. Chef Workstation-ի տեղադրում և կարգավորում

    1. Chef Workstation-ի տեղադրում DEB-ի միջոցով
    2. Խոհարարի աշխատանքային կայանի կարգավորում
  6. Կազմաձևում է Knife Utility - միջերեսը խոհարարի սերվերին
  7. Հաճախորդի/հանգույցի ուժեղացում՝ Chef Workstation-ից
  8. Եզրակացություն

Chef-ը Debian Linux-ի հզոր ավտոմատացման ծրագիր է, որը նախատեսված է լայնածավալ սերվերային միջավայրերը կառավարելու և կազմաձևելու համար: Այն հեշտացնում է հավելվածների և ենթակառուցվածքների տեղակայումը, կազմաձևումը և կառավարումը` օգտագործելով կոդ, խթանելով ենթակառուցվածքը որպես կոդի (IaC) սկզբունքներ: Խոհարարը օգտագործում է տիրույթի հատուկ լեզու (DSL), որը գրված է Ruby-ով, որպեսզի սահմանի «բաղադրատոմսեր» և «խոհարարական գրքեր», որոնք նշում են, թե ինչպես պետք է կազմաձևվեն սերվերները: Սա թույլ է տալիս համակարգի ադմինիստրատորներին և DevOps թիմերին ավտոմատացնել կրկնվող առաջադրանքները, ապահովել հետևողականություն տարբեր միջավայրերում և հեշտությամբ մասշտաբավորել ենթակառուցվածքը: Խոհարարը աջակցում է ռեսուրսների և ինտեգրումների լայն շրջանակ՝ այն դարձնելով բազմակողմանի գործիք՝ Debian, Ubuntu Linux և այլ հարթակներում բարդ միջավայրերը կառավարելու համար:

Այս ձեռնարկում մենք քայլ առ քայլ ցույց կտանք ձեզ, թե ինչպես տեղադրել Chef Server-ը և Chef Workstation-ը Debian 12 սերվերների վրա:

Նախադրյալներ

Այս ուղեցույցը լրացնելու համար համոզվեք, որ ունեք հետևյալը.

  • 3 Debian 12 սերվեր:
  • Ոչ արմատական օգտվող, ադմինիստրատորի արտոնություններով:

FQDN-ի կարգավորում

Այս առաջին քայլում դուք կկազմաձևեք FQDN-ը (Լիովին որակավորված տիրույթի անունը) խոհարարի սերվերի, խոհարարի աշխատակայանի և հաճախորդի համար:

Գործարկեք հետևյալ hostnamectl հրամանը՝ յուրաքանչյուր սերվերի համար fqdn կարգավորելու համար:

sudo hostnamectl set-hostname chef.howtoforge.local
sudo hostnamectl set-hostname workstation.howtoforge.local
sudo hostnamectl set-hostname client.howtoforge.local

Բացեք /etc/hosts ֆայլը յուրաքանչյուր սերվերի վրա՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:

sudo nano /etc/hosts

Տեղադրեք հետևյալ կոնֆիգուրացիան և անպայման փոխեք մանրամասն IP հասցեն, հոսթի անունը և fqdn-ը ձեր կարգավորումներով:

192.168.5.15     chef.howtoforge.local     chef
192.168.5.20     workstation.howtoforge.local     workstation
192.168.5.21     client.howtoforge.local     client

Ավարտելուց հետո պահեք և փակեք ֆայլը:

Այժմ գործարկեք ստորև նշված հրամանը՝ համոզվելու համար, որ յուրաքանչյուր fqdn-ն ուղղված է սերվերի ճիշտ IP հասցեին:

sudo hostname -f
ping -c3 chef.howtoforge.local

Սերվերների միջև ժամանակի համաժամացում

FQDN-ը կարգավորելուց հետո դուք կհամոզվեք, որ յուրաքանչյուր սերվերի ժամանակի համաժամանակացում կա: Այս դեպքում, դուք կտեղադրեք NTP սերվերը Chef Server-ի վրա և կկարգավորեք Chef-ի աշխատանքային կայանը և հաճախորդը, որպեսզի միանան դրան:

Chrony-ի կարգավորումը խոհարարի սերվերում

Chef սերվերի վրա գործարկեք հետևյալ հրամանը՝ պահեստի փաթեթի ինդեքսը թարմացնելու և Chrony փաթեթը տեղադրելու համար։

sudo apt update
sudo apt install chrony -y

Chrony-ը տեղադրելուց հետո բացեք ֆայլը /etc/chrony/chrony.conf՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:

sudo nano /etc/chrony/chrony.conf

Տեղադրեք հետևյալ կոնֆիգուրացիան՝ լռելյայն NTP սերվերը սահմանելու համար: Համոզվեք, որ ընտրել եք ձեր սերվերի մոտակա գտնվելու վայրը, մանրամասների համար ստուգեք ntp.org կայքը:

Բացի այդ, դուք Chrony-ին կկարգավորեք Chef սերվերում որպես NTP սերվեր ինչպես Chef-ի աշխատակայանի, այնպես էլ հաճախորդների համար:

pool 0.nl.pool.ntp.org iburst
pool 1.nl.pool.ntp.org iburst
pool 2.nl.pool.ntp.org iburst
pool 3.nl.pool.ntp.org iburst
allow 192.168.5.0/24

Ավարտելուց հետո պահեք և փակեք ֆայլը:

Հաջորդը, գործարկեք հետևյալ հրամանը՝ լռելյայն ժամային գոտին կարգավորելու և NTP-ն ակտիվացնելու համար:

sudo timedatectl set-timezone Europe/Amsterdam
sudo timedatectl set-ntp true

Այնուհետև վերագործարկեք chrony ծառայությունը՝ փոփոխությունները կիրառելու համար:

sudo systemctl restart chrony

Վերջապես, ստուգեք NTP աղբյուրը, օգտագործելով ստորև նշված հրամանը:

chronyc sources

Դուք պետք է ստանաք հետևյալ արդյունքը.

Շեֆ-խոհարարի աշխատակայանի և հաճախորդի վրա

Այժմ տեղափոխվեք Chef-ի աշխատանքային կայան և հաճախորդի մեքենա: Այնուհետև գործարկեք հետևյալ հրամանը՝ պահեստը թարմացնելու և Chrnoy-ը երկու սերվերների վրա տեղադրելու համար։

sudo apt update
sudo apt install chrony -y

Դրանից հետո փոփոխեք Chrony կոնֆիգուրացիան /etc/chrony/chrony.conf՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:

sudo nano /etc/chrony/chrony.conf

Մեկնաբանեք լռելյայն NTP աղբյուրը՝ այն անջատելու համար, այնուհետև մուտքագրեք Chef սերվերի IP հասցեն որպես NTP սերվեր, ինչպես հետևյալը:

# default chrony
server 192.168.5.15 iburst

Ավարտելուց հետո պահեք և փակեք ֆայլը:

Հաջորդը, գործարկեք հետևյալ հրամանը՝ լռելյայն ժամային գոտին կարգավորելու և NTP-ն ակտիվացնելու համար:

sudo timedatectl set-timezone Europe/Amsterdam
sudo timedatectl set-ntp true

Այնուհետև վերագործարկեք Chrony ծառայությունը՝ ձեր փոփոխությունները կիրառելու համար:

sudo systemctl restart chrony

Վերջապես, ստուգեք NTP աղբյուրները ինչպես Chef-ի աշխատակայանում, այնպես էլ հաճախորդի վրա՝ օգտագործելով հետևյալ հրամանը:

chronyc sources

Դուք պետք է տեսնեք, որ ինչպես Chef-ի աշխատանքային կայանի, այնպես էլ հաճախորդի համար լռելյայն NTP աղբյուրը Chef սերվերն է, որն ունի 192.168.5.15 IP հասցե:

Խոհարարի սերվերի տեղադրում և կարգավորում

Այժմ, երբ դուք կարգավորել եք FQDN-ը և ժամանակի համաժամացումը սերվերների միջև, դուք պատրաստ եք տեղադրել Chef-ը: Նախ, դուք կտեղադրեք և կարգավորեք Chef Server-ը:

Chef Server-ը խոհարարի կենտրոնական էկոհամակարգ է, որը միացնում է յուրաքանչյուր մաս, այնպես որ նախ պետք է այն կարգավորել: Այս դեպքում մենք կօգտագործենք Chef Server-ը 8 ԳԲ օպերատիվ հիշողությամբ:

Խոհարարի սերվերի տեղադրում DEB-ի միջոցով

Տեղափոխեք խոհարարի սերվեր և գործարկեք ստորև նշված հրամանը, որպեսզի ներբեռնեք Chef սերվերի փաթեթը: Այս օրինակում դուք կօգտագործեք Chef 15-ը:

VERSION="15.7.0"
wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/22.04/chef-server-core_${VERSION}-1_amd64.deb

Այժմ տեղադրեք Chef սերվերը .deb ֆայլի միջոցով՝ օգտագործելով ստորև նշված հրամանը: Տեղադրումը կտևի մի քանի րոպե:

sudo apt install ./chef-server-core_*.deb

Տեղադրումն ավարտվելուց հետո դուք պետք է ստանաք «Շնորհակալություն Chef Infra Server-ը տեղադրելու համար» հաստատումը:

Հաջորդը, գործարկեք chef-server-ctl հրամանը ստորև՝ ձեր Chef Server-ի տեղադրումը վերակազմավորելու համար:

sudo chef-server-ctl reconfigure

Երբ հարցնում են, մուտքագրեք Y՝ խոհարարի արտոնագիրը հաստատելու համար:

Շեֆ-սերվերի սկզբնավորումը կսկսվի: Ավարտելուց հետո դուք պետք է ստանաք հաստատում, օրինակ՝ «Chef Infra Server Reconfigured»:

Օգտագործողի և կազմակերպության կազմաձևում

Այժմ, երբ դուք վերակազմավորել եք «Chef Server»-ը, դուք կստեղծեք օգտվող և կազմակերպություն ձեր Chef Server-ի տեղադրման վրա:

Ստեղծեք նոր գրացուցակ ~/.chef՝ օգտագործելով հետևյալ հրամանը:

mkdir -p ~/.chef

Այնուհետև ստեղծեք խոհարարի նոր օգտվող՝ օգտագործելով հետևյալ հրամանը: Այս օրինակում մենք կստեղծենք նոր օգտվող alice՝ գաղտնաբառով, և TLS վկայագիրը կպահվի ~/.chef/alice.pem հասցեում:

sudo chef-server-ctl user-create alice Alice Wonderland [email  'password' --filename ~/.chef/alice.pem

Այժմ ստեղծեք նոր կազմակերպություն՝ օգտագործելով ստորև նշված հրամանը: Համոզվեք, որ փոխում եք կազմակերպության անվանման մանրամասները, կապված օգտվողին և TLS վկայագրի ուղին:

sudo chef-server-ctl org-create hworgz 'HW Corp, Inc.' --association_user alice --filename ~/.chef/hworgz-validator.pem

Ամեն ինչ ավարտվելուց հետո ստուգեք ցուցակի օգտագործողն ու կազմակերպությունը Chef սերվերում՝ օգտագործելով ստորև նշված հրամանը:

sudo chef-server-ctl user-list
sudo chef-server-ctl org-list

Եթե ամեն ինչ լավ է ընթանում, դուք պետք է տեսնեք Chef Server-ը alice օգտագործողի և hworgz կազմակերպության հետ, ինչպես հետևյալը:

Բացի այդ, դուք կարող եք նաև ստուգել ստեղծված TLS վկայականները՝ օգտագործելով ստորև նշված հրամանը: Դուք պետք է տեսնեք alice.pem և hworgz-validator.pem վկայագրերը:

ls ~/.chef/

Այս պահին դուք ավարտել եք Chef Server-ի տեղադրումը:

Chef Workstation-ի տեղադրում և կարգավորում

Chef Server-ը տեղադրելուց հետո դուք կտեղադրեք Chef-ի աշխատանքային կայանը: Խոհարարի աշխատանքային կայանը հանգույց է, որը ադմինիստրատորները/օգտատերերն օգտագործում են խոհարարական գրքեր և բաղադրատոմսեր ստեղծելու և փորձարկելու համար:

Այս օրինակում դուք կտեղադրեք Chef աշխատանքային կայանը Debian 12 սերվերի վրա՝ 2 ԳԲ օպերատիվ հիշողությամբ:

Chef Workstation-ի տեղադրում DEB-ի միջոցով

Տեղափոխեք Chef-ի աշխատանքային կայան և գործարկեք ստորև նշված հրամանը՝ Chef-ի աշխատանքային կայանի փաթեթը ներբեռնելու համար՝ օգտագործելով ստորև նշված wget հրամանը: Այս դեպքում դուք կտեղադրեք Chef Workstation 23:

VERSION="23.7.1042"
wget https://packages.chef.io/files/stable/chef-workstation/${VERSION}/debian/11/chef-workstation_${VERSION}-1_amd64.deb

Ներբեռնվելուց հետո գործարկեք հետևյալ հրամանը՝ «Chef» աշխատանքային կայանի փաթեթը ձեր համակարգում տեղադրելու համար:

sudo apt install ./chef-workstation_*.deb

Ավարտելուց հետո դուք պետք է ստանաք հաստատումը «Շնորհակալություն Chef Workstation-ը տեղադրելու համար»:

Ի վերջո, գործարկեք ստորև նշված հրամանը, ստուգելու համար Chef տարբերակը:

chef -v

Հետևյալ արդյունքը հաստատում է, որ դուք տեղադրել եք Chef 23 ձեր Debian սերվերի վրա:

Խոհարարի աշխատանքային կայանի կարգավորում

Այժմ, երբ դուք տեղադրել եք Chef-ի աշխատանքային կայանը, հաջորդիվ կկարգավորեք ձեր տեղադրումը:

Նախ, ստեղծեք նոր SSH բանալի՝ օգտագործելով հետևյալ հրամանը. Մուտքագրեք, երբ ձեզ հուշում են, որ բանալիի համար ստեղծեք անցաբառ:

ssh-keygen -t ed25519

Այժմ գործարկեք ստորև նշված հրամանը՝ բանալին խոհարարի սերվեր բեռնելու համար chef.howtoforge.local: Սա կօգտագործվի շեֆ-սերվերից դեպի աշխատանքային կայան TLS վկայականները ստանալու համար:

ssh-copy-id [email 

Մուտքագրեք ձեր գաղտնաբառը, երբ ձեզ հարցնեն:

Հաջորդը, ստեղծեք նոր խոհարարի ռեպո՝ օգտագործելով ստորև նշված հրամանը: Այս օրինակում դուք կստեղծեք նոր Chef repo test-repo:

chef generate repo test-repo

Այժմ ստեղծեք նոր գրացուցակ ~/test-repo/.chef և տեղափոխվեք այնտեղ:

mkdir ~/test-repo/.chef; cd ~/test-repo/.chef

Պատճենեք TLS վկայագրերը Chef Server-ից դեպի Workstation ընթացիկ գրացուցակում, օգտագործելով ստորև նշված հրամանը:

scp [email :~/.chef/*.pem .

Ավարտելուց հետո ստուգեք ֆայլերի ցանկը ~/test-repo/.chef գրացուցակում:

ls ~/test-repo/.chef/

Համոզվեք, որ ձեր TLS վկայականները հասանելի են Chef-ի աշխատանքային կայանի սերվերում:

Կազմաձևում է Knife Utility - միջերեսը խոհարարի սերվերին

Այժմ, երբ տեղադրեցիք Chef-ի աշխատանքային կայանը, դուք կկազմաձևեք Դանակը ձեր Chef-ի աշխատակայանում: Դանակը հրամանի տող գործիք է շեֆ-սերվերի հետ շփվելու համար, որը թույլ է տալիս կառավարել հանգույցները, խոհարարական գրքերը, բաղադրատոմսերը, դերերը և միջավայրերը:

Chef աշխատանքային կայանի մեքենայի վրա տեղափոխեք ~/test-repo/.chef գրացուցակ և ստեղծեք նոր ֆայլ knife.rb՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:

cd ~/test-repo/.chef
nano knife.rb

Տեղադրեք հետևյալ Ruby սկրիպտը և համոզվեք, որ փոխեք օգտվողի, կազմակերպությունների, TLS վկայագրի ֆայլերի և Chef Server URL-ի տվյալները:

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

Ավարտելուց հետո պահեք և փակեք ֆայլը:

Այժմ տեղափոխվեք ~/test-repo գրացուցակ և ստացեք վկայականներ Chef Server-ից՝ օգտագործելով ստորև բերված դանակի հրամանը:

cd ~/test-repo
knife ssl fetch

Ավարտելուց հետո դուք պետք է ստանաք հետևյալ արդյունքը.

Այսուհետ, դուք կարող եք օգտագործել դանակը շփվելու Chef Server-ի և bootstrap հաճախորդի մեքենայի հետ:

knife client list

Հաճախորդի/հանգույցի ուժեղացում՝ Chef Workstation-ից

Հետևյալ բաժնում դուք կսովորեք, թե ինչպես օգտագործել Դանակը 192.168.5.21 հանգույցը ավտոմատ կերպով SSH-ի միջոցով բեռնաթափելու համար Chef-ի աշխատանքային կայանից:

Նախ, անցեք ~/test-repo/.chef գրացուցակ:

cd ~/test-repo/.chef

Գործարկեք ստորև բերված դանակի հրամանը՝ հաճախորդը բեռնաթափելու համար 192.168.5.21: Համոզվեք, որ փոխեք օգտվողի արմատը և գաղտնաբառը գաղտնաբառը ձեր տեղեկություններով:

Այս օրինակում դուք կավելացնեք 192.168.5.21 հանգույցը և անվանեք այն որպես հաճախորդ:

knife bootstrap 192.168.5.21 -U root -P password --node-name client

Մուտքագրեք Y՝ գործընթացը շարունակելու և շարունակելու համար:

Ավարտելուց հետո դուք պետք է ստանաք «Ինֆրա փուլն ավարտված է» հաստատումը:

Այժմ ստուգեք Chef միջավայրում առկա հանգույցների ցանկը՝ օգտագործելով ստորև նշված հրամանը: Եթե ամեն ինչ լավ է ընթանում, դուք պետք է տեսնեք, որ հաճախորդի հանգույցը հասանելի է:

knife node list

Այնուհետև ստուգեք հաճախորդի հանգույցի մանրամասները՝ օգտագործելով ստորև բերված դանակի հրամանը:

knife node show client

Հետևյալ ելքում դուք կարող եք տեսնել հաճախորդի հանգույցը Debian 12 մեքենան FQDN client.howtoforge.local-ով:

Վերջապես, այժմ կարող եք կամայական հրամաններ գործարկել հաճախորդի հանգույցի վրա ստորև բերված դանակի հրամանի միջոցով:

knife ssh "client" "whoami;top" -u alice

Մուտքագրեք խոհարարի գաղտնաբառը alice-ի համար, երբ ձեզ հուշեն: Եթե հրամանը հաջողված է, դուք պետք է ստանաք հետևյալը.

Եզրակացություն

Շնորհավորում եմ: Դուք այժմ ավարտել եք Debian 12 սերվերների վրա Chef Server-ի և Workstation-ի տեղադրումը: Դուք նաև սովորել եք օգտագործել Knife հրամանի տող գործիքը՝ SSH-ի միջոցով հաճախորդի հանգույցները բեռնելու համար: Հիմա. Դուք կարող եք ավելացնել նոր Client հանգույցներ և ստեղծել խոհարարական գրքեր և բաղադրատոմսեր հավելվածների տեղադրման համար: