Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

මේ එම කතාවේ පිටපතකි DevopsConf 2019-10-01 и SPbLUG 2019-09-25.

මෙය ස්වයං-ලිඛිත වින්‍යාස කළමනාකරණ පද්ධතියක් භාවිතා කළ ව්‍යාපෘතියක කතාවයි සහ ඇන්සිබල් වෙත මාරු වීමට මාස 18ක් ගත වූයේ මන්ද යන්නයි.

දින අංකය -ХХХ: ආරම්භයට පෙර

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

මුලදී, යටිතල පහසුකම් Hyper-V ධාවනය වන වෙනම ධාරක රාශියකින් සමන්විත විය. අතථ්‍ය යන්ත්‍රයක් සෑදීමට බොහෝ පියවර අවශ්‍ය විය: තැටි නියම ස්ථානයේ තැබීම, DNS ලියාපදිංචි කිරීම, DHCP වෙන් කිරීම, VM වින්‍යාසය git ගබඩාවට තැබීම. මෙම ක්‍රියාවලිය අර්ධ වශයෙන් යාන්ත්‍රික කර ඇත, නමුත් උදාහරණයක් ලෙස, VMs අතින් ධාරක අතර බෙදා හරින ලදී. නමුත්, උදාහරණයක් ලෙස, සංවර්ධකයින්ට git හි VM වින්‍යාසය නිවැරදි කර VM නැවත ආරම්භ කිරීමෙන් එය යෙදිය හැකිය.

අභිරුචි වින්‍යාස කළමනාකරණ විසඳුම

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

මුල් අදහස IaC ලෙස සංකල්පනය කර ඇත: නැවත පණගැන්වූ විට ඔවුන්ගේ තත්වය ශුන්‍යයට නැවත සකසන බොහෝ රාජ්‍ය රහිත VMs. VM වින්‍යාස කළමනාකරණය යනු කුමක්ද? ක්රමානුකූලව එය සරල බව පෙනේ:

  1. VM සඳහා ස්ථිතික MAC එකක් ඇණ ගසා ඇත.
  2. CoreOS සමඟ ISO එකක් සහ ඇරඹුම් තැටියක් VM වෙත සම්බන්ධ කර ඇත.
  3. CoreOS විසින් අභිරුචිකරණ ස්ක්‍රිප්ටය එහි IP මත පදනම්ව WEB සේවාදායකයෙන් බාගත කිරීමෙන් දියත් කරයි.
  4. ස්ක්‍රිප්ට් IP ලිපිනය මත පදනම්ව SCP හරහා VM වින්‍යාසය බාගත කරයි.
  5. systemd ඒකක ගොනු වල පා රෙදි සහ bash ස්ක්‍රිප්ට් වල පා රෙදි දියත් කෙරේ.

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

මෙම විසඳුමට පැහැදිලි ගැටළු රාශියක් තිබුණි:

  1. CoreOS ISO අවලංගු කර ඇත.
  2. VMs සංක්‍රමණය කිරීමේදී/සාදන විට සංකීර්ණ ස්වයංක්‍රීය ක්‍රියා සහ මැජික් ගොඩක්.
  3. යාවත්කාලීන කිරීමේ දුෂ්කරතා සහ මෘදුකාංගයේ නිශ්චිත අනුවාදයක් අවශ්‍ය වූ විට. කර්නල් මොඩියුල සමඟ ඊටත් වඩා විනෝදජනකයි.
  4. දත්ත නොමැතිව VM ලබාගෙන නොමැත, i.e. අතිරේක පරිශීලක දත්ත සවිකර ඇති තැටියක් සමඟ VMs දර්ශනය විය.
  5. යමෙක් systemd ඒකක පරායත්තතා නිරන්තරයෙන් ඉස්කුරුප්පු කරමින් සිටි අතර නැවත පණගැන්වීමේදී CoreOS කැටි වනු ඇත. CoreOS හි ඇති මෙවලම් භාවිතයෙන් මෙය අල්ලා ගැනීම අපහසු විය.
  6. රහස් කළමනාකරණය.
  7. CM කෙනෙක් හිටියේ නැහැ. CoreOS සඳහා bash සහ YML configs තිබුනා.

VM වින්‍යාසය යෙදීමට, ඔබ එය නැවත පණගැන්වීමට අවශ්‍ය වේ, නමුත් එය නැවත ආරම්භ නොවිය හැක. එය පැහැදිලි ගැටළුවක් සේ පෙනේ, නමුත් ස්ථීර තැටි නොමැත - ලොග් සුරැකීමට තැනක් නොමැත. හොඳයි, හරි, අපි කර්නල් පැටවීමේ විකල්පය එකතු කිරීමට උත්සාහ කරමු එවිට ලඝු-සටහන් යවනු ලැබේ. නමුත් නැත, ඒ සියල්ල කෙතරම් සංකීර්ණද?

දින #0: ගැටලුව හඳුනා ගන්න

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

එය සුපුරුදු සංවර්ධන යටිතල පහසුකම් විය: jenkins, පරීක්ෂණ පරිසරයන්, අධීක්ෂණය, රෙජිස්ට්රි. CoreOS නිර්මාණය කර ඇත්තේ k8s පොකුරු සත්කාරකත්වය සඳහා, i.e. ගැටළුව වූයේ CoreOS භාවිතා කරන ආකාරයයි. පළමු පියවර වූයේ තොගයක් තෝරා ගැනීමයි. අපි පදිංචි විය:

  1. CentOS මූලික බෙදාහැරීමක් ලෙස, මන්ද නිෂ්පාදන පරිසරයට ආසන්නතම බෙදා හැරීම මෙයයි.
  2. පිළිතුරු වින්‍යාස කළමනාකරණය සඳහා, මන්ද ඒ පිළිබඳව පුළුල් පරීක්ෂණයක් පැවැත්විණි.
  3. ජෙන්කින්ස් පවතින ක්‍රියාවලීන් ස්වයංක්‍රීය කිරීම සඳහා රාමුවක් ලෙස, මන්ද එය දැනටමත් සංවර්ධන ක්රියාවලීන් සඳහා ක්රියාකාරීව භාවිතා කර ඇත
  4. Hyper-V අථත්යකරණ වේදිකාවක් ලෙස. කතාවේ විෂය පථයෙන් ඔබ්බට යන හේතු ගණනාවක් ඇත, නමුත් කෙටියෙන් - අපට වලාකුළු භාවිතා කළ නොහැක, අපි අපගේම දෘඩාංග භාවිතා කළ යුතුය.

දින අංක 30: පවතින ගිවිසුම් සවි කිරීම - ගිවිසුම් කේතය ලෙස

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

තොගය පැහැදිලි වූ විට, චලනය සඳහා සූදානම් වීම ආරම්භ විය. කේතය ආකාරයෙන් පවතින ගිවිසුම් නිවැරදි කිරීම (කේතය ලෙස ගිවිසුම්!). සංක්රමණය අතින් ශ්රමය -> යාන්ත්රිකකරණය -> ස්වයංක්රීයකරණය.

1. VM වින්‍යාස කරන්න

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

ඇන්සිබල් මේ සඳහා විශිෂ්ට කාර්යයක් කරයි. අවම ශරීර චලනයන් සමඟ ඔබට VM වින්‍යාසයන් පාලනය කළ හැකිය:

  1. git ගබඩාවක් සාදන්න.
  2. අපි VMs ලැයිස්තුව ඉන්වෙන්ටරිවල, ක්‍රීඩා පොත්වල සහ භූමිකාවන්හි වින්‍යාසයන් තුළ තැබුවෙමු.
  3. අපි ඔබට Ansible ධාවනය කළ හැකි විශේෂ jenkins වහලෙක් පිහිටුවනවා.
  4. අපි රැකියාවක් නිර්මාණය කර ජෙන්කින්ස් වින්‍යාස කරමු.

පළමු ක්රියාවලිය සූදානම්. ගිවිසුම් ස්ථිරයි.

2. නව VM සාදන්න

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

