මාස්ටර් ඔෆ් රූකඩ: රූකඩ දුරස්ථ වින්‍යාස කළමනාකරණ පද්ධතිය ස්ථාපනය කිරීම සහ වින්‍යාස කිරීම. රූකඩවල ප්‍රධානියා: රූකඩ දුරස්ථ වින්‍යාස කළමනාකරණ පද්ධතිය ස්ථාපනය කිරීම සහ වින්‍යාස කිරීම රූකඩ ස්ථාපනය කිරීම

Puppet වඩාත් ඵලදායී ලෙස භාවිතා කිරීම සඳහා, ඔබ මොඩියුල සහ ප්‍රකාශන ගොඩනගා ඇති ආකාරය තේරුම් ගත යුතුය. Ubuntu 14.04 සේවාදායකයක LAMP තොගයක් සැකසීමෙන් මෙම රූකඩ සංරචක ක්‍රියා කරන ආකාරය මෙම මාර්ගෝපදේශය ඔබට ගෙන යනු ඇත.

අවශ්යතා

  • රූකඩ ස්ථාපනය (මාස්ටර් සහ නියෝජිතයා). මේ ගැන වැඩි විස්තර -.
  • Puppet agent node එකක් සඳහා අවම වශයෙන් Ubuntu 14.04 අතථ්‍ය සේවාදායකයක් නිර්මාණය කිරීමේ හැකියාව.

රූකඩ කේතය මූලික කරුණු

සම්පත්

රූකඩ කේතය බොහෝ දුරට සම්පත් වලින් සමන්විත වේ. සම්පතක් යනු පද්ධතියේ තත්වය විස්තර කරන සහ එයට අවශ්‍ය වෙනස්කම් තීරණය කරන කේත කොටසකි. උදාහරණ වශයෙන්:

පරිශීලක ("මිචෙල්":
සහතික => පවතින,
id => "1000",
gid => "1000",
shell => "/bin/bash",
නිවස => "/home/mitchell"
}

සම්පත් ප්රකාශනය පහත ආකෘතිය ඇත:

resource_type("resource_name"
attribute => අගය
...
}

සියලුම රූකඩ සම්පත් වර්ග බැලීමට, විධානය ඇතුළත් කරන්න:

රූකඩ සම්පත් --වර්ග

මෙම මාර්ගෝපදේශය තුළ සම්පත් වර්ග ගැන තව දැනගන්න.

ප්‍රකාශන

මැනිෆෙස්ටය වාද්‍ය රචනයකි. .pp දිගුවක් සහිත රූකඩ වැඩසටහන් මැනිෆෙස්ට් ලෙස හැඳින්වේ. පෙරනිමි රූකඩ මැනිෆෙස්ටය /etc/puppet/manifests/site.pp වේ.

පංතිවල

ඕනෑම සාම්ප්‍රදායික ක්‍රමලේඛන භාෂාවක් මෙන්, වාද්‍ය වෘන්දයේ කොටස් සංවිධානය කිරීම සහ නැවත භාවිතා කිරීම සඳහා පන්ති වගකිව යුතුය.

පන්ති නිර්වචනයේ පන්තිය ක්‍රියා කරන ආකාරය විස්තර කරන කේත සමූහයක් අඩංගු වේ. ඔබ පන්තියක් නිර්වචනය කළ පසු, ඔබට එය මැනිෆෙස්ට් වල භාවිතා කළ හැක.

පන්ති අර්ථ දැක්වීමට පහත ආකෘතිය ඇත:

පන්තිය උදාහරණ_පන්තිය(
...
කේතය
...
}

මෙම කේතය class example_class නිර්වචනය කරයි. රූකඩ කේතය රැලි සහිත වරහන් තුළ ඇත.

පන්ති ප්‍රකාශයක් යනු කිසියම් පන්තියක් හැඳින්වෙන කේතයේ ස්ථානයයි. පන්තියක් ප්‍රකාශ කිරීමෙන්, රූකඩ එහි කේතය සකසයි.

පන්ති ප්‍රකාශය සාමාන්‍ය සහ සම්පත් වර්ගය අනුව ය.

ඇතුළත් මූල පදය භාවිතයෙන් කේතයට සාමාන්‍ය පන්ති ප්‍රකාශයක් එක් කෙරේ.

උදාහරණ_පන්තිය ඇතුළත් වේ

සම්පත් වර්ගය අනුව ප්රකාශ කරන විට, පන්තිය සම්පත් ආකෘතියෙන් ප්රකාශ කරනු ලැබේ:

පන්තිය ("උදාහරණ_පන්තිය":)

එවැනි ප්‍රකාශයක් මඟින් පන්ති ගුණාංගවල පෙරනිමි අගයන් අභිබවා යන කේතයට පන්ති පරාමිති එක් කිරීමට ඔබට ඉඩ සලසයි. උදාහරණ වශයෙන්:

නෝඩය "සත්කාරක2" (
පන්තිය ("apache":) # apache මොඩියුලය භාවිතා කරන්න
apache::vhost( "example.com": # vhost සම්පත් නිර්වචනය කරන්න
වරාය => "80",
docroot => "/var/www/html"
}
}

මොඩියුල

මොඩියුලයක් යනු වාද්‍ය වෘන්දයක තනි කොටස් බෙදා ගැනීමට සහ නැවත භාවිතා කිරීමට පහසු වන පරිදි කලින් තීරණය කරන ලද ආකාරයට සංවිධානය කරන ලද මැනිෆෙස්ට් සහ අනෙකුත් ගොනු සමූහයකි. මොඩියුල ඔබේ රූකඩ කේතය සංවිධානය කිරීමට උදවු කරන්නේ ඒවා කේත බහු මැනිෆෙස්ට වලට වෙන් කිරීමට භාවිත කළ හැකි බැවිනි.

රූකඩ මොඩියුල /etc/puppet/modules බහලුම තුළ ගබඩා කර ඇත.

ප්රකාශනය ලිවීම

උබුන්ටු සේවාදායකයක් මත LAMP තොගයක් ස්ථාපනය කිරීමේ උදාහරණය භාවිතා කරමින් ඔබට රූකඩ මැනිෆෙස්ට්, මොඩියුල සහ පන්ති ලිවීමට පුරුදු විය හැකිය (ප්‍රතිඵලය වනු ඇත ).

එබැවින්, Ubuntu 14.04 සේවාදායකයක් සංවිධානය කිරීමට සහ එය මත LAMP තොගය ස්ථාපනය කිරීමට, පහත සඳහන් දේ කිරීමට ඔබට සම්පත් අවශ්‍ය වේ:

  • apache2 පැකේජය ස්ථාපනය කරමින්.
  • apache2 සේවාව ආරම්භ කරන්න.
  • පැකේජ ස්ථාපනය MySQL සේවාදායකයන්, mysql-server.
  • mysql සේවාව ආරම්භ කරන්න.
  • php5 පැකේජ ස්ථාපනය
  • PHP පරීක්ෂණ පිටපතක් නිර්මාණය කිරීම, info.php.
  • එක් එක් පැකේජය ස්ථාපනය කිරීමට පෙර apt දර්ශකය යාවත්කාලීන කිරීම.

LAMP තොගයේ මෙම සැකසුම සාක්ෂාත් කර ගැනීම සඳහා භාවිතා කළ හැකි රූකඩ කේත උදාහරණ තුනක් ඔබට පහතින් හමුවනු ඇත.

පළමු උදාහරණය මඟින් එක් ගොනුවක මූලික මැනිෆෙස්ට් ලියන්නේ කෙසේදැයි ඔබට උගන්වනු ඇත. දෙවන උදාහරණය ඔබට කලින් ලියා ඇති ප්‍රකාශන මත පදනම්ව පන්තියක් සහ මොඩියුලයක් තැනීමට සහ භාවිතා කිරීමට උපකාරී වේ. තුන්වන උදාහරණයෙන්, ඔබ LAMP තොගයක් ස්ථාපනය කිරීමට පෙර-සාදන ලද පොදු මොඩියුල භාවිතා කරන්නේ කෙසේදැයි ඉගෙන ගනු ඇත.

සටහන: පරීක්ෂා කිරීම සඳහා, නැවුම් අථත්ය සේවාදායකයක් භාවිතා කිරීම වඩා හොඳය.

උදාහරණ 1: තනි මැනිෆෙස්ටයක් සමඟ LAMP ස්ථාපනය කිරීම

රූකඩ මැනිෆෙස්ටයක් නියෝජිත නෝඩයක ලියා පසුව රූකඩ අයදුම් කිරීමේ විධානය සමඟ ක්‍රියාත්මක කළ හැකිය (මේ සඳහා ප්‍රධාන සහ නියෝජිතයෙකු ස්ථාපනය කිරීම අවශ්‍ය නොවේ).

මෙම කොටසේදී, ඔබ මෙම ආකාරයේ සම්පත් ප්‍රකාශයන් භාවිතා කරන මැනිෆෙස්ට ලියන්නේ කෙසේදැයි ඉගෙන ගනු ඇත:

  • exec: විධාන ක්‍රියාත්මක කරන්න.
  • පැකේජය: පැකේජ ස්ථාපනය කරන්න.
  • සේවාව: සේවා කළමනාකරණය.
  • ගොනුව: ගොනු කළමනාකරණය.

මැනිෆෙස්ටයක් සාදන්න

නව මැනිෆෙස්ටයක් සාදන්න:

sudo vi /etc/puppet/manifests/lamp.pp

අවශ්‍ය සම්පත් ප්‍රකාශ කිරීමට පහත කේතය එයට එක් කරන්න.

# "apt-get update" විධානය ක්‍රියාත්මක කරන්න
exec("apt-update": # resource exec "apt-update"
command => "/usr/bin/apt-get update" # විධානය මෙම සම්පත ක්‍රියාත්මක වේ
}
# apache2 පැකේජය ස්ථාපනය කරන්න
පැකේජය ("apache2":
අවශ්‍ය => Exec["apt-update"], # පැකේජයක් ස්ථාපනය කිරීමට පෙර "apt-update" ඉල්ලන්න
සහතික කරන්න => ස්ථාපනය කර ඇත,
}
# apache2 සේවාව ආරම්භ කරන්න
සේවාව ("apache2":
සහතික => ධාවනය,
}
# mysql-server ස්ථාපනය කරන්න
පැකේජය ("mysql-server":
අවශ්‍ය => Exec["apt-update"], # ස්ථාපනය කිරීමට පෙර "apt-update" ඉල්ලන්න
සහතික කරන්න => ස්ථාපනය කර ඇත,
}
# mysql සේවාව ආරම්භ කරන්න
සේවාව ("mysql":
සහතික => ධාවනය,
}
# php5 පැකේජය ස්ථාපනය කරන්න
පැකේජය ("php5":
අවශ්‍ය => Exec["apt-update"], # ස්ථාපනය කිරීමට පෙර "apt-update" ඉල්ලන්න
සහතික කරන්න => ස්ථාපනය කර ඇත,
}
# ආරම්භක සේවා info.php
ගොනුව("/var/www/html/info.php":
සහතික => ගොනුව
අන්තර්ගතය => "", # phpinfo කේතය
අවශ්‍ය => පැකේජය["apache2"], # ඉල්ලීම් පැකේජය "apache2"
}

මැනිෆෙස්ට් යෙදුම

නව මැනිෆෙස්ටය භාවිතා කිරීමට, විධානය ඇතුල් කරන්න:

sudo puppet apply --test

එය පරිසරයේ තත්ත්වයෙහි සියලු වෙනස්කම් පෙන්වන විශාල ප්‍රතිඵලයක් ප්‍රතිදානය කරනු ඇත. ප්‍රතිදානයේ දෝෂ නොමැති නම්, ඔබට ඔබගේ බාහිර IP ලිපිනය හෝ ඩොමේන් නාමය බ්‍රවුසරයක විවෘත කිරීමට හැකි විය යුතුය. තොග තොරතුරු සහිත PHP පරීක්ෂණ පිටුවක් තිරය මත දිස්වනු ඇත. මෙයින් අදහස් කරන්නේ Apache සහ PHP ක්‍රියාත්මක වන බවයි.

LAMP තොගය දැන් Puppet භාවිතයෙන් සේවාදායකයේ ස්ථාපනය කර ඇත.

නියෝජිතයා මත ක්‍රියාත්මක කළ හැකි බැවින් මෙය තරමක් සරල ප්‍රකාශනයකි. ඔබට Puppet master නොමැති නම්, වෙනත් නියෝජිත නෝඩ් වලට මෙම මැනිෆෙස්ටය භාවිතා කිරීමට නොහැකි වනු ඇත.

රූකඩ ප්‍රධාන සේවාදායකය සෑම විනාඩි 30කට වරක්ම සේවාදායක තත්ත්වය වෙනස්වීම් සඳහා පරීක්ෂා කරයි.

උදාහරණ 2: මොඩියුලයක් භාවිතයෙන් LAMP තොගයක් ස්ථාපනය කිරීම

දැන් ඔබ පෙර කොටසේ ලියා ඇති LAMP මැනිෆෙස්ටය මත පදනම්ව සරල මොඩියුලයක් සෑදීමට උත්සාහ කරන්න.

මොඩියුලයක් නිර්මාණය කිරීම සඳහා, මොඩියුල නාමාවලියෙහි නව නාමාවලියක් සාදන්න (එහි නම මොඩියුලයේ නමට අනුරූප විය යුතුය). මෙම නාමාවලියෙහි මැනිෆෙස්ට් ඩිරෙක්ටරිය සහ init.pp ගොනුව අඩංගු විය යුතුය. init.pp ගොනුව රූකඩ පන්තිය නියම කරයි (එහි නම ද මොඩියුල නාමයට ගැළපිය යුතුය).

මොඩියුලයක් නිර්මාණය කිරීම

රූකඩ ප්‍රධාන සේවාදායකය වෙත ගොස් මොඩියුලය සඳහා නාමාවලි ව්‍යුහයක් සාදන්න:

cd /etc/puppet/modules
sudo mkdir -p ලාම්පුව/මනිෆෙස්ට්

සංස්කාරකයේ init.pp ගොනුව සාදා විවෘත කරන්න:

sudo vi lamp/manifests/init.pp

ලාම්පු පන්තිය ගොනුවට ඇතුළු කරන්න:

පන්ති ලාම්පුව (
}

මැනිෆෙස්ටයේ අන්තර්ගතය 1 කොටසින් පිටපත් කර එය ලාම්පු පන්තියේ බ්ලොක් එකට අලවන්න. ඔබට දැන් පහන් පන්තිය සඳහා අර්ථ දැක්වීමක් තිබේ. අනෙකුත් ප්‍රකාශනයන්ට මෙම පන්තිය මොඩියුලයක් ලෙස භාවිත කිරීමට හැකි වනු ඇත.

ගොනුව සුරකින්න සහ වසා දමන්න.

ප්‍රධාන මැනිෆෙස්ටයේ මොඩියුලයක් භාවිතා කිරීම

