Ի՞նչն առաջացավ՝ հավը, թե՞ ձուն: Բավականին տարօրինակ սկիզբ է Ենթակառուցվածք-որպես կոդ հոդվածի համար, այնպես չէ՞:
Ի՞նչ է ձուն:
Ամենից հաճախ Ենթակառուցվածքը որպես կոդ (IaC) ենթակառուցվածքի ներկայացման հռչակագրային եղանակ է: Դրանում մենք նկարագրում ենք այն վիճակը, որին ցանկանում ենք հասնել՝ սկսած ապարատային մասից և վերջացրած ծրագրային կազմաձևով։ Հետևաբար IaC-ն օգտագործվում է հետևյալի համար.
Ռեսուրսների ապահովում. Սրանք VM-ներ, S3, VPC և այլն: Աշխատանքի հիմնական գործիքները. Terraform и CloudFormation.
Ցանկացած ծածկագիր գտնվում է git պահեստներում: Իսկ թիմի ղեկավարը վաղ թե ուշ կորոշի, որ դրանք պետք է կարգի բերել։ Եվ նա կվերափոխի: Եվ դա որոշակի կառուցվածք կստեղծի։ Եվ նա կտեսնի, որ սա լավ է։
Նաև լավ է, որ այն արդեն կա Գիտլաբը и GitHub- Terraform-ի մատակարար (և սա Ծրագրային ապահովման կոնֆիգուրացիա է): Նրանց օգնությամբ դուք կարող եք կառավարել ամբողջ նախագիծը՝ թիմի անդամներ, CI/CD, git-flow և այլն։
Որտեղի՞ց է եկել ձուն:
Այսպիսով, մենք աստիճանաբար մոտենում ենք հիմնական հարցին.
Առաջին հերթին, դուք պետք է սկսեք պահեստից, որը նկարագրում է այլ պահեստների կառուցվածքը, ներառյալ ձեզ: Եվ, իհարկե, որպես GitOps-ի մաս, դուք պետք է ավելացնեք CI, որպեսզի փոփոխություններն ինքնաբերաբար կատարվեն:
Եթե Git-ը դեռ չի՞ ստեղծվել:
Ինչպե՞ս պահել այն Git-ում:
Ինչպե՞ս տեղադրել CI:
Եթե մենք նաև տեղակայենք Gitlab-ը՝ օգտագործելով IaC, և նույնիսկ Kubernetes-ում:
Իսկ GitLab Runner-ը նաև Kubernetes-ում:
Ինչ վերաբերում է Kubernetes-ին ամպային մատակարարում:
Ի՞նչն եղավ առաջինը. GitLab-ը, որտեղ ես կվերբեռնեմ իմ կոդը, թե՞ կոդը, որը նկարագրում է, թե ինչ տեսակի GitLab է ինձ անհրաժեշտ:
Ստեղծեք Kubernetes կլաստեր՝ դրան փոխանցելով հաշվի նշան:
Ստացեք KUBECONFIG ստեղծված կլաստերից:
Տեղադրեք GitLab-ը Kubernetes-ում:
Ստացեք GitLab-token-ը օգտատիրոջ համար ստեղծված GitLab-ից արմատ.
Ստեղծեք նախագծի կառուցվածք GitLab-ում՝ օգտագործելով GitLab-token-ը:
Տեղադրեք գոյություն ունեցող կոդը GitLab:
?
Շահույթ!
Քայլ 1. Նշանը կարելի է ձեռք բերել բաժնում API ստեղներ.
Քայլ 2. Մենք պատրաստում ենք մեր Terraform-ը 2 հանգույցներից բաղկացած կլաստեր «թխելու» համար: Եթե վստահ եք, որ ունեք բավարար ռեսուրսներ ամեն ինչի համար, ապա կարող եք միացնել ավտոմատ քվոտաները.
Քայլ 8. Git-ի պահոցները ճիշտ հիերարխիա բերելով՝ օգտագործելով Gitlab Մատակարարը:
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
Ցավոք, terraform GitLab մատակարարն ունի լողացող bug. Այնուհետև դուք պետք է ձեռքով ջնջեք հակասող նախագծերը, որպեսզի tf.state-ը շտկվի: Այնուհետև նորից գործարկեք «$ make all» հրամանը
Քայլ 9. Մենք տեղական պահեստները փոխանցում ենք սերվերին:
Մենք հասել ենք նրան, որ մենք կարող ենք ամեն ինչ դեկլարատիվ կառավարել մեր տեղական մեքենայից: Այժմ ես ուզում եմ այս բոլոր առաջադրանքները փոխանցել CI և պարզապես սեղմել կոճակները: Դա անելու համար մենք պետք է մեր տեղական նահանգները (Terraform State) տեղափոխենք CI: Ինչպես դա անել՝ հաջորդ մասում:
Բաժանորդագրվեք մեր Օրագիրորպեսզի բաց չթողնեք նոր հոդվածների թողարկումը: