چه چیزی اول شد - مرغ یا تخم مرغ؟ شروع بسیار عجیبی برای مقاله ای در مورد Infrastructure-as-Code است، اینطور نیست؟
تخم مرغ چیست؟
بیشتر اوقات، زیرساخت به عنوان کد (IaC) یک روش اعلامی برای نشان دادن زیرساخت است. در آن وضعیتی را که میخواهیم به آن دست یابیم، از بخش سختافزار شروع کرده و به پیکربندی نرمافزار ختم میکنیم. بنابراین IaC برای موارد زیر استفاده می شود:
تامین منابع اینها ماشین های مجازی، 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 نیاز دارم؟
MY_SELECTEL_TOKEN را از پانل دریافت کنید my.selectel.ru.
با انتقال یک توکن حساب به آن، یک خوشه Kubernetes ایجاد کنید.
KUBECONFIG را از خوشه ایجاد شده دریافت کنید.
GitLab را روی Kubernetes نصب کنید.
GitLab-token را از GitLab که برای کاربر ایجاد شده است دریافت کنید ریشه.
یک ساختار پروژه در GitLab با استفاده از GitLab-token ایجاد کنید.
کدهای موجود را به GitLab فشار دهید.
؟
سود!
مرحله 1. رمز را می توان در بخش دریافت کرد کلیدهای API.
مرحله 2. ما Terraform خود را برای "پخت" یک خوشه از 2 گره آماده می کنیم. اگر مطمئن هستید که منابع کافی برای همه چیز دارید، می توانید سهمیه خودکار را فعال کنید:
ما از استاندارد برای بسیاری استفاده خواهیم کرد nginx-ingress. در حال حاضر دستورالعمل های زیادی برای نصب آن وجود دارد، بنابراین ما در مورد آن صحبت نمی کنیم.
مرحله 8. آوردن مخازن Git به سلسله مراتب صحیح با استفاده از ارائه دهنده Gitlab.
cd ../internal/gitlab/hierarchy && terraform apply -input=false -auto-approve planfile
متأسفانه، ارائه دهنده terraform GitLab دارای یک شناور است حشره. سپس باید پروژه های متضاد را به صورت دستی حذف کنید تا tf.state برطرف شود. سپس دستور '$make all' را دوباره اجرا کنید
ما به این دست یافتهایم که میتوانیم همه چیز را بهصورت اعلامی از ماشین محلی خود مدیریت کنیم. اکنون می خواهم همه این وظایف را به CI منتقل کنم و فقط دکمه ها را فشار دهم. برای انجام این کار، ما باید ایالت های محلی خود (ایالت Terraform) را به CI منتقل کنیم. نحوه انجام این کار در قسمت بعدی آمده است.
مشترک ما شوید وبلاگتا انتشار مقالات جدید را از دست ندهید!