මෙහි සෑම දෙයක්ම ඉතා පහසු නොවීය. Linux වෙතින් Hyper-V මත VM නිර්මාණය කිරීම එතරම් පහසු නොවේ. මෙම ක්‍රියාවලිය යාන්ත්‍රික කිරීමට ගත් එක් උත්සාහයක් වූයේ:

  1. Ansbile WinRM හරහා windows host වෙත සම්බන්ධ වේ.
  2. Ansible powershell script එකක් ධාවනය කරයි.
  3. පවර්ෂෙල් ස්ක්‍රිප්ට් නව වීඑම් එකක් නිර්මාණය කරයි.
  4. Hyper-V/ScVMM භාවිතා කරමින්, ආගන්තුක OS තුළ VM නිර්මාණය කරන විට, සත්කාරක නාමය වින්‍යාස කර ඇත.
  5. DHCP කල්බදු යාවත්කාලීන කරන විට, VM එහි සත්කාරක නාමය යවයි.
  6. වසම් පාලක පැත්තේ සම්මත ddns සහ dhcp ඒකාබද්ධ කිරීම DNS වාර්තාව වින්‍යාස කරයි.
  7. ඔබට ඔබේ ඉන්වෙන්ටරියට VM එකක් එකතු කර එය Ansible සමඟ වින්‍යාසගත කළ හැක.

3.VM ආකෘතියක් සාදන්න

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

ඔවුන් මෙහි කිසිවක් නිර්මාණය කළේ නැත - ඔවුන් පැකර් එකක් ගත්තා.

  1. පැකර්, කික්ස්ටාට් වින්‍යාසය git ගබඩාවට එක් කරන්න.
  2. hyper-v සහ Packer සමඟ විශේෂ jenkins slave එකක් පිහිටුවීම.
  3. අපි රැකියාවක් නිර්මාණය කර ජෙන්කින්ස් වින්‍යාස කරමු.

මෙම සබැඳිය ක්‍රියා කරන ආකාරය:

  1. පැකර් හිස් VM එකක් සාදා ISO ලබා ගනී.
  2. VM ආරම්භ වන අතර, පැකර් අපගේ කික්ස්ටාට් ගොනුව නම්‍ය තැටියකින් හෝ http වලින් භාවිතා කිරීමට විධානය ඇරඹුම් කාරකයට ඇතුල් කරයි.
  3. Anaconda අපගේ වින්‍යාසය සමඟ දියත් කර ඇති අතර, ආරම්භක OS වින්‍යාසය සිදු කර ඇත.
  4. පැකර් VM ලැබෙන තෙක් බලා සිටී.
  5. VM තුළ ඇති පැකර් දේශීය මාදිලියේ ඇන්සිබල් ධාවනය කරයි.
  6. Ansible එය පියවර #1 හි ක්‍රියා කරන භූමිකාවන්ම භාවිතා කරයි.
  7. පැකර් VM අච්චුව අපනයනය කරයි.

දිනය #75: ගිවිසුම කඩ නොකර නැවත සකස් කරන්න = ටෙස්ට් ඇන්සිබල් + ටෙස්ට් කිචන්

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

කේතයෙන් සම්මුතීන් ග්‍රහණය කිරීම ප්‍රමාණවත් නොවිය හැක. සියල්ලට පසු, ක්රියාවලියේ ඇතුළත සහ පිටතදී ඔබට යමක් වෙනස් කිරීමට අවශ්ය නම්, ඔබට යමක් බිඳ දැමිය හැකිය. එබැවින්, යටිතල පහසුකම් සම්බන්ධයෙන්, මෙම යටිතල පහසුකම් පරීක්ෂා කිරීම පෙනේ. කණ්ඩායම තුළ දැනුම සමමුහුර්ත කිරීමට, අපි Ansible භූමිකාවන් පරීක්ෂා කිරීමට පටන් ගත්තෙමු. මම ගැඹුරට නොයමි, මන්ද ... එම අවස්ථාවේ සිදුවීම් විස්තර කරන ලිපියක් තිබේ ඔබට හැකි නම් මාව පරීක්ෂා කරන්න හෝ YML ක්‍රමලේඛකයින් ඇන්සිබල් පරීක්ෂා කිරීමට සිහින දකිනවාද?(ස්පොයිලර් මෙය අවසාන අනුවාදය නොවන අතර පසුව සියල්ල වඩාත් සංකීර්ණ විය ඇන්සිබල් පරීක්ෂා කිරීම ආරම්භ කරන්නේ කෙසේද, ව්‍යාපෘතිය වසරකින් නැවත සකස් කර පිස්සු වට්ටන්න එපා).

