Скрипттерді пайдалану
Скрипттер сервисті жайылту процесінде әртүрлі операцияларды орындауға мүмкіндік береді, мысалы, кластерге біріктіру кезінде тораптарды синхрондау.
Скрипттерді пайдаланудың екі тәсілі бар:
- Cloud-init арқылы;
- агент арқылы.
Cloud-init бір серверде скрипттердің орындалу ретін баптауға және олардың іске қосылу сәтін белгілеуге мүмкіндік береді. Мысалы, скрипт ОЖ әр жүктелген сайын немесе тек бір рет орындала алады.
Бұл тәсілдің кемшіліктері:
- Егер скрипт қателікпен орындалса, бұл инстансты жайылтуды тоқтатады, яғни барлық қажетті баптаулар қолданылмайды.
- Terraform-та басқа ресурстарға қатысты скрипттің іске қосылу тәуелділігін орнату мүмкін емес: скрипт әлі орындалып жатуы мүмкін, бірақ Marketplace-та инстансты жайылту аяқталды деп белгіленіп қояды.
Cloud-init арқылы скрипттерді пайдалану үшін:
- (Опционалды) Кіріс айнымалыларында скрипттердің мазмұнын сипаттаңыз. Bash және Python тілдеріне қолдау көрсетіледі.
- Скрипттердің орындалу ретін және баптауларын
ivkcs_user_dataресурсыныңuser_scriptаргументінде сипаттаңыз. Толығырақ Ресурс ivkcs_user_data бөлімінде. - Скрипттердің мазмұнын айнымалыларды пайдаланып немесе тікелей ресурста сипаттаңыз.
Аргумент user_script бөлімінде манифестің ivkcs_user_data ресурсында скрипттерді сипаттау мысалы келтірілген.
Агент скрипттің іске қосылу тәуелділігін Terraform-тағы басқа ресурстарға қатысты орнатуға, тайм-аутты белгілеуге, шығу кодтарын бақылауға және қателер болған жағдайда қосымшаны жайылтуды тоқтатуға мүмкіндік береді.
Сервисті жайылту процесінде агент орындалған скрипттердің хешін конфигурацияларды басқару сервисіне жібереді. Бұл сервис инстансы бар ВМ-ның ағымдағы күйін бағалауға (осы сәтке дейін қандай скрипттер орындалғанын) және оны Terraform манифестінде сипатталған күйге келтіруге мүмкіндік береді.
Агент конфигурацияларды басқару сервисіне скрипттердің мәртебесін жібереді. Мүмкін мәртебелер:
-
ok— скрипт сәтті орындалды. -
running— скрипт орындалып жатыр. -
failed— скрипт қателікпен аяқталды. Оның себебін анықтау үшін агент журналдарын қараңыз.Егер
failedмәртебесі алынса, жайылту жүйесі сервисті жайылту процесін қайта іске қосады. Қайта әрекеттер бір жарым сағатқа дейін созылуы мүмкін және олардыsettings.yamlфайлында өшіруге болады (толығырақ — settings.yaml файлы бөлімінде).
Скрипттердің орындалу нәтижелерін форматталған түрде конфигурацияларды басқару сервисіне жіберіп, оларды басқа скрипттерді орындау кезінде пайдалануға болады.
Бұл тәсілдің кемшіліктері:
- Агентті орнату қажет.
- ОЖ қайта іске қосылғанда скрипттерді қайта іске қосу мүмкін емес.
Агент арқылы скрипттерді пайдалану үшін:
-
Манифестте ВМ-ға агентті орнату сипатталғанына көз жеткізіңіз. Егер агентті орнату сипатталмаған болса, оны сипаттаңыз (толығырақ — Ресурс ivkcs_user_data бөлімінде).
-
(Опционалды) Кіріс айнымалыларында скрипттердің мазмұнын сипаттаңыз. Bash және Python тілдеріне қолдау көрсетіледі.
-
Скрипттердің орындалу ретін және баптауларын сипаттаңыз. ivkcs_agent_exec ресурсын немесе
localsблогын пайдаланыңыз.Мысалы, скрипт үшін орындалу тайм-аутын, скриптке
failedмәртебесі берілгенге дейінгі орындалу әрекеттерінің санын анықтауға болады.Әрбір скрипт үшін ivkcs_agent_exec ресурсы бөлімінде сипатталған опцияларды анықтауға болады (мысалы, орындалу тайм-ауты, оның мәртебесі
failedдеп анықталғанға дейінгі скриптті орындау әрекеттерінің саны). -
Скрипттердің мазмұнын айнымалыларды пайдаланып немесе тікелей ресурста сипаттаңыз.
-
(Опционалды) Егер скрипттердің нәтижелерін шығыс параметрлерінде (толығырақ — Шығыс параметрлерінің сипаттамасы) немесе манифестің басқа ресурстарында пайдалану үшін алу қажет болса,
ivkcs_agent_script_resultдеректер көзін пайдаланыңыз.
Terraform манифесінің мысалы бөлімінде ivkcs_agent_exec ресурсында скрипттерді қолданатын манифест мысалы келтірілген.