දැන් ඔබට ප්‍රධාන මැනිෆෙස්ටය සැකසිය හැකි අතර සේවාදායකයේ LAMP තොගය ස්ථාපනය කිරීමට ලාම්පු මොඩියුලය භාවිතා කරන්න.

ප්‍රධාන රූකඩ සේවාදායකයේ, පහත ගොනුව සංස්කරණය කරන්න:

sudo vi /etc/puppet/manifests/site.pp

බොහෝ විට මත මේ මොහොතේගොනුව හිස් ය. එයට පහත රේඛා එක් කරන්න:

node default()
නෝඩය "ලාම්පුව-1" (
}

සටහන: ඔබට තොගය ස්ථාපනය කිරීමට අවශ්‍ය ස්ථානයේ ඔබේ රූකඩ නියෝජිතයාගේ සත්කාරක නාමය සමඟ ලාම්පු-1 ප්‍රතිස්ථාපනය කරන්න.

නෝඩ් බ්ලොක් මඟින් ඔබට රූකඩ කේතය සඳහන් කිරීමට ඉඩ ලබා දෙන අතර එය ඇතැම් නෝඩ් සඳහා පමණක් අදාළ වේ.

පෙරනිමි බ්ලොක් එක තනි බ්ලොක් එකක් නොමැති සියලුම නියෝජිත නෝඩ් වලට අදාළ වේ (එය හිස්ව තබන්න). ලාම්පු-1 බ්ලොක් ලාම්පු-1 නියෝජිත නෝඩයට යොදනු ලැබේ.

ලාම්පු මොඩියුලය භාවිතා කරන මෙම කොටසට පහත පේළිය එක් කරන්න:

ගොනුව සුරකින්න සහ වසා දමන්න.

දැන් රූකඩ නියෝජිත නෝඩයට ප්‍රධාන සේවාදායකයෙන් සැකසුම් බාගත කර LAMP තොගය ස්ථාපනය කිරීමට හැකි වනු ඇත. ඔබට දැන් වෙනස්කම් කිරීමට අවශ්‍ය නම්, නියෝජිතයා මත පහත විධානය ක්‍රියාත්මක කරන්න:

sudo puppet agent --test

මොඩියුල යනු රූකඩ කේතය නැවත භාවිතා කිරීමට වඩාත් පහසු ක්‍රමයයි. ඊට අමතරව, ඔබේ කේතය තාර්කිකව සංවිධානය කිරීමට මොඩියුල ඔබට උපකාර කරයි.

උදාහරණ 3: පොදු මොඩියුල භාවිතයෙන් LAMP ස්ථාපනය කිරීම

MySQL මොඩියුලය සමාන ආකාරයකින් භාවිතා වේ. නෝඩ් බ්ලොක් එකට පහත රේඛා එක් කරන්න:

පන්තිය ("mysql::server":
root_password => "මුරපදය",
}

ඔබට MySQL මොඩියුල විකල්ප ද සමත් විය හැක.

info.php නිවැරදි ස්ථානයට පිටපත් කරන සම්පතක් එක් කරන්න. මූලාශ්ර පරාමිතිය භාවිතා කරන්න. නෝඩ් බ්ලොක් එකට පහත රේඛා එක් කරන්න:

ගොනුව ( "info.php": # සම්පත් ගොනු නාමය
මාර්ගය => "/var/www/html/info.php", # ඉලක්ක මාර්ගය
සහතික => ගොනුව
අවශ්‍ය => පන්තිය["apache"], # භාවිතා කිරීමට apache පන්තිය
මූලාශ්‍රය => "puppet:///modules/apache/info.php", # ගොනුව පිටපත් කළ යුතු ස්ථානය
}

මෙම පන්ති ප්‍රකාශය අන්තර්ගතය වෙනුවට මූලාශ්‍ර පරාමිතිය භාවිතා කරයි. මෙම විකල්පය ගොනුවේ අන්තර්ගතය පමණක් භාවිතා කරයි, නමුත් එය පිටපත් කරයි.

රූකඩ රූකඩය රූකඩ:///modules/apache/info.php ගොනුව /etc/puppet/modules/apache/files/info.php වෙත පිටපත් කරනු ඇත.

ගොනුව සුරකින්න සහ වසා දමන්න.

info.php ගොනුවක් සාදන්න.

sudo sh -c "echo""> /etc/puppet/modules/apache/files/info.php"

දැන් රූකඩ නියෝජිත නෝඩයට ප්‍රධාන සේවාදායකයෙන් සැකසුම් බාගත කර LAMP තොගය ස්ථාපනය කිරීමට හැකි වනු ඇත. ඔබට දැන් නියෝජිත පරිසරයට වෙනස්කම් කිරීමට අවශ්‍ය නම්, මෙම නෝඩයේ පහත විධානය ක්‍රියාත්මක කරන්න:

sudo puppet agent --test

මෙම විධානය වත්මන් නෝඩය සඳහා සියලුම යාවත්කාලීන බාගත කර එය මත තොගය ස්ථාපනය කරනු ඇත. Apache සහ PHP ක්‍රියාත්මක වන බව සහතික කර ගැනීමට, බ්‍රවුසරයක node හි IP ලිපිනය හෝ වසම විවෘත කරන්න:

http://lamp_1_public_IP/info.php

නිගමනය

ඔබට දැන් රූකඩ මොඩියුල සහ ප්‍රකාශන පිළිබඳ මූලික අවබෝධයක් ඇත. සරල මැනිෆෙස්ට් එකක් සාදා ඔබම මොඩියුලයක් සාදා ගැනීමට උත්සාහ කරන්න.

යෙදුම් වින්‍යාස ගොනු කළමනාකරණය සඳහා රූකඩ විශිෂ්ටයි.

Tags: ,
සමහර පද.සමස්ත චක්‍රයම මෙම ලිපියෙන් ආරම්භ විය යුතු බව පෙනේ, නමුත් තවමත් ඉලක්කගත ප්‍රේක්ෂකයින් Puppet Forge සමඟ තනි දුර්වල ලෙස ඒකාබද්ධ වූ මොඩියුලවලින් සෑහීමකට පත් නොවන Puppet Labs Open Source නිෂ්පාදනවල පළපුරුදු පරිශීලකයින් වේ. "පුස්තකාලය එදිරිව රාමුව" ඕනෑම අවස්ථාවකදී මෙන්, විපාකය වන්නේ ඒකාබද්ධ විසඳුමේ කතුවරයාගේ ලෝක දැක්ම අනුගමනය කිරීමයි.

Puppet වැඩ කරන ආකාරය ගැන ටිකක්

රූකඩය මූලික වශයෙන් පද්ධතියක අවසාන තත්ත්වය ප්‍රකාශනාත්මකව සඳහන් කිරීම සඳහා විශේෂිත භාෂාවකි. සංසන්දනය කිරීම සඳහා, GNU Makefile අතිශයින්ම සුදුසු ය, එහිදී, යැපීම් පිළිබඳ සෘජු විස්තරයට අමතරව, එය උපරිම ලෙස වංචා කළ හැකිය.

රූකඩ සාරාංශය දළ වශයෙන් පහත පරිදි වේ ( රටා බිඳීම - ක්‍රමලේඛනයේ නියමයන් ගැන ඔබ දැන සිටි සියල්ල අමතක කරන්න!).

  • නෝඩයවිශේෂිත ඉලක්ක පද්ධතියක් සඳහා වූ වින්‍යාස එකතුවකි. ඇත්ත වශයෙන්ම, මෙය පන්තියේ විශේෂ අවස්ථාවක්.
  • පන්තියධාරක වින්‍යාසය හෝ වෙනත් පන්තිවල ඇතුළත් ප්‍රකාශන තර්ක සමූහයකි. පන්තියට අවස්ථා හෝ ක්‍රම නොමැත, නමුත් තර්කය තුළ අර්ථ දක්වා ඇති පරාමිති සහ විචල්‍යයන් ඇත. ඇත්ත වශයෙන්ම, එය ඉතා සුළු කේත ගොඩනැගීමක් සහ විචල්‍යයන්ගේ තරමක් සාමාන්‍ය විෂය පථයක් සහිත වෙනත් ක්‍රියා පටිපාටියක් උරුම කර ගත හැකි ක්‍රියා පටිපාටියකි.
  • වර්ගය- නමුත් මෙය දැනටමත් සම්භාව්‍ය පන්තියක් මෙන් පෙනේ - එය නමක් සහිත අවස්ථා උපකල්පනය කරයි ලබා දී ඇති පරාමිතීන්, නමුත් තවත් කිසිවක් නැත. නිශ්චිත ආකාරයේ ක්‍රියාත්මක කිරීමක් නිර්වචනය හරහා රූබි ස්ක්‍රිප්ට් එකක් ලෙස ලිවිය හැකිය, එය වෙනත් වර්ගවල අවස්ථා නිර්මාණය කරයි, නැතහොත් විසිතුරු පියාසැරියක් සහිත රූබි දිගුවක් ලෙස.
  • සම්පත- ඇත්ත වශයෙන්ම, මේවා වර්ගවල අවස්ථා ලෙස නම් කර ඇත. එක් එක් සම්පතෙහි නම නෝඩ් (ඩිරෙක්ටරි) වින්‍යාසය තුළ විශේෂිත වර්ගයක් තුළ අනන්‍ය වේ.
  • විචල්යයන්- හොඳයි, කෙටියෙන් කිවහොත්, මේවා නියතයන් වේ ... රූකඩ 4 ට පෙර, ඔවුන්ගේ විෂය පථය තවමත් නරක විය. දැන් එය ප්රමාණවත්ය: නිර්වචන ස්ථානයෙන් පිටත සිට භාවිතා කිරීම සඳහා, පන්ති උරුමය හැරුණු විට, සම්පූර්ණ සුදුසුකම් ලත් හඳුනාගැනීමක් අවශ්ය වේ.
ජාලයක් හෝ අදාළ යටිතල පහසුකම් නොමැතිව දේශීය යෙදවීම සඳහා රූකඩ භාවිතා කළ හැක. මෙය බහාලුම් රූප නිර්මාණය කිරීමට භාවිතා කළ හැක. මධ්යගත සේවාදායකයක් ප්රතික්ෂේප කිරීම සඳහා නීතිඥයින්ගේ සමස්ත ප්රවණතාවයක් පවා පවතී.

දෘෂ්ටිවාදාත්මකව නිවැරදි ආකාරයෙන්, රූකඩ යටිතල පහසුකම් නියෝජිතයෙකුගෙන් සමන්විත වේ - ඉලක්ක පද්ධතියෙහි වරප්‍රසාදිත සේවාවක් සහ නියෝජිතයින්ගේ ඉල්ලීම මත වටිනා උපදෙස් ප්‍රකාශන සම්පත් නාමාවලි ආකාරයෙන් බෙදා හරින සේවාදායකයකි. පුද්ගලික පොදු යතුරු යටිතල ව්‍යුහයක (X.509) මට්ටමේ ආරක්ෂාව ක්‍රියාත්මක කෙරේ. සරලව කිවහොත්, HTTPS හි ඇති යාන්ත්‍රණයම, නමුත් එහිම CA සහ අනිවාර්ය සත්‍යාපනය සමඟ සේවාදායක සහතිකය.

සරල කළ ආකාරයෙන්, යෙදවීමේ ක්රියා පටිපාටිය මේ වගේ දෙයක් පෙනේ:

  1. TLS සහ X.509 හරහා සැකසීම (සම්බන්ධතාවයක් ස්ථාපනය කිරීම, CRL යාවත්කාලීන කිරීම, සහතික සීමා කිරීම් පරීක්ෂා කිරීම, ආදිය)
  2. නියෝජිතයාට හැඹිලිගත කිරීම සහ සියලුම අවස්ථා සමඟ සේවාදායකයෙන් කරුණු උත්පාදක යන්ත්‍ර ලැබේ (වඩාත් නිවැරදිව, මොඩියුලවල ඇති lib/ ෆෝල්ඩර වලින් සියල්ල ඇද ගනු ලැබේ). උනන්දුවක් දක්වන තොරතුරු රැස් කිරීම සඳහා ඔබේම රූබි ස්ක්‍රිප්ට් එකතු කිරීම පහසුය.
  3. නියෝජිතයා ඉලක්ක පද්ධතිය පිළිබඳ කරුණු එකතු කර එය සේවාදායකයට යවයි. රූකඩ කරුණු ඇමතීමෙන් සියලුම කරුණු පහසුවෙන් අතින් සමාලෝචනය කළ හැක. මෙම කරුණු ගෝලීය විචල්‍යයන් ලෙස පවතී.
  4. සේවාදායකය සම්පත් ලැයිස්තුගත කර නියෝජිතයා වෙත යවයි. මෙයට යටින් විවිධ සංකල්පවල සම්පූර්ණ තට්ටුවක් ඇත.
  5. නියෝජිතයා සේවාදායකයෙන් අවශ්‍ය සියල්ල ඇදගෙන පද්ධතිය නියමිත පෝරමයට ගෙන එයි. ඒ අතරම, නියෝජිතයා විසින්ම සම්පත් සමඟ කටයුතු කරන්නේ කෙසේදැයි නොදනී, එය සපයන්නන් ක්‍රියාත්මක කිරීම මත රඳා පවතී "s (අර්ථාර්ථ පරිවර්තනය "විමෝචකය", සපයන්නා නොවේ) විශේෂිත සම්පත් වර්ග. සපයන්නන්ගේ කොටසක්" සම්මත වන අතර රූකඩ පැකේජවල ඇතුළත් කර ඇති අතර ඉතිරි ඒවා මොඩියුල වලින් ඇද ගනු ලැබේ.
සියලු රසයන් රස බැලීමට, අතිරේක බනිස් ස්වරූපයෙන් ඇත:
  • මොඩියුලය- declarative Puppet scripts එකතුවක්, Puppet සඳහා Ruby extensions, ගොනු, ගොනු සැකිලි, Hiera දත්ත, සහ තවත් දේ. වඩාත් නිවැරදි යෙදුම "පැකේජය" වනු ඇත.
  • පරිසරය- ස්ක්‍රිප්ට්, මොඩියුල සහ හීරා දත්ත එකතුවකි. යටිතල පහසුකම් සංකීර්ණ වීමත් සමඟම, නෝඩ් වලට සම්මත බෙදීමට වඩා වින්යාසය වෙන් කිරීම අනිවාර්යයෙන්ම අවශ්ය විය. මූලික වශයෙන්, මෙය නියමු නවෝත්පාදන සහ බානල් ප්‍රවේශ පාලනය සඳහා අවශ්‍ය වේ (සියලු පරිපාලකයින්ට තොරතුරු තාක්ෂණ යටිතල ව්‍යුහයේ සියලුම නෝඩ් වෙත ප්‍රවේශය නොමැති විට).
  • හීරා- ධූරාවලි දත්ත සමුදාය. මෙම වාක්‍ය ඛණ්ඩය ඉතා බිය උපදවන සුළු විය හැක. පසුකාලීන අනුවාද වල ලේඛනගත කිරීමේදී එය වෙනස් වූයේ මේ නිසා විය හැකිය. ඇත්ත වශයෙන්ම, මෙය YAML හෝ JSON ගොනු වලින් වින්‍යාස කිරීම සඳහා අතිශයින්ම සරල සහ පහසු යාන්ත්‍රණයකි. ධූරාවලිය සමන්විත වන්නේ බහුවිධ වින්‍යාස ගොනු කියවන අනුපිළිවෙල සැකසීමේ හැකියාවෙනි - i.e. මෙම ගොනු වල ධුරාවලිය/ප්‍රමුඛතාවය.
    • ශ්‍රිත ඇමතුමක දත්ත ඇද ගැනීමට අමතරව, Puppet විසින් පන්ති පරාමිති පෙරනිමියෙන් ඇද දමයි, එය ප්‍රධාන උද්දීපනය වේ.
    • ඇත්ත වශයෙන්ම, Hiera කරුණු මැදිහත්වීමට සහ විශේෂ කාර්යයන් ඇමතීමට පවා සහාය දක්වයි.
    • රූකඩ 4.3 හි, ගෝලීය දත්ත සමුදාය පමණක් නොව, පරිසරය සහ මොඩියුලය සඳහා දේශීය වශයෙන්ද සහය දැක්වීම සඳහා එම ක්‍රියාකාරිත්වය නැවත ක්‍රියාත්මක කරන ලදී, නමුත් ඒවා ක්‍රියාත්මක කිරීමේදී කතුවරයා දැනටමත් ගැටළු කිහිපයක් සොයාගෙන ඇත (PUP-5983, PUP-5952 සහ PUP- 5899), Puppet Labs විසින් ක්ෂණිකව සවි කරන ලදී.
    • ධූරාවලියක ඇති සියලුම ගොනු වලින් අගයක් ඇද ගැනීම සඳහා උපාය මාර්ග කිහිපයක් සහාය දක්වයි:
      • පළමු - ප්‍රමුඛතාවයෙන් සොයාගත් පළමු අගය ආපසු ලබා දෙනු ලැබේ
      • අද්විතීය - සියලුම අගයන් ඒක මාන අරාවකට එකතු කර අනුපිටපත් ඉවත් කරයි
      • hash - YAML Hash සොයාගත් සියල්ල සම්බන්ධ කරයි. අනුපිටපත් යතුරු තෝරා ගනු ලබන්නේ ප්‍රමුඛතාවයෙනි.
      • ගැඹුරු - අත්‍යවශ්‍යයෙන්ම හැෂ් හි පුනරාවර්තන අනුවාදයකි
    • අලංකාරය නම්, බැලීම() ශ්‍රිතය ඇමතීමේ දී ලබා ගැනීමේ උපාය මාර්ගය සැකසිය හැකි බැවිනි සහ cfnetwork මොඩියුලයේ සක්‍රියව භාවිතා කරන විශේෂ lookup_options යතුර හරහා ඕනෑම ධුරාවලියක ගොනුවක්.
  • රූකඩ ඩී.බී- ඇත්ත වශයෙන්ම, සම්බන්ධක දත්ත සමුදායක් (PostgreSQL) වටා ඇති ව්‍යාපාරික තාර්කික ස්ථරයක්, එමඟින් ඔබට කරුණු සහ යෙදවීම් පිළිබඳ වාර්තා සුරැකීමට සහ වෙනත් නෝඩ් වල නාමාවලි වෙත පසුව ආයාත කිරීම සඳහා සම්පත් අපනයනය කිරීමට ඉඩ සලසයි. විශේෂ කාර්යයන්. Puppet Dashboard ආකාරයෙන් වෙබ් මුහුණුවරක්ද ඇත.
  • X.509 PKI- දැනටමත් සඳහන් කර ඇති සහතික යටිතල පහසුකම්, වෙනම යටිතල පහසුකම් කළමනාකරණය කිරීමකින් තොරව වෙනත් සේවාවන් සඳහා භාවිතා කිරීමට අතිශයින්ම පහසු වේ.
  • Mollective- සේවාදායක ගොවිපලක සිදුවීම් මත පදනම් වූ කාර්යයන් දියත් කිරීම සඳහා ප්‍රයෝජනවත් දෙයක් බව පෙනේ, නමුත් කතුවරයාට නිශ්චිත විසඳුමක ආරක්ෂාව පිළිබඳ යම් විශ්වාසයක් නොමැත.
  • රූකඩ ෆෝජ්- මොඩියුල ප්‍රකාශනය සහ බාගත කිරීම සඳහා විවෘත වේදිකාවක්.
  • පාලන ස්වරූපයෙන් තවත් සමහර විශේෂාංග බාහිර උපාංග Cisco උපකරණ වර්ගය සහ හිස් ලෝහ මත යෙදවීම, නමුත් එය තවත් කතාවකි

ආරක්ෂාව සහ ප්‍රවේශ්‍යතා සටහන්

රූකඩ සේවාදායකය සමස්ත තොරතුරු තාක්ෂණ යටිතල ව්‍යුහයේම අවදානම් ලක්ෂ්‍යයක් බවට පත්වන බව වටහා ගැනීම අවශ්‍ය වේ, මන්ද සියලුම පද්ධතිවල අවසාන වින්‍යාසය නිර්වචනය කරයි. විශේෂ අවස්ථා වලදී, වෙන් කිරීම අර්ථවත් කරයි - අතිශයින් වැදගත් යටිතල පහසුකම් අංග සඳහා වෙනම සේවාදායකයක් සීමිත ප්රවේශයසහ අතින් යාවත්කාලීන කිරීම සහ අනෙක් සියල්ල සඳහා දෙවන එක.

රූකඩ සේවාදායකයේ ඇති බව සමස්ත යටිතල පහසුකම් කළමනාකරණය කිරීමේ හැකියාව තීරණය කරයි. රූකඩ සේවාදායකය අථත්‍ය යන්ත්‍රයක එහිම හැකියාවන්ට වඩා විශ්වාසදායක සහ ඉක්මනින් ප්‍රතිසාධනය කළ හැකි තුන්වන පාර්ශ්ව වලාකුළක සත්කාරකත්වය සැපයීම අර්ථවත් කරයි. නැතහොත් ඔබ බහු සේවාදායක ස්ථාපනය කළ යුතුය.

ඕනෑම අවස්ථාවක, ඔබ සීනු සහ විස්ල් සහිත රූකඩ සේවාදායකය යොදවනු ලබන පද්ධතියේ වෙනත් සේවාවන් ස්ථාපනය නොකළ යුතුය. ඔබට උදව් කිරීමට අථත්‍යකරණය සහ බහාලුම්කරණය.

බහු-මාස්ටර් (ස්වාධීන රූකඩ සේවාදායකයන් කිහිපයක්)

  • මෙම අවස්ථාවෙහිදී, එක් සේවාදායකයක් පමණක් CA (සහතික අධිකාරිය) ලෙස ක්‍රියා කරයි - එහි නොමැතිකම යනු නව නෝඩ් එකතු කිරීමට නොහැකි බවයි.
    • ඉදිකළ එක ඔබට නොගැලපේ නම්, රූකඩ ඔබට තෙවන පාර්ශවීය X.509 යටිතල පහසුකම් භාවිතා කිරීමට ඉඩ සලසයි.
  • සම්පූර්ණ වින්‍යාසය (පරිසරය) අනුවාද පාලනයේ තබා ගත යුතු අතර එක් එක් සේවාදායකයට එකවර යෙදවිය යුතුය.
  • පොදුවේ ඇති එකම දෙය වන්නේ PostgreSQL පදනමයි, එහි සංවිධානය ඉතා ඉහළ මට්ටමක පවතී මෙම ලිපියේ විෂය පථයෙන් ඔබ්බට.
  • cfpuppetserver මොඩියුලය ප්‍රාථමික (CA සමඟ) සහ ද්විතියික සේවාදායක ස්ථාපනයන් දෙකටම සහය දක්වයි.

පැරණි අනුවාද වලින් සැලකිය යුතු වෙනස්කම් මොනවාද?

සම්පූර්ණ විස්තරය නිෂ්පාදකයාගෙන් ලබා ගත හැකිය.
  • සියලුම සේවාවන් JVM, JRuby සහ Jatty වෙත ගෙන ගොස් ඇත. ඒකාබද්ධතාවයේ පැහැදිලි වාසි පිටුපස, මතක පරිභෝජනය සම්බන්ධයෙන් අවාසි ද ඇත.
  • එකතු කිරීම් සැකසීම සඳහා ලැම්ඩා ශ්‍රිත එකතු කරන ලදි - දැන් Ruby මත කිහිලිකරු කැපීම හෝ create_resources() හරහා විකෘති කිරීම අවශ්‍ය නොවේ
  • EPP සැකිලි සැකසුම් මෙවලමක් දර්ශනය විය - අත්‍යවශ්‍යයෙන්ම එකම ERB, නමුත් Ruby වෙනුවට Puppet DSL සමඟ,
  • පෙරනිමි වින්‍යාස ගොනු නාමාවලි වල ව්‍යුහය බොහෝ වෙනස් වී ඇත
  • පරිසරය සහ මොඩියුල සඳහා දත්ත සපයන්නන් සඳහා සහය එක් කරන ලදී (තවත් හැක් කිරීම් අවශ්‍ය නොවේ).
  • ගෝලීය Hiera හි භූමිකාව හෑල්ලු කිරීම. නව සම්බන්ධ විධානයක් වන්නේ රූකඩ සෙවීමයි.

ස්ථාපන

මෙම ක්රියාවලිය තරමක් ප්රාථමික වේ, නමුත් යම් පියවර අනුපිළිවෙලක් අවශ්ය වේ. මෙය අතින් සිදු කිරීම ස්තුතිවන්ත නොවන කාර්යයක් බැවින්, කතුවරයා ඔබට නරක දේ උගන්වනු ඇත, එනම් අන්තර්ජාලයෙන් තේරුම්ගත නොහැකි ස්ක්‍රිප්ට් බාගත කර ඔබේ පද්ධතිය මත root ලෙස ධාවනය කරන්න.

ප්‍රධාන සේවාදායක සංරචක තුන වන්නේ Puppet Server ම, PuppetDB, සහ PostgreSQL ය. ඒවා සියල්ලම එක් නෝඩයකට තද කළ හැකි හෝ පද්ධති දෙකකට හෝ තුනකට බෙදිය හැකිය. Puppet Server සහ Puppet DB කිහිප වරක් ධාවනය කළ හැක, නමුත් PostgeSQL යනු තනි අසාර්ථක නෝඩයකි. PostgeSQL අනුකරණය සහ පොකුරු කිරීම සඳහා විවිධ ප්‍රවේශයන් ඇත.ප්‍රාථමික සහ ද්විතියික සේවාදායකයන් සම්බන්ධයෙන් පහසු ප්‍රවේශයක් වනුයේ Master + Read-Only Slave වේ, එය ප්‍රාථමික සහ කියවීමට පමණක් දත්ත සමුදා නෝඩයක් ලෙස PuppetDB තුළම සහය දක්වන නමුත් ස්වයංක්‍රීය කිරීම සැකසීමට කාලය ගත වන අතර එබැවින් cfpuppetserver මොඩියුලයට තවමත් ඇතුළත් කර නොමැත.

ඔබට වින්‍යාසය අවම වශයෙන් සෘජුවම ගබඩා කළ හැකිය ගොනු පද්ධතිය Puppet Server සමඟින්, නමුත් එය නිෂ්පාදන වෙබ් සේවාදායකයක ස්ක්‍රිප්ට් ලිවීම වැනිය. වඩාත්ම සුදුසු විසඳුම වන්නේ git ගබඩාවකි. r10k උපයෝගීතාවයට ගබඩාවක සියලුම ශාඛා ඇදගෙන ඒවා වෙනම පරිසරයක් ලෙස Puppet Server වෙත යෙදවිය හැක. r10k පරායත්තයන් ඇද ගැනීමේ දී ඉතා නරක ය, එබැවින් පුස්තකාලයාධිපති-රූකඩය ඉහළින් භාවිතා වේ. ප්‍රධාන කැනොනිකල් රූකඩ පරිසරය "නිෂ්පාදනය" බව වහාම සඳහන් කිරීම වටී. එබැවින්, "නිෂ්පාදනය" නම් ශාඛාවක් මානකරන ගබඩාවේ භාවිතා කළ යුතුය, "මාස්ටර්" නොවේ.

පද්ධති අවශ්යතා

යකඩ සඳහා, එය නිෂ්පාදකයා විසින් විස්තර කර ඇත. cfpuppetserver මොඩියුලය දැනට සහය දක්වන්නේ Debian Jessie+ සහ Ubuntu Trusty+ පමණි.

Git හි වින්‍යාස කිරීම

R10k සඳහාම, ගබඩාවේ පිහිටීම එතරම් වැදගත් නොවේ - ප්රධාන දෙය වන්නේ එහි ඇති හැකියාවයි. උදාහරණයක් ලෙස, පරීක්ෂණ අරමුණු සඳහා, ගබඩාව එකම පද්ධතියක සත්කාරකත්වය ලබා ගත හැක, file:// හරහා ප්‍රවේශ විය හැක. හොඳ ආරම්භයක් වනුයේ codingfuture/puppet-exampleenv වින්‍යාස උදාහරණයයි.
  1. ගබඩාව ක්ලෝන කරන්න: git clone https://github.com/codingfuture/puppet-exampleenv my-puppet-conf && cd my-puppet-conf
  2. අදහස් දැක්වීම්වල ඇති ඉඟි භාවිතා කරමින් සාමාන්‍ය පරිපාලක ප්‍රවේශ සැකසුම් සකසන්න:
    • $EDITOR දත්ත/common.yaml
  3. අපි නෝඩ් වින්‍යාසය නිර්මාණය කරමු:
    • $MY_DOMAIN - මූල වසම් නාමය (උදාහරණයක් ලෙස, example.org)
    • $HOST_NAME - වසම නොමැතිව සේවාදායක සත්කාරක නාමය
    • mkdir දත්ත/$MY_DOMAIN
    • cp data/example.com/puppet.yaml data/$(MY_DOMAIN)/puppet.yaml
    • $EDITOR nano -w දත්ත/$(MY_DOMAIN)/puppet.yaml - අදහස් දැක්වීම්වල යෝජනා කර ඇති පරිදි රූකඩ සේවාදායකය සමඟ නෝඩයක් සැකසීම
    • cp data/example.com/host.yaml දත්ත/$(MY_DOMAIN)/$(HOST_NAME).yaml
    • $EDITOR nano -w දත්ත/$(MY_DOMAIN)/$(HOST_NAME).yaml - අදහස් දැක්වීම්වල ඉඟි අනුව අත්තනෝමතික නෝඩයක් සැකසීම
  4. අපි අපගේම Git සේවාදායකය වෙත තල්ලු කරන්නෙමු, නැතහොත් එය rsync හෝ scp හරහා Puppet Server node හි දේශීයව ලබා ගත හැක. Git සේවාදායකය Puppet වෙතින්ම යොදවන තුරු අතරමැදි පියවරක් ලෙස දේශීය ගබඩාවක් ප්‍රයෝජනවත් වේ. එක්තරා විදියකට මේක හරියට compiler එකක් පියවර කිහිපයකින් හදනවා වගේ වැඩක්.