දිනය #130: සමහරවිට CentOS+ansible අවශ්‍ය නොවේද? සමහර විට openshift?

යටිතල පහසුකම් හඳුන්වාදීමේ ක්‍රියාවලිය එකම එකක් නොවන අතර අතුරු ව්‍යාපෘති තිබූ බව අප තේරුම් ගත යුතුය. උදාහරණයක් ලෙස, අපගේ යෙදුම openshift හි දියත් කිරීමට ඉල්ලීමක් පැමිණි අතර මෙය සතියකට වඩා වැඩි කාලයක් පර්යේෂණ සිදු විය අපි Openshift හි යෙදුම දියත් කර පවතින මෙවලම් සංසන්දනය කරමු චලනය කිරීමේ ක්රියාවලිය මන්දගාමී විය. ප්‍රතිඵලය වූයේ openshift මගින් සියලු අවශ්‍යතා ආවරණය නොවන බවයි; ඔබට සැබෑ දෘඪාංග හෝ අවම වශයෙන් කර්නලය සමඟ සෙල්ලම් කිරීමේ හැකියාව අවශ්‍ය වේ.

දින #170: Openshift සුදුසු නොවේ, අපි Windows Azure Pack සමඟ අවස්ථාවක් ගනිමු?

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

Hyper-V ඉතා මිත්‍රශීලී නොවේ, SCVMM එය වඩා හොඳ කරන්නේ නැත. නමුත් Windows Azure Pack වැනි දෙයක් තිබේ, එය SCVMM වෙත ඇඩෝනයක් වන අතර Azure අනුකරණය කරයි. නමුත් යථාර්ථයේ දී, නිෂ්පාදිතය අතහැර දමා ඇති බව පෙනේ: ලේඛනගත සම්බන්ධතා බිඳී ඇති අතර ඉතා විරල ය. නමුත් අපගේ වලාකුළේ ජීවිතය සරල කිරීම සඳහා විකල්ප අධ්‍යයනයේ කොටසක් ලෙස ඔවුන් එය ද බැලුවා.

දිනය #250: Windows Azure Pack ඉතා හොඳ නැත. අපි SCVMM හි රැඳී සිටිමු

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

Windows Azure Pack බලාපොරොත්තු සහගත ලෙස පෙනුනද, අනවශ්‍ය විශේෂාංග සඳහා WAP එහි සංකීර්ණතා පද්ධතියට ගෙන නොඒමට තීරණය කර SCVMM සමඟ රැඳී සිටියේය.

දවස #360: අලි කෑල්ල කෑල්ල

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

වසරකට පසුව පමණක් ගමන් කිරීමේ වේදිකාව සූදානම් වූ අතර චලනය කිරීමේ ක්රියාවලිය ආරම්භ විය. මෙම කාර්යය සඳහා, SMART කාර්යයක් සකසා ඇත. අපි සියලුම VMs පරීක්ෂා කර, වින්‍යාසය එකින් එක හඳුනාගෙන, එය Ansible හි විස්තර කර, පරීක්ෂණවලින් ආවරණය කිරීමට පටන් ගත්තෙමු.

දිනය #450: ඔබ ලබා ගත්තේ කුමන ආකාරයේ පද්ධතියක්ද?

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

ක්රියාවලියම සිත්ගන්නා සුළු නොවේ. එය සාමාන්‍ය දෙයකි, බොහෝ වින්‍යාසයන් සාපේක්ෂ වශයෙන් සරල හෝ සමස්ථානික වූ අතර පැරේටෝ මූලධර්මය අනුව, VM වින්‍යාසයන්ගෙන් 80% කට 20% ක කාලයක් අවශ්‍ය විය. එකම මූලධර්මය අනුව, චලනය සඳහා 80% ක කාලයක් ගත වූ අතර චලනය සඳහා 20% ක් පමණි.

දිනය #540: අවසන්

Ansible: CoreOS සිට CentOS වෙත 120 VM වින්‍යාසය මාස 18කින් සංක්‍රමණය වීම

මාස 18 ක් තුළ සිදු වූයේ කුමක්ද?

  1. ගිවිසුම් කේතයක් බවට පත් විය.
  2. අතින් ශ්රමය -> යාන්ත්රිකකරණය -> ස්වයංක්‍රීයකරණය.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න