DevOps careerကို လျှောက်နေတဲ့သူတိုင်း Terraform၊ Ansible စတဲ့ Infrastructure as Code (IaC) tools တွေရဲ့ အလုပ်လုပ်နိုင်စွမ်း ကို ကြားဖူးကြမှာပါ။ အခုခေတ်မှာ Server ပေါ်က User တွေကို Manual လိုက်ဆောက်စရာ မလိုတော့ဘဲ Code တစ်ကြောင်းတည်းနဲ့ အလိုအလျောက် create လုပ်လို့ရနေပါပြီ။ ဒါဆိုရင် "ဘာလို့ Linux ရဲ့ အခြေခံ command တွေဖြစ်တဲ့ useradd တို့၊ passwd တို့ကို လေ့လာနေရဦးမှာလဲ" ဆိုတဲ့ မေးခွန်းက မေးစရာဖြစ်လာပါတယ်။
ကျွန်တော်တို့ အနေနဲ့ နားလည်ထားရမှာကတော့ — Automation ဆိုတာ problem solve လုပ်ဖို့ မဟုတ်ပါဘူး၊ consistency နဲ့ efficiency ရှိရှိ အလုပ်လုပ်ဖို့အတွက်သာ ဖြစ်ပါတယ်။
Real-world example
Terraform က EC2 Instance တစ်ခုကို Provision လုပ်တယ်ဗျာ Cloud-init ကို သုံးပြီး devops-admin ဆိုတဲ့ user တစ်ယောက်ကို အလိုအလျောက် create လုပ်လိုက်တယ်ထားဗျာ။
ဒါမဲ့ Deployment လုပ်နေစဉ်အတွင်းမှာ YAML formatting မှားနေလို့ Cloud-init script က အလုပ်မလုပ်တော့ဘူး။ Terraform က EC2 ကိုတော့ ကောင်းကောင် ဆောက်ပေးလိုက်ပေမဲ့ User account ကတော့ ပေါ်မလာတော့ဘူး။
Pipeline ကတော့ "Success" ဖြစ်တယ်လို့ ပြနေပေမဲ့ တကယ် လက်တွေ့မှာတော့ Server ထဲကို ဘယ်သူမှ Login ဝင်လို့မရတော့တဲ့ အခြေအနေမျိုး ကြုံရတတ်ပါတယ်။ အဲဒီအခါမျိုးမှာ useradd command အလုပ်လုပ်ပုံ၊ /etc/passwd ဖိုင်ထဲက configuration တွေနဲ့ Linux Permissions တွေကို နားလည်ထားမှသာ အဲဒီ Server ကို ပြန် debug လုပ်နိုင်မဲ့ တစ်ခုတည်းသော နည်းလမ်းဖြစ်ပါလိမ့်မယ်။
How to debug this issue in real-world
Terraform deployment လုပ်ပြီးနောက် server ထဲကို login မဝင်နိုင်တဲ့အခြေအနေဖြစ်လာတဲ့အခါ—
1. Instance status ကို စစ်ပါ
1aws ec2 describe-instance-status --instance-ids i-xxxxInstance က running ဖြစ်နေလား
Status checks = 2/2 passed ဖြစ်နေလား တစ်ချက်စစ်ပါမယ်
2. SSH နဲ့ connect လုပ်ပါ (SSH မရရင် SSM သုံးပါ)
1ssh ec2-user@<public-ip>Login မဝင်နိုင်ရင် recovery method ကို သုံးရပါမယ်
3. Cloud-init logs ကို စစ်ပါ
1sudo cat /var/log/cloud-init.log
2sudo cat /var/log/cloud-init-output.logဒီနေရာမှာ ရှာရမယ့်အချက်တွေက—
YAML format error
script failure
permission denied error
4. User create လုပ်ပြီးလား စစ်ပါ
1cat /etc/passwd | grep devops-admin
2id devops-adminဘာမှမပြန်လာဘူးဆိုရင် user creation failure ဖြစ်တာပါ။
5. Manual recovery (Linux fundamentals' main part)
1sudo useradd devops-admin
2sudo passwd devops-admin
3sudo usermod -aG wheel devops-adminအခုဆိုရင် system ထဲ user ကို ပြန်လည် restore လုပ်ပြီးပါပြီ။
Linux ရဲ့ အခြေခံအလုပ်လုပ်ပုံ
useradd command ကို ရိုက်လိုက်တဲ့အခါ systemထဲ ဘာတွေဖြစ်သွားလဲဆိုတာ သိထားဖို့ လိုပါတယ်
1/etc/passwd ဖိုင်ထဲမှာ User အသစ်ရဲ့ dataတွေ ရောက်သွားတယ်။
2
3/etc/shadow ဖိုင်ထဲမှာ Password Hash တွေ သိမ်းလိုက်တယ်။
4
5/home/ အောက်မှာ User အတွက် Directory အသစ်တစ်ခု ဆောက်ပေးလိုက်တယ်။ဒီအချက်တွေကို သိထားရင် ကိုယ့်ရဲ့ Terraform Code တစ်ခုခု လွဲနေတဲ့အခါ၊ ဒါမှမဟုတ် IAM Role နဲ့ Server ကြား connection အဆင်မပြေတဲ့အခါ ဘယ်နေရာမှာ ပြဿနာရှိလဲဆိုတာကို ချက်ချင်း အဖြေရှာနိုင်မှာပါ။
ကျွန်တော်တို့အနေနဲ့ အခြေခံကို လေ့လာတာက Manual ပဲ သုံးဖို့ မဟုတ်ပါဘူး။ "အခြေခံကို ကျွမ်းကျင်မှသာ အဆင့်မြင့်တဲ့ Automation တွေ system နောက်မှာ ဘယ်လိုအလုပ်သွားလဲဆိုတာနဲ့ ကိုယ်တိုင်လည်း စနစ်တကျ automation ကိုသုံးပြီး အလုပ်လုပ်နိုင်မှာ" ဖြစ်ပါတယ်။
Discussion
Join the conversation
How do you feel about this article?
Comments
Sign in to join the conversation
Sign in to be the first to comment!
Share Your Article
Share with your professional network
Recent Articles
Day 1 - Software Development ကို ပိုပြီးမြန်စေမယ့် CI/CD
Software တစ်ခုရေးပြီးပြီဆိုရင် "ငါ့စက်ထဲမှာတော့ အလုပ်လုပ်တယ်" ဆိုရုံနဲ့ မပြီးသေးပါဘူး။ User တွေသုံးမယ့် Server ပေါ်ရောက်...

Secure AWS ECR Github Action Using OIDC
Modern DevOps နှင့် Cloud Security တို့မှာ အဓိကဖြစ်လာသည့် Authentication System ယနေ့ခေတ် DevOps, Cloud Engineering, CI/C...
From Surviving to Thriving
“AI ကြောင့် developer အလုပ်ပျောက်သွားမလား?” ဆိုတဲ့ မေးခွန်းကို Junior developer တိုင်း စဉ်းစားဖူးကြမှာပါ။ ဈေးကွက်အခြေအနေ...

AWS - Global Infra
AWS Global Infra AWS Global Infra & Service Type ဆိုတဲ့ ခေါင်းစဉ်နဲ့ ၂၀၂၅ ဒီဇင်ဘာမှာရေးထားဖူးတဲ့ article ကို အရင်ဆုံး ဖတ...

Production Grade AKS Secret Management Using Azure Key Vault and Managed Identity
ကျွန်တော်တို့ Application တွေမှာ အသုံးပြုတဲ့ .env (Sensitive Data) တွေကို secure ဖြစ်အောင် manage လုပ်ဖို့ဆိုတာ DevOps တ...