අපි පිරිසිදු පද්ධතියක් මත මුල සිට ස්ථාපනය කරමු

cfpuppetserver මොඩියුලය ඔබට Puppet භාවිතා කර සියල්ල ස්ථාපනය කිරීමට ඉඩ සලසයි, නමුත් මූලික ස්ථාපනය සඳහා මූලික මෙහෙයුම් Bash script මගින් අනුපිටපත් කර ඇත.

ඉලක්ක පද්ධතිය මත:

  1. සැකසුම් පිටපත බාගන්න: wget https://raw.githubusercontent.com/codingfuture/puppet-cfpuppetserver/master/setup_puppetserver.sh
  2. අපි ස්ක්‍රිප්ට් එක දෙස බලා නළල රැලි කරමු: අඩු setup_puppetserver.sh
  3. ධාවනය කරන්න: bash setup_puppetserver.sh රූකඩ.$(MY_DOMAIN) .
    • දුරස්ථ ගබඩා උදාහරණය: bash setup_puppetserver.sh ssh:// [ඊමේල් ආරක්ෂිත]/රූකඩ-conf
    • දේශීය සමග උදාහරණය: bash setup_puppetserver.sh ගොනුව:///root/puppetconf/
  4. පද්ධතිය පිම්බෙන ආකාරය සහ සියල්ල ඉතා ඉක්මනින් ස්ථාපනය නොකරන ආකාරය අපි බලමු.
  5. දුරස්ථ ගබඩාවක් නම්:
    • root "a: ssh-keygen -t rsa -b 2048 සඳහා SSH යතුරක් සාදන්න
    • අපි දුරස්ථ Git සේවාදායකයේ පොදු යතුර /root/.ssh/id_rsa.pub ලියාපදිංචි කරමු...
    • ... සහ එම ස්ථානයේම අපි පහත විධානය සමඟ Git කොක්කක් සකස් කරමු: /usr/bin/ssh -T [ඊමේල් ආරක්ෂිත]$(MY_DOMAIN) ./puppetdeploy.sh
  6. වින්‍යාසය යෙදවීම අතින් ධාවනය කරන්න: /etc/puppetlabs/deploy.sh
  7. එය සේවාදායකයේම ක්‍රියා කරන ආකාරය උත්සාහ කරමු: /opt/puppetlabs/bin/puppet agent --test
  8. ඔබගේ ජාල සැකසුම් පරීක්ෂා කරන්න, ජාල පෙරහනසහ SSH ප්රවේශය

