Негізгі тұжырымдамалар

Ресми Terraform құжаттамасы конфигурацияның барлық аспектілерін егжей-тегжейліarrow-up-right сипаттайды. Осы бөлімнің қалған бөлігін түсіну үшін оны мұқият оқып шығыңыз.Бұл бөлім кітап ішінде қолданылатын негізгі ұғымдарды сипаттайды.

Ресурс

Ресурс - бұл aws_vpc, aws_db_instance,және т.б. Ресурс провайдерге тиесілі, аргументтерді қабылдайды, атрибуттарды шығарады және өмірлік циклге ие. Ресурсты жасауға, алуға, жаңартуға және жоюға болады.

Ресурс модулі

Ресурс модулі — бұл бірге жалпы әрекетті орындайтын байланысқан ресурстар жиынтығы (мысалы, AWS VPC Terraform модуліarrow-up-right VPC, ішкі желілер, NAT шлюзі және т.б., жасайды). Ол провайдер конфигурациясына тәуелді, бұл конфигурация оның ішінде немесе жоғары деңгейлі құрылымдарда (мысалы, инфрақұрылым модулінде) анықталуы мүмкін.

Инфрақұрылым модулі

Инфрақұрылым модулі - бұл логикалық тұрғыдан байланыспаған болуы мүмкін, бірақ ағымдағы жағдайда/жобада/орнатуда бір мақсатқа қызмет ететін ресурс модульдерінің жиынтығы. Ол төменгі деңгейдегі ресурс модульдеріне және ресурстарға берілетін провайдерлерге арналған конфигурацияны анықтайды. Ол әдетте бір логикалық бөлгішке (мысалы, AWS аймағы, Google жобасы) бір нысанмен жұмыс істеуге шектеледі.

Мысалы, `terraform-aws-atlantis`arrow-up-right модулі AWS Fargatearrow-up-right қызметінде Atlantisarrow-up-right-ті іске қосу үшін қажетті инфрақұрылымды басқару үшін `terraform-aws-vpc`arrow-up-right және `terraform-aws-security-group`arrow-up-right сияқты ресурс модульдерін пайдаланады.

Тағы бір мысал - `terraform-aws-cloudquery`arrow-up-right модулі, мұнда `terraform-aws-modules`arrow-up-right ұсынған бірнеше модульдер инфрақұрылымды басқару үшін бірге пайдаланылады, сонымен қатар Docker кескіндерін құру (build), итеру (push) және орналастыру (deploy) үшін Docker ресурстары қолданылады. Барлығы бір жиынтықта.

Композиция

Композиция - бұл бірнеше логикалық бөлінген аймақтарды (мысалы, AWS аймақтары, бірнеше AWS тіркелгілері) қамти алатын инфрақұрылым модульдерінің жиынтығы. Композиция бүкіл ұйым немесе жоба үшін қажетті толық инфрақұрылымды сипаттау үшін қолданылады.

Композиция инфрақұрылым модульдерінен тұрады, ал олар жеке ресурстарды жүзеге асыратын ресурс модульдерінен тұрады.

Simple infrastructure composition

Дереккөз

Дереккөз тек оқуға арналған операцияны орындайды және провайдер конфигурациясына тәуелді, ол ресурс модулінде және инфрақұрылым модулінде қолданылады.

terraform_remote_state дереккөзі жоғары деңгейлі модульдер мен композициялар үшін «желім» қызметін атқарады.

Сыртқыarrow-up-right дереккөз сыртқы бағдарламаға дереккөз ретінде әрекет етуге мүмкіндік береді, бұл Terraform конфигурациясының басқа жерінде пайдалану үшін еркін деректерді шығарады. Мұнда файл атауы сыртқы Python скриптін шақыру арқылы есептелетін terraform-aws-lambda modulearrow-up-right модулінен мысал келтірілген.

httparrow-up-right дереккөзі берілген URL мекенжайына HTTP GET сұрауын жасайды және жауап туралы ақпаратты экспорттайды, бұл көбінесе тума (native) Terraform провайдері жоқ соңғы нүктелерден ақпарат алу үшін пайдалы

Қашықтағы күй

Әрбір инфрақұрылым модулі мен композиция үшін Terraform күйінarrow-up-right ACL (қол жеткізуді басқару тізімдері), нұсқалау және логтаумен конфигурацияланған қашықтағы бэкендте сақтаңыз. Бұл жалғыз, беделді ақиқат көзі орталарды бірізді ұстайды және әдетте автоматтандырылған резервтік көшірмелер сияқты апаттан кейін қалпына келтіру мүмкіндіктерін қамтиды. Күйді жергілікті басқару бірнеше әзірлеуші Terraform-ды бір уақытта қосқанда бірлескен жұмыс мәселелеріне және жарыс жағдайларына әкеліп соғуы мүмкін, нәтижесінде күтпеген жағдайлар орын алады.

Провайдер, провизионер және т.б.

Провайдерлер, провизионерлер және басқа да бірнеше терминдер ресми құжаттамада өте жақсы сипатталған және оларды бұл жерде қайталаудың қажеті жоқ. Менің ойымша, олардың жақсы Terraform модульдерін жазуға қатысы шамалы.

Неге сонша қиын?

Жеке ресурстар инфрақұрылымдағы атомдар сияқты болса, ресурс модульдері — молекулалар (атомдардан тұратын). Модуль — ең кіші нұсқаланған және бөлісуге болатын бірлік. Оның нақты аргументтер тізімі бар, қажетті функцияны орындау үшін осындай бірліктің негізгі логикасын жүзеге асырады. Мысалы, `terraform-aws-security-group`arrow-up-right модулі кіріс деректер негізінде aws_security_group және aws_security_group_rule ресурстарын жасайды. Бұл ресурс модулінің өзін инфрақұрылым модулін құру үшін басқа модульдермен бірге пайдалануға болады.

Молекулалар (ресурс модульдері және инфрақұрылым модульдері) арасында деректерге қол жеткізу модульдердің шығыстары және дереккөздері арқылы жүзеге асырылады.

Композициялар арасындағы қолжетімділік көбінесе қашықтағы күй дереккөздері арқылы жүзеге асырылады. Конфигурациялар арасында деректерді бөлісудің бірнеше жолы барarrow-up-right.

Жоғарыда сипатталған ұғымдарды псевдо-қатынастарға салғанда, ол келесідей көрінуі мүмкін:

Last updated