Episode 1: Building the DevOps Playground

DevOps လောကထဲကို ဝင်ရောက်ဖို့ ပထမဆုံး ခြေလှမ်း — လုံးဝအစကနေ စပြီး ကိုယ်ပိုင် Lab ကိုယ်တိုင်တည်ဆောက်ကြည့်မယ်။

Target Goals
နောက်လာမယ့် DevOps project တွေ (CI/CD, Kubernetes, IaC, monitoring စတာတွေ) အတွက် စမ်းသပ်စရာနေရာတစ်ခုအဖြစ် အသုံးပြုနိုင်မယ့် multi-VM home lab တစ်ခုကို တည်ဆောက်ဖို့ပါ။

လိုအပ်တဲ့ Tools တွေ

CategoryTools / VersionPurpose
Host OSWindows 11Your main workstation
HypervisorVMware Workstation ProVirtual machine management
Guest OSUbuntu 24.04 LTSLightweight, stable Linux base
UtilitiesGit, curl, vim/nano, net-toolsBasic administration
OptionalExcalidraw / Draw.ioDiagram ရေးဆွဲရန်

Step-by-Step Setup

1. Create the Virtual Machines

VM NameRoleCPURAMDiskOS
devops-controllerAnsible + Terraform control node2 vCPU4 GB40 GBUbuntu 24.04
ci-serverJenkins + Git runner2 vCPU4 GB40 GBUbuntu 24.04
k8s-labFuture Kubernetes cluster node4 vCPU6 GB60 GBUbuntu 24.04

2. Network Design

Use Host-only + NAT networks:

  • vmnet1 → internal (cluster traffic အတွက်)
  • vmnet8 → NAT (internet ချိတ်ဆက်ဖို့)
    Assign static IPs in 192.168.56.0/24 range.

Example /etc/netplan/00-installer-config.yaml:

network:
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.56.10/24]
      gateway4: 192.168.56.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
  version: 2

3. Base System Setup
ဒီ command တွေကို VM အားလုံးမှာ run ပါ။

sudo apt update && sudo apt upgrade -y
sudo apt install git curl vim net-tools unzip htop -y

hostname ကို သတ်မှတ်ပါ။
sudo hostnamectl set-hostname devops-controller

4. Enable SSH & Key-Based Access

sudo apt install openssh-server -y
ssh-keygen -t ed25519
ssh-copy-id user@192.168.56.11

အခုဆိုရင် controller ကနေ တခြား VM တွေကို password မလိုပဲ ချိတ်ဆက်နိုင်ပါပြီ။

5. Create Git Repository for Documentation

mkdir ~/cloudobsession-lab && cd ~/cloudobsession-lab
git init
echo "# Cloud Obsession Tech - DevOps Lab" > README.md
git add . && git commit -m "Initial lab setup"

Diagram: Excalidraw သို့မဟုတ် Draw.io နဲ့ ဖန်တီးပါ

3 VMs connected via internal network
One outbound NAT link
Controller pushing configuration via SSH
Store it as /assets/lab-network.excalidraw.

Expected Output
3 Ubuntu VMs reachable via SSH
Static network confirmed via ping
Git repo initialized for documentation

What You Learned
VM provisioning basics
Static network and SSH configuration
Version-controlled documentation setup

အပိုင်း ၂: “CI/CD ကို အစကနေ စပြီး တည်ဆောက်မယ် – Jenkins + GitHub ကို ပေါင်းစပ်မယ်”
ပထမဆုံး build နဲ့ Docker push ကို automate လုပ်ကြည့်မယ်။

Leave a Reply

Your email address will not be published. Required fields are marked *