කළමනාකරණය කළ නෝඩ් එකතු කිරීම

  1. රූකඩ සේවාදායකයේ සම්පූර්ණ සුදුසුකම් ලත් නම කළමනාකරණය කළ ධාරකයේ DNS හරහා හෝ /etc/hosts වෙත දෘඪ රැහැන්ගතව තිබිය යුතුය.
    • උදාහරණය: echo "128.1.1.1 puppet.example.com" >> /etc/hosts
  2. Puppet Server සත්කාරකයේ, පහත ස්ක්‍රිප්ට් /root/genclientinit.sh $(HOST_NAME) ධාවනය කරන්න.$(MY_DOMAIN) .
  3. ප්රතිඵලය සම්පූර්ණයෙන්ම පිටපත් කර අලවා ඇත විධාන රේඛාවඉලක්ක පද්ධතිය මත.
  4. අපි ක්‍රියාත්මක කිරීම අවසන් වන තෙක් බලා සිටින අතර /opt/puppetlabs/bin/puppet agent --test ධාවනය කරන්න. ඔබ එය පළමු වරට ධාවනය කරන විට, සහතික අත්සන් කිරීමේ ඉල්ලීමක් උත්පාදනය වනු ඇත.
  5. සහතිකය අත්සන් කිරීම සඳහා අපි Puppet Server node වෙත යන්නෙමු.
    • රූකඩ සහතික ලැයිස්තුව - තවත් ව්‍යාකූලත්වය සඳහා සහතික අත්සන පරීක්ෂා කරන්න.
    • රූකඩ සහතික ලකුණ $(HOST_NAME).$(MY_DOMAIN) - ඇත්ත වශයෙන්ම, අපි සහතිකය අත්සන් කරමු.
  6. අපි කළමනාකරණය කළ නෝඩය වෙත ආපසු ගොස් නැවත ධාවනය කරන්න: /opt/puppetlabs/bin/puppet agent --test`. මෙය යෙදවීමේ ක්‍රියා පටිපාටිය ආරම්භ කිරීමට බල කරනු ඇත.
  7. රූකඩ නියෝජිතයා හරහා යෙදවීම සම්පූර්ණ වන තෙක් අපි බලා සිටිමු.
  8. එච්චරයි, ඔබට අවම රූකඩ යටිතල පහසුකම් සූදානම්!

/root/genclientinit.sh වෙතින් නියැදි ප්‍රතිදානය

බැෂ්</etc/cflocation fi if test ! -z ""; ඉන්පසුව echo -n >/etc/cflocationpool fi if test ! -z "\$http_proxy"; ඉන්පසු අපනයනය කරන්න http_proxy export https_proxy="\$http_proxy" export HTTP_PROXY="\$http_proxy" export HTTPS_PROXY="\$http_proxy" fi echo host.example.com > /etc/hostname hostname host.example.com නම් ! කුමන lsb නිකුතුව | කියවන්න; පසුව apt-get install lsb-release fi codename=\$(lsb_release -cs) test -z "\$codename" නම්; ඉන්පසු "නිවැරදි කේත නාමය හඳුනා ගැනීමට අපොහොසත් විය" 1 fi wget පිටවන්න https://apt.puppetlabs.com/puppetlabs-release-pc1-\$(codename).deb dpkg -i puppetlabs-release-pc1-\$(කේත නාමය) .deb mkdir -p /etc/puppetlabs/puppet cat > /etc/puppetlabs/puppet/puppet.conf<රූකඩ සහතික ලකුණ host.example.com" echo "විවිධ හේතූන් නිසා අක්‍රිය වුවහොත් චක්‍රය නැවැත්වීමට CTRL+C භාවිතා කරන්න" නින්ද 5 සිදු EOT

මොඩියුල විස්තරය

මූලික ස්ථාපනය සඳහා Bash script විකල්ප සම්පූර්ණ ලැයිස්තුව

~# ./setup_puppetserver.sh භාවිතය: ./setup_puppetserver.sh [ [ [ [] ] ] ]
  • r10k_repo_url - Git repository URI
  • certname යනු node හි සම්පූර්ණ සුදුසුකම් ලත් ඩොමේන් නාමයයි
  • cflocation - cf_location කරුණ ආරම්භ කිරීම
  • cflocationpool - cf_location_pool කරුණ ආරම්භ කිරීම
  • http_proxy - HTTP සහ HTTPS ඉල්ලීම් සඳහා ප්‍රොක්සි සේවාදායකය

Puppet client init script සඳහා Bash පරාමිති සම්පූර්ණ ලැයිස්තුව

~# /root/genclientinit.sh භාවිතය: ./genclientinit.sh [ [ []]]
පරාමිති අගය පෙර පිටපතට සමාන වේ.

cfpuppetserver පන්තිය

  • deployuser = "deploypuppet" - වින්‍යාස යාවත්කාලීන ස්වයංක්‍රීයව යෙදවීමට පරිශීලක නාමය
  • deployuser_auth_keys = undef - $deployuser සඳහා යතුරු ලැයිස්තුව
  • repo_url = undef - ගබඩාවේ URI (උදාහරණය: ssh:// [ඊමේල් ආරක්ෂිත]/repo හෝ ගොනුව:///some/path)
  • puppetserver = true - මෙම නෝඩයේ Puppet Server සංරචකය ස්ථාපනය කරන්නේද යන්න
  • puppetdb = true - මෙම නෝඩයේ PuppetDB සංරචකය ස්ථාපනය කරන්නේද යන්න
  • puppetdb_port = 8081 - PuppetDB සඳහා වරාය
  • setup_postgresql = true - මෙම නෝඩයේ PostgreSQL සංරචකය ස්ථාපනය කරන්නේද යන්න (PuppetDB ස්ථාපනය සබල කර ඇත්නම් පමණි)
  • service_face = "ඕනෑම" - එන සම්බන්ධතා පිළිගැනීමට cfnetwork නම::iface සම්පත්
  • puppetserver_mem = ස්වයංක්‍රීය - මෙගාබයිට් වලින් රූකඩ සේවාදායකය සඳහා RAM (අවම 192MB)
  • puppetdb_mem = ස්වයංක්‍රීය - මෙගාබයිට් වලින් PuppetDB සඳහා RAM (අවම 192MB)
  • postgresql_mem = ස්වයංක්‍රීය - PostgreSQL සඳහා මෙගාබයිට් වලින් RAM (අවම 128MB)

පන්තිය cfpuppetserver::puppetdb

  • postgresql_host = "localhost" - දත්ත සමුදා ලිපිනය
  • postgresql_listen = $postgresql_host - අගය කෙලින්ම Listen_addresses PostgreSQL විධානය වෙත යයි
  • postgresql_port = 5432 - දත්ත සමුදා වරාය
  • postgresql_user = "puppetdb" - දත්ත ගබඩාවේ PuppetDB පරිශීලක
  • postgresql_pass = "puppetdb" - දත්ත ගබඩාවේ PuppetDB පරිශීලකයාගේ මුරපදය
  • postgresql_ssl = අසත්‍ය - රූකඩ PKI සහතික මත පදනම් වූ සම්බන්ධතා සංකේතනය සක්‍රීය කරන්න

පන්තිය cfpuppetserver::puppetserver

  • autosign = බොරු - DMZ හැර නිෂ්පාදන පරිසරයක භාවිතා නොකළ යුතුය. පරීක්ෂණ ස්වයංක්‍රීයකරණය සඳහා පමණක් පවතී.
  • ගෝලීය_hiera_config = "cfpuppetserver/hiera.yaml" - Puppet canons අනුව පෙරනිමි Hiera වින්‍යාස ගොනුව වෙත යන මාර්ගය (පළමු සංරචකය මොඩියුලයේ නමයි, ඉතිරිය මොඩියුලයේ ගොනු/ෆෝල්ඩරය යටතේ ඇති මාර්ගයයි)

වෙබ් අඩවියේ සංවර්ධනය සඳහා ඔබට උදව් කිරීමට සහ මුදල් මාරු කිරීමට හැකිය



Unix පද්ධති විශාල සංඛ්‍යාවක් කළමනාකරණය කිරීම පහසු නැත. එක් පරාමිතියක් වෙනස් කිරීම සඳහා, පරිපාලකයාට එක් එක් යන්ත්‍රය වෙත ප්‍රවේශ විය යුතුය, ස්ක්‍රිප්ට් වලට උදව් කළ හැක්කේ අර්ධ වශයෙන් පමණක් වන අතර සෑම අවස්ථාවකදීම නොවේ.

වින්ඩෝස් ජාල පරිපාලකයින් තවමත් වඩා හොඳ ස්ථානයක සිටින බව පිළිගත යුතුය. කණ්ඩායම් ප්‍රතිපත්ති සැකසුම් වෙනස් කිරීම ප්‍රමාණවත් වන අතර ටික වේලාවකට පසු ජාලයේ සියලුම පරිගණක, මෑතකදී ස්ථාපනය කරන ලද මෙහෙයුම් පද්ධතියක් ඇති ඒවා ඇතුළුව, ඔවුන් ඇත්ත වශයෙන්ම ඔවුන් ගැන සැලකිලිමත් වන්නේ නම්, නවෝත්පාදනය ගැන “ඉගෙන” ඇත. Unix හි දිගු ඉතිහාසය දෙස ආපසු හැරී බලන විට, මෙවැනි කිසිවක් කිසිදා අල්ලා ගත්තේ නැත. මූලික ස්ථාපනය සඳහා උපකාර වන kickstart වැනි විසඳුම් තිබේ. මෙහෙයුම් පද්ධතිය, නමුත් තවදුරටත් සියුම්ව සකස් කිරීම සඳහා සැලකිය යුතු උත්සාහයක් අවශ්ය වනු ඇත. BladeLogic සහ OpsWare වැනි වාණිජ විසඳුම් මඟින් සැකසුම් ස්වයංක්‍රීය කිරීමේ ගැටලුව අර්ධ වශයෙන් පමණක් විසඳයි, ඒවායේ ප්‍රධාන වාසිය නම් තිබීමයි. GUI, සහ විශාල සංවිධාන පමණක් ඒවා මිලදී ගත හැකිය. ඇත්ත වශයෙන්ම, නොමිලේ විසඳුම් ලබා දෙන ව්යාපෘති ඇත, නමුත් ඔවුන්ගේ පැවැත්මේ සියලු කාලය සඳහා ඔවුන් විශාල ප්රජාවක් නිර්මාණය කිරීමට නොහැකි වී ඇත. උදාහරණයක් ලෙස, Cfengine Linux වලට අමතරව *BSD, Windows සහ Mac OS X හි භාවිතා කළ හැකි වුවද පරිපාලකයින් අතර එතරම් ජනප්‍රිය නොවේ.සමහරවිට මෙය වින්‍යාසයන් සෑදීමේ සාපේක්ෂ සංකීර්ණතාවය නිසා විය හැක. කාර්යයන් විස්තර කිරීමේදී, එක් එක් විශේෂිත පද්ධතියේ ලක්ෂණ සැලකිල්ලට ගත යුතු අතර, විධාන ක්රියාත්මක කිරීමේදී ක්රියා අනුපිළිවෙල අතින් පාලනය කිරීම අවශ්ය වේ. එනම්, පරිපාලකයා මතක තබා ගත යුත්තේ සමහර පද්ධති සඳහා ඔබ වෙනත් පරිශීලකයන් සඳහා adduser ලිවිය යුතු බව, විවිධ පද්ධතිවල ගොනු පිහිටීම සැලකිල්ලට ගැනීම සහ යනාදියයි. මෙය විශාලත්වයේ අනුපිළිවෙලකින් විධාන ලිවීමේ ක්‍රියාවලිය සංකීර්ණ කරයි, ගමනේදී නිවැරදි වින්‍යාසය නිර්මාණය කිරීම ඉතා අපහසු වන අතර ටික වේලාවකට පසු සාදන ලද වින්‍යාසයන් කියවීමට නොහැකි තරම්ය. GPL බලපත්‍රය තිබියදීත්, Cfengine ඇත්ත වශයෙන්ම සියලු වෙනස්කම් පාලනය කරන ඒක පුද්ගල ව්‍යාපෘතියක් වන අතර විවෘත සමාජයක් ගොඩනැගීමට එතරම් උනන්දුවක් නොදක්වයි. එහි ප්‍රතිඵලයක් වශයෙන්, cfengine හි හැකියාවන් සංවර්ධකයාට බෙහෙවින් තෘප්තිමත් වන අතර අනෙකුත් පරිපාලකයින්ට මෙය අමතර හිසරදයකි. cfengine වැඩිදියුණු කිරීම සඳහා, තෙවන පාර්ශවීය සංවර්ධකයින් විසින් විවිධ ඇඩෝන නිර්මාණය කරන ලද අතර, එය බොහෝ විට තත්වය නරක අතට හැරේ. cfengine සඳහා එවැනි මොඩියුල කිහිපයක කතුවරයා, Luke Kanies, අවසානයේදී සමාන මෙවලමක් සංවර්ධනය කිරීමට තීරණය කළේය, නමුත් cfengine හි බොහෝ අඩුපාඩු වලින් තොරය.

රූකඩ විශේෂාංග

Cfengine වැනි Puppet යනු ප්‍රකාශන භාවිතා කරන සේවාදායක-සේවාදායක පද්ධතියකි, එනම්, ඒවා ක්‍රියාත්මක කිරීම සඳහා කාර්යයන් සහ පුස්තකාල විස්තර කිරීම සඳහා අනිවාර්ය භාෂාවකි. සේවාදායකයින් වරින් වර (පෙරනිමියෙන් මිනිත්තු 30) මධ්‍යම සේවාදායකයට සම්බන්ධ වී නවතම වින්‍යාසය ලබා ගනී. ලැබුණු සැකසුම් පද්ධතියේ තත්වයට නොගැලපේ නම්, ඒවා ක්රියාත්මක කරනු ලැබේ; අවශ්ය නම්, සිදු කරන ලද මෙහෙයුම් පිළිබඳ වාර්තාවක් සේවාදායකයට යවනු ලැබේ. පණිවිඩ සේවාදායකයට syslog හෝ ගොනුවක් වෙත සුරැකිය හැක, RRD ප්රස්ථාරයක් නිර්මාණය කිරීම, නිශ්චිත විද්යුත් තැපෑල වෙත යැවීම. අමතර වියුක්ත ස්ථර ගණුදෙණු සහ සම්පත් පවතින සිටුවම් සහ යෙදුම් සමඟ උපරිම ගැළපීමක් සපයන අතර, සවිස්තරාත්මක විධාන සහ ගොනු ආකෘති ක්‍රියාත්මක කිරීමේ සහ විස්තර කිරීමේ වෙනස්කම් ගැන කරදර නොවී පද්ධති වස්තූන් කෙරෙහි අවධානය යොමු කිරීමට ඔබට ඉඩ සලසයි. පරිපාලකයා ක්‍රියාත්මක වන්නේ වස්තු වර්ගය සමඟ පමණි, රූකඩ ඉතිරිය බලා ගනී. පැකේජ වර්ගය පැකේජ පද්ධති 17 ක් පමණ දන්නා බැවින්, අවශ්‍ය නම්, පැකේජ කළමනාකරුට බල කළ හැකි වුවද, බෙදා හැරීමේ කට්ටලයේ හෝ පද්ධතියේ අනුවාදය පිළිබඳ තොරතුරු මත පදනම්ව අවශ්‍ය එක ස්වයංක්‍රීයව හඳුනා ගැනේ.

බොහෝ විට වෙනත් පද්ධතිවල භාවිතා කළ නොහැකි ස්ක්‍රිප්ට් මෙන් නොව, තුන්වන පාර්ශ්ව පරිපාලකයින් විසින් ලියන ලද රූකඩ වින්‍යාසයන් බොහෝ දුරට වෙනත් ඕනෑම ජාලයක බාධාවකින් තොරව ක්‍රියා කරයි. රූකඩ කුක් පොතේ[ http://www.reductivelabs.com/trac/puppet/tags/puppet%2Crecipe] දැනටමත් සූදානම් කළ වට්ටෝරු දුසිම් තුනක් ඇත. Puppet දැනට පහත මෙහෙයුම් පද්ධති සහ සේවාවන් සඳහා නිල වශයෙන් සහාය දක්වයි: Debian, RedHat/Fedora, Solaris, SUSE, CentOS, Mac OS X, OpenBSD, Gentoo සහ MySQL, LDAP.

රූකඩ භාෂාව

තවදුරටත් ඉදිරියට යාමට, ඔබ මුලින්ම භාෂාවේ මූලික අංග සහ ලක්ෂණ තේරුම් ගත යුතුය. භාෂාව ඉන් එකකි ශක්තීන්රූකඩ. එහි ආධාරයෙන්, පරිපාලකයා කළමනාකරණය කිරීමට සැලසුම් කරන සම්පත් සහ ක්‍රියා විස්තර කෙරේ. බොහෝ සමාන විසඳුම් මෙන් නොව, රූකඩයේ භාෂාව විෂමජාතීය පරිසරයක් තුළ ඕනෑම පද්ධතියක සමාන සම්පත් වෙත ප්‍රවේශ වීම පහසු කරයි. සම්පතක විස්තරයක් සාමාන්‍යයෙන් නමක්, වර්ගයක් සහ ගුණාංග වලින් සමන්විත වේ. උදාහරණයක් ලෙස, /etc/passwd ගොනුව වෙත යොමු කර එහි ගුණාංග සකසන්න:

ගොනුව("/etc/passwd":

හිමිකරු => root,

කණ්ඩායම => root,

දැන් සේවාදායකයට සම්බන්ධ වන සේවාදායකයින් /etc/passwd ගොනුව පිටපත් කර නිශ්චිත ගුණාංග සකසනු ඇත. එක් රීතියක් තුළ, ඔබට එකවර සම්පත් කිහිපයක් නිර්වචනය කළ හැකිය, ඒවා අර්ධ කෝණයකින් වෙන් කරන්න. නමුත් සේවාදායකයේ භාවිතා කරන වින්‍යාස ගොනුව සේවාදායකයින්ට වඩා වෙනස් නම් හෝ කිසිසේත් භාවිතා නොකරන්නේ නම් කුමක් කළ යුතුද? උදාහරණයක් ලෙස, VPN සම්බන්ධතා සැකසීමේදී මෙම තත්ත්වය ඇති විය හැක. මෙම අවස්ථාවේදී, ඔබට මූලාශ්‍ර විධානය සමඟ ගොනුව වෙත යොමු කළ හැක. මෙහි විකල්ප දෙකක් ඇත, වෙනත් ගොනුවකට මාර්ගය නියම කිරීමට සුපුරුදු පරිදි, ප්‍රොටෝකෝල URI දෙකක් ද සහය දක්වයි: ගොනුව සහ රූකඩ. පළමු අවස්ථාවේ දී, බාහිර NFS සේවාදායකයකට සබැඳියක් භාවිතා කරනු ලැබේ, දෙවන අවස්ථාවෙහිදී, සම්පත් අපනයනය කරන රූකඩ සේවාදායකයේ NFS වැනි සේවාවක් දියත් කෙරේ. අවසාන අවස්ථාවෙහිදී, පෙරනිමියෙන්, මාර්ගය රූකඩ මූල නාමාවලියට සාපේක්ෂව වේ - /etc/puppet. එනම්, puppet://server.domain.com/config/sshd_config සබැඳිය /etc/puppet/config/sshd_config ගොනුව සමඟ ගැලපේ. /etc/puppet/fileserver.conf ගොනුවේ එකම නමේ කොටස භාවිතා කිරීම වඩාත් නිවැරදි වුවද, filebucket විධානය භාවිතයෙන් ඔබට මෙම නාමාවලිය අභිබවා යා හැක. මෙම අවස්ථාවේදී, ඔබට සේවාවට ප්රවේශය සීමා කළ හැක්කේ ඇතැම් ලිපිනයන්ගෙන් පමණි. උදාහරණයක් ලෙස, අපි config කොටස විස්තර කරමු.

මාර්ගය /var/රූකඩ/config

*.domain.com ඉඩ දෙන්න

192.168.0.* ඉඩ දෙන්න

192.168.1.0/24 ඉඩ දෙන්න

*.wireless.domain.com ප්‍රතික්ෂේප කරන්න

සම්පත් විස්තර කිරීමේදී අපි මෙම කොටස වෙත යොමු වෙමු.

මූලාශ්රය => "puppet://server.domain.com/config/sshd_config"

මහා බඩවැලේ සම්පතේ නම ඉදිරියෙන් ඇත. සරලම අවස්ථාවන්හිදී, නම සරලව සඳහන් කළ හැකිය, අන්වර්ථයක් හෝ විචල්යයන් භාවිතා කිරීමට වඩා හොඳය. අන්වර්ථ විධානය භාවිතයෙන් අන්වර්ථයක් සකසා ඇත. ගොනුව වෙත සම්පූර්ණ මාර්ගය. වඩාත් සංකීර්ණ වින්යාසය තුළ

ගොනුව("/etc/passwd":

අන්වර්ථය => passwd

ඔබට විවිධ මෙහෙයුම් පද්ධති සමඟ කටයුතු කිරීමට සිදුවන විට අන්වර්ථයක් නිර්මාණය කිරීම සඳහා තවත් විකල්පයක් හොඳින් ගැලපේ. උදාහරණයක් ලෙස, අපි sshd_config ගොනුව විස්තර කරන සම්පතක් නිර්මාණය කරමු:

ගොනුව (sshdconfig:

නම => $operatingsystem ? (

solaris => "/usr/local/etc/ssh/sshd_config",

default => "/etc/ssh/sshd_config"

මෙම උදාහරණයේ දී, අපි තේරීමකට මුහුණ දී සිටිමු. Solaris සඳහා ගොනුව වෙන වෙනම දක්වා ඇත, අනෙක් සියල්ල සඳහා ගොනුව /etc/ssh/sshd_config තෝරා ගනු ලැබේ. දැන් මෙම සම්පත sshdconfig ලෙස ප්රවේශ විය හැක, මෙහෙයුම් පද්ධතිය මත පදනම්ව, අවශ්ය මාර්ගය තෝරා ගනු ලැබේ. උදාහරණයක් ලෙස, sshd ඩීමන් ක්‍රියාත්මක වන්නේ නම් සහ නව ගොනුවක් ලැබෙන්නේ නම්, සේවාව නැවත ආරම්භ කළ යුතු බව අපි සඳහන් කරමු.

සහතික => සත්‍ය,

දායක වන්න => ගොනුව

පරිශීලක දත්ත සමඟ වැඩ කිරීමේදී විචල්යයන් බොහෝ විට භාවිතා වේ. උදාහරණයක් ලෙස, අපි පරිශීලකයාගේ මුල් නාමාවලිවල පිහිටීම විස්තර කරමු:

$homeroot = "/home"

දැන්, පරිශීලක-විශේෂිත ගොනු ලෙස ප්‍රවේශ විය හැක

$(හෝමරූට්)/$නම

$name පරාමිතිය පරිශීලක ගිණුම් නාමය සමඟ ආදේශ කරනු ඇත. සමහර අවස්ථාවලදී යම් වර්ගයක් සඳහා පෙරනිමි අගයක් නිර්වචනය කිරීම පහසුය. උදාහරණයක් ලෙස, exec වර්ගය සඳහා, ක්‍රියාත්මක කළ හැකි ගොනුවක් සෙවිය යුතු බහලුම් බොහෝ විට නියම කර ඇත:

Exec (path => "/usr/bin:/bin:/usr/sbin:/sbin" )

ඔබට කැදලි ගොනු සහ නාමාවලි කිහිපයක් වෙත යොමු කිරීමට අවශ්‍ය වූ විට, ඔබට ප්‍රත්‍යාවර්ත පරාමිතිය භාවිතා කළ හැක.

ගොනුව("/etc/apache2/conf.d":

මූලාශ්රය => "රූකඩ://puppet://server.domain.com/config/apache/conf.d",

recurse => "ඇත්ත"

සම්පත් කිහිපයක් පන්ති හෝ අර්ථ දැක්වීම් වලට කාණ්ඩගත කළ හැක. පන්ති යනු පද්ධතියක් හෝ සේවාවක් පිළිබඳ සම්පූර්ණ විස්තරයක් වන අතර ඒවා හුදකලාවේ භාවිතා වේ.

"/etc/passwd": හිමිකරු => root, group => root, mode => 644;

"/etc/shadow": හිමිකරු => root, group => root, mode => 440

වස්තු-නැඹුරු භාෂා වල මෙන්, පන්ති නැවත අර්ථ දැක්විය හැක. උදාහරණයක් ලෙස, FreeBSD හි, මෙම ගොනු අයිති කණ්ඩායම රෝද වේ. එබැවින්, සම්පත සම්පූර්ණයෙන්ම නැවත නොලියවීම සඳහා, linux පන්තියට උරුමකම් කියන නව freebsd පන්තියක් නිර්මාණය කරමු:

class freebsd linux උරුම කරයි (

ගොනුව["/etc/passwd"] ( group => wheel );

ගොනුව["/etc/shadow"] (කණ්ඩායම => රෝදය)

පහසුව සඳහා, සියලුම පන්ති වෙනම ගොනුවක තැබිය හැකිය, එය ඇතුළත් කිරීමේ නියෝගය සමඟ සම්බන්ධ කළ හැකිය. අර්ථ දැක්වීම් බහුවිධ පරාමිති තර්ක ලෙස ගත හැක, නමුත් උරුමයට සහාය නොදක්වන අතර ඔබට නැවත භාවිතා කළ හැකි වස්තු විස්තර කිරීමට අවශ්‍ය වූ විට භාවිතා වේ. උදාහරණයක් ලෙස, පරිශීලකයාගේ මුල් නාමාවලිය සහ නව ගිණුමක් සෑදීමට අවශ්‍ය විධාන නිර්වචනය කරමු.

user_homedir ($group, $fullname, $ingroups) නිර්වචනය කරන්න (

පරිශීලක ("$name":

සහතික => පවතින,

අදහස => "$fullname",

gid => "$ සමූහය",

කණ්ඩායම් => $ කණ්ඩායම්,

සාමාජිකත්වය => අවම,

shell => "/bin/bash",

නිවස => "/home/$name",

අවශ්‍ය => කණ්ඩායම[$group],

exec("$name homedir":

විධානය => "/bin/cp -R /etc/skel /home/$name; /bin/chown -R $name:$group /home/$name",

නිර්මාණය කරයි => "/home/$name",

අවශ්‍ය => පරිශීලක[$name],

දැන් අලුත් එකක් හදන්න ගිණුමහුදෙක් user_homedir වෙත යොමු වන්න.

user_homedir("sergej":

කණ්ඩායම => "sergej",

සම්පූර්ණ නම => "Sergej Jaremchuk",

ingroups => ["මාධ්‍ය", " පරිපාලක]

වෙනමම, පන්ති වැනි උරුමයට සහාය වන නෝඩ් (නෝඩය) පිළිබඳ විස්තර ඇත. සේවාලාභියෙකු රූකඩ සේවාදායකයකට සම්බන්ධ වූ විට, එය සුදුසු නෝඩ් කොටස සොයමින් එම පරිගණකයට පමණක් විශේෂිත වූ සැකසුම් ලබා දෙනු ඇත. අනෙකුත් සියලුම පද්ධති විස්තර කිරීමට ඔබට නෝඩ් පෙරනිමිය භාවිතා කළ හැක. සියලුම වර්ගවල විස්තරයක් "වර්ග යොමු" ලේඛනයේ දක්වා ඇත, එය ඕනෑම අවස්ථාවක කියවිය යුතුය, අවම වශයෙන් රූකඩ භාෂාවේ සියලු හැකියාවන් අවබෝධ කර ගැනීම සඳහා. විවිධ වර්ගසමහර කොන්දේසි සපුරා ඇති විට (උදාහරණයක් ලෙස, වින්‍යාස ගොනුව වෙනස් කිරීම), ක්‍රෝන්, පරිශීලක අක්තපත්‍ර සහ කණ්ඩායම් සමඟ වැඩ කිරීම, පරිගණක, සම්පත් සවි කිරීම, සේවා ආරම්භ කිරීම සහ නැවැත්වීම, පැකේජ ස්ථාපනය කිරීම, යාවත්කාලීන කිරීම සහ ඉවත් කිරීම, වැඩ කිරීම ඇතුළුව නිශ්චිත විධාන ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසයි. සමග SSH යතුරු, Solaris කලාප, සහ එසේ ය. apt භාවිතයෙන් බෙදාහැරීම්වල ඇති පැකේජ ලැයිස්තුව දිනපතා 2 සහ 4 අතර යාවත්කාලීන කිරීමට බල කිරීම මෙය කොතරම් පහසුද යන්නයි.

කාලසටහන (දිනපතා:

කාල සීමාව => දිනපතා,

පරාසය =>

exec("/usr/bin/apt-get update":

කාලසටහන => දිනපතා

එම කාලසීමාව සඳහා යාවත්කාලීන කිරීම සෑම පද්ධතියකින්ම සිදු කරනු ලබන්නේ එක් වරක් පමණක් වන අතර, පසුව කාර්යය සම්පූර්ණ කර ඇතැයි සලකනු ලබන අතර සේවාදායක පරිගණකයෙන් මකා දමනු ලැබේ. රූකඩ භාෂාව වෙනත් හුරුපුරුදු ව්‍යුහයන් සඳහා සහය දක්වයි: කොන්දේසි, ශ්‍රිත, අරා, අදහස් සහ ඒ හා සමාන ය.

රූකඩ ස්ථාපනය

රූබි සඳහා රූබි (>= 1.8.1) අවශ්‍ය වන්නේ OpenSSL සහාය සහ XMLRPC පුස්තකාල මෙන්ම වේගවත් පුස්තකාලය [ http://reductivelabs.com/projects/facter]. පරීක්ෂණ ස්ථාපනයේදී භාවිතා කරන ලද උබුන්ටු 7.04 ගබඩාවේ දැනටමත් බලු පැකේජය ඇතුළත් වේ.

$ sudo apt-cache සෙවුම් රූකඩය

රූකඩ - ජාල සඳහා මධ්‍යගත වින්‍යාස කළමනාකරණය

puppetmaster - මධ්‍යගත වින්‍යාස කළමනාකරණ පාලන ඩීමන්

ස්ථාපනය මඟින් පැකේජවල අවශ්‍ය සියලු පරායත්තයන් ස්ථාපනය කරනු ඇත: සාධකය libopenssl-ruby libxmlrpc-ruby.

$ sudo apt-get install puppet puppetmaster

ඔබට විධානය සමඟ Ruby පුස්තකාල තිබේදැයි පරීක්ෂා කළ හැකිය.

$ ruby ​​-ropenssl -e "දානවා: ඔව්"

~$ ruby ​​-rxmlrpc/Client -e "දෙනවා: ඔව්"

කිසිදු දෝෂයක් නොලැබුනේ නම්, ඔබට අවශ්ය සියල්ල දැනටමත් ඇතුළත් කර ඇත. රූකඩ පාරිභාෂිතයේ ඇති පද්ධතිවල අපේක්ෂිත වින්‍යාසය විස්තර කරන ගොනු මැනිෆෙස්ට් (මැනිෆෙස්ට්) ලෙස හැඳින්වේ. ආරම්භ වූ විට, ඩීමන් /etc/puppet/manifests/site.pp ගොනුව කියවීමට උත්සාහ කරයි, එය අතුරුදහන් වී ඇත්නම්, එය අනතුරු ඇඟවීමේ පණිවිඩයක් නිකුත් කරයි. පරීක්ෂා කිරීමේදී, මැනිෆෙස්ටය අවශ්‍ය නොවන නොබැඳි ආකාරයෙන් ක්‍රියා කරන ලෙස ඔබට ඩීමන් හට පැවසිය හැක

$ sudo /usr/bin/puppetmasterd --nonodes

අවශ්ය නම්, site.pp වෙනත් ගොනු ඇතුළත් කළ හැකිය, උදාහරණයක් ලෙස, පන්ති විස්තර සමඟ. පරීක්ෂණ ධාවනය සඳහා, ඔබට මෙම ගොනුවට සරලම උපදෙස් එක් කළ හැකිය.

ගොනුව("/etc/sudoers":

හිමිකරු => root,

කණ්ඩායම => root,

සේවාදායකය සහ සේවාදායකයන් සඳහා වන සියලුම වින්‍යාස ගොනු /etc/puppet හි පිහිටා ඇත. අප ඉහත කතා කළ fileserver.conf ගොනුව විකල්ප වන අතර Puppet ගොනු සේවාදායකයක් ලෙස ක්‍රියා කරන විට පමණක් භාවිතා වේ. Ubuntu හි, මෙම ගොනුව /etc/puppet/files උප බහලුම අපනයනය කරයි. ssl උප බහලුමෙහි සේවාදායක සම්බන්ධතා සංකේතනය කිරීමට භාවිතා කරන සහතික සහ යතුරු අඩංගු වේ. ඔබ මුලින්ම puppetmasterd ආරම්භ කරන විට යතුරු ස්වයංක්‍රීයව ජනනය වේ, ඔබට ඒවා විධානය සමඟ අතින් සෑදිය හැක.

$ sudo /usr/bin/puppetmasterd --mkusers.

puppetd.conf සහ puppetmasterd.conf ගොනු සමාන වේ. ඔවුන් සේවාදායක පද්ධතියේ සහ සේවාදායකයේ ඩීමන් වල සමහර පරාමිතීන් නියම කරයි. සේවාදායක ගොනුව වෙනස් වන්නේ රූකඩ මාස්ටර් ක්‍රියාත්මක වන පරිගණකය වෙත යොමු කරන සේවාදායක පරාමිතිය ඉදිරියේ පමණි.

server=grinder.com

logdir = /var/log/රූකඩ

vardir=/var/lib/රූකඩ

rundir = /var/run

# වාර්තාව සේවාදායකයට යවන්න

සෑම දෙයක්ම අතින් ටයිප් කරනවා වෙනුවට, ඔබට puppetd භාවිතා කර අච්චුවක් සෑදිය හැකිය.

$ puppetd --genconfig > /etc/puppet/puppetd.conf

ඒ හා සමානව, ඔබට සේවාදායකයේ site.pp නිර්මාණය කළ හැකිය.

$ puppetd --genmanifest > /etc/puppet/manifests/site.pp

තවත් tagmail.conf ගොනුවක් ඔබට වාර්තා යවනු ලබන විද්‍යුත් තැපැල් ලිපින සඳහන් කිරීමට ඉඩ දෙයි. සරලම අවස්ථාවක, එක් පේළියක් භාවිතා කළ හැකිය.

සෑම: [ඊමේල් ආරක්ෂිත]

සේවාදායකයාට සේවාදායකයට සම්බන්ධ වීමට හැකි වීමට වින්‍යාස ගොනු ප්‍රමාණවත් නොවේ. මෙය සිදු කිරීම සඳහා, ඔබ තවමත් සහතික අත්සන් කිරීමට අවශ්ය වේ. පළමුව, සේවාදායකයාට සේවාදායක පද්ධතියේ නව පරිගණකය ගැන ඉගෙන ගැනීම සඳහා, විධානය ඇතුළත් කරන්න:

$ sudo puppetd --server grinder.com --waitforcert 60 --test

තොරතුරු: ඉල්ලීම සහතිකය

අවවාදයයි: මෙම SSL සැසිය තුළ සම සහතිකය සත්‍යාපනය නොකෙරේ

දැනුම්දීම: සහතිකය නොලැබුණි

වෙනත් තන්තුවක් ආපසු ලබා දෙන්නේ නම්, සේවාදායකය පරීක්ෂා කළ යුතුය.

$ps aux | grep රූකඩ

රූකඩ 5779 0.0 1.4 27764 15404 ? Ssl 21:49 0:00 ruby ​​/usr/sbin/puppetmasterd

ෆයර්වෝලය වරාය 8140 මත සම්බන්ධතා වලට ඉඩ දිය යුතුය.

සේවාදායකයේ, අත්සන් කළ යුතු සහතික ලැයිස්තුවක් අපට ලැබේ.

$ sudo puppetca --list

nomad.grinder.com

අපි සේවාදායක සහතිකයට අත්සන් කරමු.

$ sudo puppetca --sign nomad.grinder.com

දැන් සේවාදායකයාට සේවාදායකයට නිදහසේ සම්බන්ධ වී සිටුවම් ලබා ගත හැක.

අවාසනාවකට මෙන්, ලිපිය තුළ රූකඩයේ සියලු හැකියාවන් පෙන්වීමට නොහැකි ය. නමුත් ඔබට පෙනෙන පරිදි, මෙය ක්‍රියාකාරී සහ නම්‍යශීලී මෙවලමක් වන අතර එමඟින් පද්ධති විශාල සංඛ්‍යාවක් එකවර පරිපාලනය කිරීමේ බොහෝ කාර්යයන් විසඳීමට ඔබට ඉඩ සලසයි. ඔබේ කාර්යයේ ස්වභාවය අනුව ඔබට පද්ධති කිහිපයක් සැකසීමට සිදුවේ නම්. වැදගත්ම දෙය නම්, කුඩා නමුත් නිරන්තරයෙන් වර්ධනය වන ප්‍රජාවක් එක්රැස් කිරීමට ව්‍යාපෘතිය සමත් විය. ඒ නිසා හොඳ අදහසකට මැරෙන්නවත් පැත්තකට වෙන්නවත් ඉඩ නොතබන්න කියලා ප්‍රාර්ථනා කරමු.

රූකඩඉඩ ලබා දෙන හරස් වේදිකා ව්යුහයකි පද්ධති පරිපාලකයින්කේතය භාවිතයෙන් පොදු කාර්යයන් ඉටු කරන්න. නව වැඩසටහන් ස්ථාපනය කිරීමේ සිට ගොනු අවසර පරීක්ෂා කිරීම හෝ පරිශීලක ගිණුම් යාවත්කාලීන කිරීම දක්වා විවිධ කාර්යයන් ඉටු කිරීමට කේතය ඔබට ඉඩ සලසයි. රූකඩපද්ධතියේ ආරම්භක ස්ථාපනය අතරතුර පමණක් නොව, පද්ධතියේ සමස්ත ජීවන චක්රය පුරාම විශිෂ්ටයි. බොහෝ අවස්ථාවලදී රූකඩයසේවාදායක/සේවාදායක වින්‍යාසය තුළ භාවිතා වේ.

මෙම කොටස ස්ථාපනය සහ වින්යාසය පෙන්වයි රූකඩසේවාදායක/සේවාදායක වින්‍යාසය තුළ. මෙම සරල උදාහරණය ස්ථාපනය කරන ආකාරය පෙන්නුම් කරයි Apacheභාවිතා කරමින් රූකඩ.

ස්ථාපන

ස්ථාපනය සඳහා රූකඩටර්මිනලයේ ටයිප් කරන්න:

sudo apt-get install puppetmaster

සේවාදායක යන්ත්‍රයේ (හෝ යන්ත්‍ර) ඇතුළත් කරන්න:

sudo apt-get install puppet

සැකසීම

රූකඩය පිහිටුවීමට පෙර ඔබට ප්‍රවේශයක් එක් කිරීමට අවශ්‍ය විය හැක DNS CNAMEසදහා puppet.example.com, කොහෙද example.comඔබේ වසම වේ. පෙරනිමි සේවාලාභීන් රූකඩරූකඩ සේවාදායක නාමය ලෙස puppet.example.com සඳහා DNS පරීක්ෂා කරන්න ( රූකඩ මාස්ටර්) DNS භාවිතා කිරීම පිළිබඳ වැඩි විස්තර සඳහා වසම් නාම සේවාව බලන්න.

ඔබ DNS භාවිතා කිරීමට අදහස් නොකරන්නේ නම්, ඔබට සේවාදායකයේ සහ සේවාලාභියාගේ /etc/hosts ගොනුවට ඇතුළත් කිරීම් එක් කළ හැක. උදාහරණයක් ලෙස, /etc/hosts ගොනුවේ රූකඩසේවාදායකය එකතු කරන්න:

127.0.0.1 localhost.localdomain localhost රූකඩ 192.168.1.17 meercat02.example.com meercat02

එක් එක් රූකඩසේවාදායකයා මත, සේවාදායකය සඳහා ප්‍රවේශයක් එක් කරන්න:

192.168.1.16 meercat.example.com මීර්කැට් රූකඩ

IP ලිපින වෙනස් කරන්න සහ වසම් නාමඋදාහරණයේ සිට ඔබගේ සැබෑ ලිපින සහ සේවාදායකයේ සහ සේවාලාභීන්ගේ නම්.

දැන් අපි සම්පත් කිහිපයක් සකස් කරමු apache2. ගොනුවක් සාදන්න /etc/puppet/manifests/site.pp, පහත සඳහන් දෑ අඩංගු වේ:

පැකේජය ( "apache2": සහතික => ස්ථාපිත ) සේවාව ( "apache2": සහතික => true, enable => true, need => Package["apache2"] )

නෝඩය "meercat02.example.com" (apache2 ඇතුළත් වේ)

ආදේශ කරන්න meercat02.example.comඔබගේ වත්මන් නමට රූකඩසේවාදායකයා.

මේ සඳහා අවසාන පියවර සරලයි රූකඩසේවාදායකය නැවත ආරම්භ කිරීම සඳහා:

sudo /etc/init.d/puppetmaster නැවත ආරම්භ කරන්න

දැන් රූකඩසේවාදායකය සියල්ල සකසා ඇති අතර සේවාලාභියා පිහිටුවීමට කාලයයි.

අපි මුලින්ම සේවාව සකස් කරමු රූකඩක්රියාත්මක කිරීමට නියෝජිතයා. /etc/default/puppet සංස්කරණය කර අගය වෙනස් කරන්න ආරම්භ කරන්නමත ඔව්:

sudo /etc/init.d/puppet start

නැවතත් රූකඩවිධානය භාවිතා කරමින් සේවාදායක සහතිකය අත්සන් කිරීමට සේවාදායකය:

Sudo puppetca --sign meercat02.example.com

චෙක් පත /var/log/syslogඕනෑම වින්‍යාස දෝෂ සඳහා. සෑම දෙයක්ම හොඳින් සිදු වූවා නම්, පැකේජය apache2සහ එහි පරායත්තතා ස්ථාපනය කරනු ඇත රූකඩසේවාදායකයා.

මෙම උදාහරණය ඉතා සරල වන අතර බොහෝ විශේෂාංග සහ ප්රතිලාභ නොපෙන්වයි. රූකඩ. සදහා අමතර තොරතුරුබලන්න

සර්ජි යාරෙම්චුක්

රූකඩ සමඟ UNIX පද්ධතිවල මධ්‍යගත වින්‍යාසය

UNIX පද්ධති විශාල සංඛ්‍යාවක් කළමනාකරණය කිරීම පහසු නැත. එක් පරාමිතියක් වෙනස් කිරීම සඳහා, පරිපාලකයාට එක් එක් යන්ත්‍රය වෙත ප්‍රවේශ විය යුතුය, ස්ක්‍රිප්ට් වලට උදව් කළ හැක්කේ අර්ධ වශයෙන් පමණක් වන අතර සෑම අවස්ථාවකදීම නොවේ.

ඇත්ත වශයෙන්ම, වින්ඩෝස් ජාල පරිපාලකයින් සියල්ලටම වඩා හොඳ ස්ථානයක සිටින බව පිළිගත යුතුය. කණ්ඩායම් ප්‍රතිපත්ති සැකසුම් වෙනස් කිරීම ප්‍රමාණවත් වන අතර, ටික වේලාවකට පසු ජාලයේ සියලුම පරිගණක, මෑතකදී ස්ථාපනය කරන ලද මෙහෙයුම් පද්ධතියක් ඇති ඒවා ඇතුළුව, ඔවුන් ඇත්ත වශයෙන්ම ඔවුන් ගැන සැලකිලිමත් වන්නේ නම්, නවෝත්පාදනය ගැන “ඉගෙන” ඇත. UNIX හි දිගු ඉතිහාසය දෙස ආපසු හැරී බලන විට, මෙවැනි කිසිවක් කිසිදා අල්ලා ගත්තේ නැත. මෙහෙයුම් පද්ධතියේ මූලික ස්ථාපනය සඳහා උපකාර වන kickstart වැනි විසඳුම් ඇත, නමුත් තවදුරටත් සියුම්-සුසර කිරීම සඳහා සැලකිය යුතු උත්සාහයක් අවශ්ය වනු ඇත. BladeLogic සහ OpsWare වැනි වාණිජ විසඳුම්, සැකසුම් ස්වයංක්‍රීය කිරීමේ ගැටළුව අර්ධ වශයෙන් පමණක් විසඳයි, ඒවායේ ප්‍රධාන වාසිය වන්නේ චිත්‍රක අතුරු මුහුණතක් තිබීම වන අතර ඒවා මිලදී ගැනීමට විශාල ආයතනවලට පමණක් හැකියාව ඇත. ඇත්ත වශයෙන්ම, නොමිලේ විසඳුම් ලබා දෙන ව්යාපෘති ඇත, නමුත් ඔවුන්ගේ පැවැත්මේ සියලු කාලය සඳහා ඔවුන් විශාල ප්රජාවක් නිර්මාණය කිරීමට නොහැකි වී ඇත. උදාහරණයක් ලෙස, Cfengine පරිපාලකයින් අතර එතරම් ජනප්‍රිය නැත, කෙසේ වෙතත්, Linux වලට අමතරව, එය *BSD, Windows සහ Mac OS X හි භාවිතා කළ හැක. සමහර විට මෙය වින්‍යාසයන් සෑදීමේ සාපේක්ෂ සංකීර්ණතාවය නිසා විය හැකිය. කාර්යයන් විස්තර කිරීමේදී, එක් එක් විශේෂිත පද්ධතියේ ලක්ෂණ සැලකිල්ලට ගත යුතු අතර විධාන ක්‍රියාත්මක කිරීමේදී ක්‍රියා අනුපිළිවෙල අතින් පාලනය කළ යුතුය. එනම්, පරිපාලකයා මතක තබා ගත යුත්තේ සමහර පද්ධති සඳහා ඔබ වෙනත් අය සඳහා adduser ලිවිය යුතු බවයි - useradd, විවිධ පද්ධතිවල ගොනු පිහිටීම සැලකිල්ලට ගැනීම සහ යනාදිය. මෙය විශාලත්වයේ අනුපිළිවෙලකින් විධාන ලිවීමේ ක්‍රියාවලිය සංකීර්ණ කරයි, ගමනේදී නිවැරදි වින්‍යාසය නිර්මාණය කිරීම ඉතා අපහසු වන අතර ටික වේලාවකට පසු සාදන ලද වින්‍යාසයන් කියවීමට නොහැකි තරම්ය. GPL බලපත්‍රය තිබියදීත්, Cfengine ඇත්ත වශයෙන්ම සියලු වෙනස්කම් පාලනය කරන සහ විවෘත සමාජයක් ගොඩනැගීමට එතරම් උනන්දුවක් නොදක්වන එක් පුද්ගලයෙකුගේ ව්‍යාපෘතියකි. එහි ප්රතිඵලයක් වශයෙන්, Cfengine හි හැකියාවන් සංවර්ධකයා සම්පූර්ණයෙන්ම තෘප්තිමත් කරන අතර අනෙකුත් පරිපාලකයින් සඳහා මෙය අතිරේක හිසරදයකි. Cfengine වැඩිදියුණු කිරීම සඳහා, තෙවන පාර්ශවීය සංවර්ධකයින් විසින් විවිධ ඇඩෝන නිර්මාණය කරන ලදී, එය බොහෝ විට තත්වය නරක අතට හැරේ. Cfengine සඳහා එවැනි මොඩියුල කිහිපයක කතුවරයා, Luke Kanies, අවසානයේදී සමාන මෙවලමක් සංවර්ධනය කිරීමට තීරණය කළේය, නමුත් Cfengine හි බොහෝ අඩුපාඩු වලින් තොරය.

රූකඩ විශේෂාංග

Cfengine වැනි Puppet යනු සේවාදායක-සේවාදායක පද්ධතියක් වන අතර එය ක්‍රියාත්මක කිරීම සඳහා කාර්යයන් සහ පුස්තකාල විස්තර කිරීමට ප්‍රකාශන, එනම් අනිවාර්ය භාෂාවක් භාවිතා කරයි. සේවාදායකයින් වරින් වර (පෙරනිමියෙන් සෑම මිනිත්තු 30 කට වරක්) මධ්‍යම සේවාදායකයට සම්බන්ධ වී නවතම වින්‍යාසය ලබා ගනී. ලැබුණු සැකසුම් පද්ධතියේ තත්වයට නොගැලපේ නම්, ඒවා ක්රියාත්මක කරනු ලැබේ; අවශ්ය නම්, සිදු කරන ලද මෙහෙයුම් පිළිබඳ වාර්තාවක් සේවාදායකයට යවනු ලැබේ. පණිවිඩ සේවාදායකයට syslog හෝ ගොනුවකට සුරැකිය හැක, RRD ප්රස්ථාරයක් නිර්මාණය කිරීම, එය නිශ්චිත විද්යුත් තැපෑල වෙත යැවීම. අමතර වියුක්ත ස්ථර ගණුදෙණු සහ සම්පත් පවතින සිටුවම් සහ යෙදුම් සමඟ උපරිම ගැළපීමක් සපයන අතර, සවිස්තරාත්මක විධාන සහ ගොනු ආකෘති ක්‍රියාත්මක කිරීමේ සහ විස්තර කිරීමේ වෙනස්කම් ගැන කරදර නොවී පද්ධති වස්තූන් කෙරෙහි අවධානය යොමු කිරීමට ඔබට ඉඩ සලසයි. පරිපාලකයා ක්‍රියාත්මක වන්නේ වස්තු වර්ගය සමඟ පමණි, රූකඩ ඉතිරිය බලා ගනී. එබැවින්, පැකේජ වර්ග 17 පැකේජ පද්ධති ගැන දනී, බෙදා හැරීමේ කට්ටලයේ හෝ පද්ධතියේ අනුවාදයේ තොරතුරු මත පදනම්ව අවශ්‍ය එක ස්වයංක්‍රීයව හඳුනාගනු ඇත, නමුත් අවශ්‍ය නම්, පැකේජ කළමනාකරුට බල කළ හැකිය.

බොහෝ විට වෙනත් පද්ධතිවල භාවිතා කළ නොහැකි ස්ක්‍රිප්ට් මෙන් නොව, තෙවන පාර්ශ්ව පරිපාලකයින් විසින් ලියන ලද රූකඩ වින්‍යාසයන් වෙනත් ඕනෑම ජාලයක බොහෝ දුරට ගැටළු නොමැතිව ක්‍රියා කරයි. Puppet CookBook හි දැනටමත් සූදානම් කළ වට්ටෝරු දුසිම් තුනක් ඇත. Puppet දැනට පහත මෙහෙයුම් පද්ධති සහ සේවාවන් සඳහා නිල වශයෙන් සහාය දක්වයි: Debian, RedHat/Fedora, Solaris, SUSE, CentOS, Mac OS X, OpenBSD, Gentoo සහ MySQL, LDAP.

රූකඩ භාෂාව

තවදුරටත් ඉදිරියට යාමට, ඔබ මුලින්ම භාෂාවේ මූලික අංග සහ ලක්ෂණ තේරුම් ගත යුතුය. භාෂාව රූකඩයේ ශක්තීන්ගෙන් එකකි. පරිපාලකයා කළමනාකරණය කිරීමට සැලසුම් කරන සම්පත් සහ ගත යුතු ක්‍රියාමාර්ග එය විස්තර කරයි. බොහෝ සමාන විසඳුම් මෙන් නොව, රූකඩයේ භාෂාව විෂමජාතීය පරිසරයක් තුළ ඕනෑම පද්ධතියක සමාන සම්පත් වෙත ප්‍රවේශ වීම පහසු කරයි. සම්පතක විස්තරයක් සාමාන්‍යයෙන් නමක්, වර්ගයක් සහ ගුණාංග වලින් සමන්විත වේ. උදාහරණයක් ලෙස, /etc/passwd ගොනුව වෙත යොමු කර එහි ගුණාංග සකසන්න:

ගොනුව("/etc/passwd":

හිමිකරු => root,

කණ්ඩායම => root,

මාදිලිය => 644,

සේවාදායකයට සම්බන්ධ වන සේවාදායකයින් දැන් /etc/passwd ගොනුව පිටපත් කර නිශ්චිත ගුණාංග සකසනු ඇත. එක් රීතියක් තුළ, ඔබට එකවර සම්පත් කිහිපයක් නිර්වචනය කළ හැකිය, ඒවා අර්ධ කෝණයකින් වෙන් කරන්න. නමුත් සේවාදායකයේ භාවිතා කරන වින්‍යාස ගොනුව සේවාදායකයින්ට වඩා වෙනස් නම් හෝ කිසිසේත් භාවිතා නොකරන්නේ නම් කුමක් කළ යුතුද? උදාහරණයක් ලෙස, VPN සම්බන්ධතා සැකසීමේදී මෙම තත්වය ඇතිවිය හැක. මෙම අවස්ථාවේදී, ඔබ මූලාශ්‍ර විධානය සහිත ගොනුව වෙත යොමු කළ යුතුය. මෙහි විකල්ප දෙකක් තිබේ, ඔබට සුපුරුදු පරිදි, වෙනත් ගොනුවකට මාර්ගය සඳහන් කළ හැකිය, එසේම සහාය දක්වන URI ප්‍රොටෝකෝල දෙක භාවිතා කළ හැකිය: ගොනුව සහ රූකඩ. පළමු අවස්ථාවේ දී, බාහිර NFS සේවාදායකයකට සබැඳියක් භාවිතා කරනු ලැබේ, දෙවන අවස්ථාවෙහිදී, සම්පත් අපනයනය කරන රූකඩ සේවාදායකයේ NFS වැනි සේවාවක් දියත් කෙරේ. අවසාන අවස්ථාවෙහිදී, පෙරනිමි මාර්ගය රූකඩ මූල නාමාවලියට සාපේක්ෂව වේ - /etc/puppet. එනම්, puppet://server.domain.com/config/sshd_config සබැඳිය /etc/puppet/config/sshd_config ගොනුව සමඟ ගැලපේ. /etc/puppet/fileserver.conf ගොනුව තුළ එකම නමේ කොටස භාවිතා කිරීම වඩාත් නිවැරදි වුවද, ඔබට මෙම නාමාවලිය ගොනු බකට් විධානය සමඟින් අභිබවා යා හැක. මෙම අවස්ථාවෙහිදී, ඔබට සේවාවට ප්රවේශය ඇතැම් ලිපිනවලට පමණක් සීමා කළ හැකිය. උදාහරණයක් ලෙස, අපි වින්‍යාස කොටස විස්තර කරමු:

මාර්ගය /var/රූකඩ/config

*.domain.com ඉඩ දෙන්න

127.0.0.1 ඉඩ දෙන්න

192.168.0.* ඉඩ දෙන්න

192.168.1.0/24 ඉඩ දෙන්න

*.wireless.domain.com ප්‍රතික්ෂේප කරන්න

සම්පත විස්තර කිරීමේදී අපි මෙම කොටස වෙත යොමු වෙමු:

මූලාශ්රය => "puppet://server.domain.com/config/sshd_config"

මහා බඩවැලේ සම්පතේ නම ඉදිරියෙන් ඇත. සරලම අවස්ථාවන්හිදී, ඔබට ගොනුව වෙත සම්පූර්ණ මාර්ගය නම ලෙස සඳහන් කළ හැකිය. වඩාත් සංකීර්ණ වින්‍යාසයන් වලදී, අන්වර්ථයක් හෝ විචල්‍යයක් භාවිතා කිරීම වඩා හොඳය. අන්වර්ථ විධානය භාවිතයෙන් අන්වර්ථයක් සකසා ඇත:

ගොනුව("/etc/passwd":

අන්වර්ථය => passwd

විවිධ මෙහෙයුම් පද්ධති සමඟ කටයුතු කිරීමට සිදු වන විට අන්වර්ථ නාමයක් නිර්මාණය කිරීම සඳහා තවත් විකල්පයක් හොඳින් ක්රියා කරයි. උදාහරණයක් ලෙස, අපි sshd_config ගොනුව විස්තර කරන සම්පතක් නිර්මාණය කරමු:

ගොනුව (sshdconfig:

නම => $operatingsystem ? (

Solaris => "/usr/local/etc/ssh/sshd_config",

පෙරනිමිය => "/etc/ssh/sshd_config"

මෙම උදාහරණයේ දී, අපි තේරීමකට මුහුණ දී සිටිමු. Solaris සඳහා ගොනුව වෙන වෙනම දක්වා ඇත, අනෙක් සියල්ල සඳහා ගොනුව /etc/ssh/sshd_config තෝරා ගනු ලැබේ. දැන් මෙම සම්පත sshdconfig ලෙස ප්රවේශ විය හැක, මෙහෙයුම් පද්ධතිය මත පදනම්ව, අවශ්ය මාර්ගය තෝරා ගනු ලැබේ. උදාහරණයක් ලෙස, sshd ඩීමන් ක්‍රියාත්මක වන්නේ නම් සහ නව ගොනුවක් ලැබෙන්නේ නම්, සේවාව නැවත ආරම්භ කළ යුතු බව අපි සඳහන් කරමු:

සේවාව (sshd:

සහතික => සත්‍ය,

දායක වන්න => ගොනුව

පරිශීලක දත්ත සමඟ වැඩ කිරීමේදී විචල්යයන් බොහෝ විට භාවිතා වේ. උදාහරණයක් ලෙස, අපි පරිශීලකයාගේ මුල් නාමාවලිවල පිහිටීම විස්තර කරමු:

$homeroot = "/home"

දැන්, පරිශීලක-විශේෂිත ගොනු වෙත ප්‍රවේශ විය හැක:

$(හෝමරූට්)/$නම

$name පරාමිතිය පරිශීලක ගිණුම් නාමය සමඟ ආදේශ කරනු ඇත. සමහර අවස්ථාවලදී යම් වර්ගයක් සඳහා පෙරනිමි අගයක් නිර්වචනය කිරීම පහසුය. උදාහරණයක් ලෙස, exec වර්ගය ක්‍රියාත්මක කළ හැකි ගොනුවක් සඳහා සෙවිය යුතු නාමාවලි නියම කිරීම ඉතා සාමාන්‍ය දෙයකි:

Exec (path => "/usr/bin:/bin:/usr/sbin:/sbin" )

ඔබට කැදලි ගොනු සහ නාමාවලි කිහිපයක් වෙත යොමු කිරීමට අවශ්‍ය වූ විට, ඔබට ප්‍රත්‍යාවර්ත පරාමිතිය භාවිතා කළ හැක:

ගොනුව("/etc/apache2/conf.d":

මූලාශ්‍රය => "රූකඩ://puppet://server.domain.com/config/apache/conf.d",

Recurse => "ඇත්ත"

බහු සම්පත් පන්ති හෝ අර්ථ දැක්වීම් වලට ඒකාබද්ධ කළ හැකිය. පන්ති යනු පද්ධතියක් හෝ සේවාවක් පිළිබඳ සම්පූර්ණ විස්තරයක් වන අතර ඒවා හුදකලාවේ භාවිතා වේ:

පන්තියේ ලිනක්ස්(

ගොනුව(

"/etc/passwd": හිමිකරු => root, group => root, mode => 644;

"/etc/shadow": හිමිකරු => root, group => root, mode => 440

වස්තු-නැඹුරු භාෂා වල මෙන්, පන්ති නැවත අර්ථ දැක්විය හැක. උදාහරණයක් ලෙස, FreeBSD හි, මෙම ගොනු අයිති කණ්ඩායම රෝද වේ. එබැවින්, සම්පත සම්පූර්ණයෙන්ම නැවත නොලියවීම සඳහා, linux පන්තියට උරුමකම් කියන නව freebsd පන්තියක් නිර්මාණය කරමු:

class freebsd linux උරුම කරයි (

ගොනුව["/etc/passwd"] ( group => wheel );

ගොනුව["/etc/shadow"] (කණ්ඩායම => රෝදය)

පහසුව සඳහා, සියලුම පන්ති වෙනම ගොනුවක තැබිය හැකිය, එය ඇතුළත් කිරීමේ නියෝගය සමඟ ඇතුළත් කළ යුතුය. අර්ථ දැක්වීම් බහුවිධ පරාමිති තර්ක ලෙස ගත හැක, නමුත් උරුමයට සහය නොදක්වන අතර ඔබට නැවත භාවිතා කළ හැකි වස්තු විස්තර කිරීමට අවශ්‍ය විට භාවිතා වේ. උදාහරණයක් ලෙස, පරිශීලකයාගේ මුල් නාමාවලිය සහ නව ගිණුමක් සෑදීමට අවශ්‍ය විධාන නිර්වචනය කරමු:

user_homedir ($group, $fullname, $ingroups) නිර්වචනය කරන්න (

පරිශීලක ("$name":

සහතික => පවතින,

අදහස => "$fullname",

gid => "$ සමූහය",

කණ්ඩායම් => $ කණ්ඩායම්,

සාමාජිකත්වය => අවම,

Shell => "/bin/bash",

නිවස => "/home/$name",

අවශ්‍ය => සමූහය[$group],

Exec("$name homedir":

විධානය => "/bin/cp -R /etc/skel /home/$name; /bin/chown -R $name:$group /home/$name",

නිර්මාණය කරයි => "/home/$name",

අවශ්‍ය => පරිශීලක[$name],

දැන්, නව ගිණුමක් සෑදීමට, හුදෙක් user_homedir වෙත යොමු වන්න:

user_homedir("sergej":

කණ්ඩායම => "sergej",

සම්පූර්ණ නම => "Sergej Jaremchuk",

Ingroups => ["මාධ්‍ය", "පරිපාලක]

වෙනමම, පන්ති වැනි උරුමයට සහාය වන නෝඩ් (නෝඩය) පිළිබඳ විස්තර තිබේ. සේවාලාභියෙකු රූකඩ සේවාදායකයකට සම්බන්ධ වූ විට, එය එම යන්ත්‍රයට පමණක් විශේෂිත වූ සුදුසු නෝඩ් කොටස සහ ආපසු සැකසීම් සොයනු ඇත. අනෙකුත් සියලුම පද්ධති විස්තර කිරීමට ඔබට නෝඩ් පෙරනිමිය භාවිතා කළ හැක. රූකඩ භාෂාවේ සියලුම අංගයන් අවබෝධ කර ගැනීම සඳහා ඔබ ඕනෑම අවස්ථාවක කියවිය යුතු සියලුම වර්ගවල විස්තරයක් වර්ග යොමු ලේඛනයේ දක්වා ඇත. සමහර කොන්දේසි සපුරා ඇති විට (උදාහරණයක් ලෙස, වින්‍යාස ගොනුව වෙනස් කිරීම), ක්‍රෝන් සමඟ වැඩ කිරීම, පරිශීලක අක්තපත්‍ර සහ කණ්ඩායම්, පරිගණක, සම්පත් සවි කිරීම, සේවා ආරම්භ කිරීම සහ නැවැත්වීම, පැකේජ ස්ථාපනය කිරීම, යාවත්කාලීන කිරීම සහ ඉවත් කිරීම ඇතුළුව විවිධ වර්ගවල නිශ්චිත විධාන ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසයි. , SSH යතුරු සමඟ වැඩ කිරීම, Solaris කලාප, සහ යනාදිය. ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍පොළ‍‍‍‍වේ 4 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍"

කාලසටහන (දිනපතා:

කාල සීමාව => දිනපතා,

පරාසය =>

exec("/usr/bin/apt-get update":

කාලසටහන => දිනපතා

එම කාලසීමාව සඳහා යාවත්කාලීන කිරීම සෑම පද්ධතියකින්ම සිදු කරනු ලබන්නේ එක් වරක් පමණක් වන අතර, පසුව කාර්යය සම්පූර්ණ කර ඇතැයි සලකනු ලබන අතර සේවාදායක පරිගණකයෙන් මකා දමනු ලැබේ. රූකඩ භාෂාව වෙනත් හුරුපුරුදු ව්‍යුහයන් සඳහා සහය දක්වයි: කොන්දේසි, ශ්‍රිත, අරා, අදහස් සහ ඒ හා සමාන ය.

රූකඩ ස්ථාපනය

රූබි සඳහා රූබි (අනුවාදය 1.8.1 සහ ඉහළ) OpenSSL සහාය සහ XMLRPC පුස්තකාල මෙන්ම වේගවත් පුස්තකාලය අවශ්‍ය වේ. පරීක්ෂණ ස්ථාපනයේදී භාවිතා කරන ලද උබුන්ටු 7.04 ගබඩාවේ දැනටමත් බලු පැකේජය ඇතුළත් වේ:

$ sudo apt-cache සෙවුම් රූකඩය

~$ ruby ​​-rxmlrpc/Client -e "දෙනවා: ඔව්"

ඔව්

කිසිදු දෝෂයක් නොලැබුනේ නම්, ඔබට අවශ්ය සියල්ල දැනටමත් ඇතුළත් කර ඇත. පද්ධතිවල අපේක්ෂිත වින්‍යාසය විස්තර කරන ගොනු රූකඩ පාරිභාෂිතයේ මැනිෆෙස්ට් ලෙස හැඳින්වේ. ආරම්භ වූ විට, ඩීමන් /etc/puppet/manifests/site.pp ගොනුව කියවීමට උත්සාහ කරයි, එය අතුරුදහන් වී ඇත්නම්, එය අනතුරු ඇඟවීමේ පණිවිඩයක් නිකුත් කරයි. පරීක්‍ෂා කරන විට, මැනිෆෙස්ටයක් අවශ්‍ය නොවන නොබැඳි ආකාරයෙන් ක්‍රියා කරන ලෙස ඔබට ඩීමන් හට පැවසිය හැක:

$ sudo /usr/bin/puppetmasterd --nonodes

අවශ්ය නම්, site.pp වෙනත් ගොනු ඇතුළත් කළ හැකිය, උදාහරණයක් ලෙස, පන්ති විස්තර සමඟ. පරීක්ෂණ ධාවනය සඳහා, ඔබට මෙම ගොනුවට සරලම උපදෙස් එක් කළ හැකිය.

පන්තියේ sudo(

ගොනුව("/etc/sudoers":

හිමිකරු => root,

කණ්ඩායම => root,

මාදිලිය => 440,

නෝඩ් පෙරනිමිය (

sudo ඇතුළත් කරන්න

සියලුම වින්‍යාස ගොනු, සේවාදායකය සහ සේවාදායකයා, /etc/puppet හි පිහිටා ඇත. අපි දැනටමත් කතා කර ඇති fileserver.conf ගොනුව විකල්ප වන අතර Puppet ගොනු සේවාදායකයක් ලෙස ක්‍රියා කරන විට පමණක් භාවිතා වේ. Ubuntu හි, මෙම ගොනුව /etc/puppet/files උප බහලුම අපනයනය කරයි. ssl උප බහලුමෙහි සේවාදායක සම්බන්ධතා සංකේතනය කිරීමට භාවිතා කරන සහතික සහ යතුරු අඩංගු වේ. ඔබ මුලින්ම puppetmasterd ආරම්භ කරන විට යතුරු ස්වයංක්‍රීයව ජනනය වේ, ඔබට ඒවා විධානය සමඟ අතින් සෑදිය හැක:

$ sudo /usr/bin/puppetmasterd --mkusers

puppetd.conf සහ puppetmasterd.conf ගොනු සමාන වේ. ඔවුන් සේවාදායක පද්ධතියේ සහ සේවාදායකයේ ඩීමන් ක්‍රියාත්මක කිරීම සඳහා සමහර පරාමිතීන් නියම කරයි. සේවාදායක ගොනුව වෙනස් වන්නේ සේවාදායක පරාමිතිය ඉදිරියේ පමණි, එය පරිගණකය ධාවනය වන රූකඩ මාස්ටර් වෙත යොමු කරයි:

server=grinder.com

logdir = /var/log/රූකඩ

vardir=/var/lib/රූකඩ

rundir = /var/run

# වාර්තාව සේවාදායකයට යවන්න

වාර්තාව=ඇත්ත

සෑම දෙයක්ම අතින් ටයිප් කරනවා වෙනුවට, ඔබට puppetd භාවිතයෙන් අච්චුවක් සෑදිය හැකිය:

$ puppetd --genconfig > /etc/puppet/puppetd.conf

ඒ හා සමානව, ඔබට සේවාදායකයේ site.pp නිර්මාණය කළ හැකිය:

$ puppetd --genmanifest > /etc/puppet/manifests/site.pp

තවත් tagmail.conf ගොනුවක් ඔබට වාර්තා යවනු ලබන විද්‍යුත් තැපැල් ලිපින සඳහන් කිරීමට ඉඩ දෙයි. සරලම අවස්ථාවක, එක් පේළියක් භාවිතා කළ හැකිය:

සෑම: [ඊමේල් ආරක්ෂිත]

සේවාදායකයාට සේවාදායකයට සම්බන්ධ වීමට හැකි වීමට වින්‍යාස ගොනු ප්‍රමාණවත් නොවේ. මෙය සිදු කිරීම සඳහා, ඔබ තවමත් සහතික අත්සන් කිරීමට අවශ්ය වේ.

පළමුව, සේවාදායකයාට නව පරිගණකය ගැන ඉගෙන ගැනීම සඳහා, සේවාදායක පද්ධතියේ, විධානය ඇතුළත් කරන්න:

$ sudo puppetd --server grinder.com --waitforcert 60 --test

ෆයර්වෝලය වරාය 8140 මත සම්බන්ධතා වලට ඉඩ දිය යුතුය.

සේවාදායකයේ, අත්සන් කළ යුතු සහතික ලැයිස්තුවක් අපට ලැබේ:

$ sudo puppetca --list

nomad.grinder.com

සහ සේවාදායක සහතිකය අත්සන් කරන්න:

$ sudo puppetca --sign nomad.grinder.com

දැන් සේවාදායකයාට සේවාදායකයට නිදහසේ සම්බන්ධ වී සිටුවම් ලබා ගත හැක.

අවාසනාවකට මෙන්, ලිපියේ සීමාවන් තුළ රූකඩයේ සියලු හැකියාවන් පෙන්වීමට නොහැකි ය. එහෙත්, ඔබට පෙනෙන පරිදි, මෙය ක්රියාකාරී සහ නම්යශීලී මෙවලමක් වන අතර, පද්ධති විශාල සංඛ්යාවක් එකවර පරිපාලනය කිරීමේ බොහෝ කාර්යයන් විසඳීමට ඔබට ඉඩ සලසයි. වැදගත්ම දෙය නම්, කුඩා නමුත් නිරන්තරයෙන් වර්ධනය වන ප්‍රජාවක් එක්රැස් කිරීමට ව්‍යාපෘතිය සමත් විය. ඒ නිසා හොඳ අදහසකට මැරෙන්නවත් පැත්තකට වෙන්නවත් ඉඩ නොතබන්න කියලා ප්‍රාර්ථනා කරමු.

වාසනාව!

  1. BladeLogic ව්‍යාපෘති අඩවිය http://www.bladelogic.com වේ.
  2. OpsWare ව්‍යාපෘති අඩවිය http://www.opsware.com වේ.
  3. Cfengine ව්‍යාපෘති අඩවිය http://www.cfengine.org වේ.
  4. රූකඩ ව්‍යාපෘති අඩවිය http://reductivelabs.com/projects/puppet වේ.
  5. රූකඩ කුක්බුක් - http://www.reductivelabs.com/trac/puppet/tagspuppet%2Crecipe.
  6. වේගවත් පුස්තකාලය -



ඉහල