บทนำ
การตั้งค่า Linux Server เป็นขั้นตอนเบื้องต้นที่สำคัญมากสำหรับการทำ DevOps บน Cloud VPS บทความนี้จะสอนวิธีการเตรียม Linux Server Ubuntu 22.04 LTS ให้พร้อมสำหรับการปรับใช้งาน (Deploy) แอปพลิเคชัน ด้วยขั้นตอนการติดตั้ง tools พื้นฐาน ตั้งค่าความปลอดภัย (Security) และการกำหนดค่า DevOps ต่างๆ
ทำไม Linux ถึงเป็น OS ที่นิยมสำหรับ DevOps
Linux ถูกใช้อย่างกว้างขวางในการทำ DevOps เพราะหลายเหตุผล:
- เป็น Open Source ฟรีและสามารถปรับแต่งได้
- มีความมั่นคง (Stability) สูง และใช้งานได้นานโดยไม่ต้องรีสตาร์ท
- รองรับ Docker, Kubernetes, และ Tools DevOps อื่นๆ ได้ดี
- มีชุมชน (Community) ที่ใหญ่และทรัพยากรมากมาย
- ใช้ทรัพยากรระบบน้อยกว่า OS อื่นๆ
ขั้นตอนที่ 1: อัปเดต System Packages
ขั้นตอนแรกของการตั้งค่า Linux Server คือการอัปเดต (Update) System Packages ทั้งรายชื่อแพคเกจและแพคเกจที่ติดตั้งแล้วให้เป็นเวอร์ชันล่าสุด รวมถึงการลบแพคเกจที่ไม่ใช้งานอีกต่อไป:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
ขั้นตอนที่ 2: ตั้งค่า Timezone
ตั้งค่า Timezone ให้เป็น Asia/Bangkok เพื่อให้เวลาของ Server ถูกต้อง ซึ่งสำคัญมากสำหรับการบันทึกข้อมูล (Logging) และการจัดตั้งเวลา (Scheduling):
sudo timedatectl set-timezone Asia/Bangkok
timedatectl status
ขั้นตอนที่ 3: สร้าง Non-root User สำหรับ Deploy
ไม่ควรใช้ Root User สำหรับการทำงานประจำวัน ให้สร้าง User ทั่วไปสำหรับการ Deploy แอปพลิเคชัน:
sudo useradd -m -s /bin/bash devops
sudo usermod -aG sudo devops
sudo passwd devops
# เข้าสู่ devops user
su - devops
ขั้นตอนที่ 4: ตั้งค่า SSH Key Authentication
ปิด SSH Password Authentication และใช้ SSH Keys แทน ซึ่งปลอดภัยกว่ามาก สร้าง SSH Key pair:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ปรับแต่ง SSH configuration ไฟล์ /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
ค้นหาและแก้ไขบรรทัดต่อไปนี้:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
รีสตาร์ท SSH service:
sudo systemctl restart sshd
ขั้นตอนที่ 5: ติดตั้ง UFW Firewall
UFW (Uncomplicated Firewall) ช่วยให้การจัดการ Firewall ง่ายขึ้น ตั้งค่าให้เปิดเฉพาะพอร์ตที่จำเป็น:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
ตรวจสอบสถานะ Firewall:
sudo ufw status
ขั้นตอนที่ 6: ติดตั้ง Fail2ban
Fail2ban เป็นเครื่องมือป้องกันการเข้าถึงที่ไม่ได้รับอนุญาต (Brute Force Attacks):
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
ขั้นตอนที่ 7: ติดตั้ง Docker และ Docker Compose
Docker เป็นเครื่องมือสำคัญสำหรับ DevOps ติดตั้ง Docker และ Docker Compose:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker devops
# ติดตั้ง Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
ขั้นตอนที่ 8: ติดตั้ง Git
Git เป็นระบบ Version Control ที่ใช้กันอย่างแพร่หลาย:
sudo apt install -y git
git config --global user.name "DevOps User"
git config --global user.email "[email protected]"
ขั้นตอนที่ 9: ติดตั้ง Nginx (สำหรับ Reverse Proxy)
Nginx ใช้เป็น Reverse Proxy เพื่อจัดการคำขอ HTTP/HTTPS:
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
ขั้นตอนที่ 10: ตั้งค่า Swap Space
สำหรับ VPS ที่มี RAM น้อย ให้สร้าง Swap Space เพื่อช่วยเมื่อ RAM เต็ม:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
ตรวจสอบความพร้อม: Checklist ก่อนเริ่ม Deploy
- System Packages อัปเดตแล้ว
- Timezone ตั้งค่าเป็น Asia/Bangkok
- Non-root User สำหรับ Deploy ได้สร้างแล้ว
- SSH Key Authentication ตั้งค่าแล้ว Password Login ปิดแล้ว
- UFW Firewall เปิดใช้งานและอนุญาต SSH, HTTP, HTTPS
- Fail2ban ติดตั้งและทำงาน
- Docker และ Docker Compose ติดตั้งแล้ว
- Git ติดตั้งแล้ว
- Nginx ติดตั้งและทำงาน
- Swap Space สร้างแล้ว
บทสรุป
การตั้งค่า Linux Server เบื้องต้นสำหรับ DevOps นั้นสำคัญมากเพื่อให้ได้ระบบที่ปลอดภัย เสถียร และพร้อมสำหรับการ Deploy แอปพลิเคชัน บทความนี้ครอบคลุมขั้นตอนที่สำคัญ 10 ขั้นตอน ตั้งแต่การอัปเดต System Packages ไปจนถึงการตั้งค่า Swap Space เมื่อใช้ Cloud VPS จาก Dot Enterprise (https://de.co.th/cloud-vps) คุณสามารถทำตามขั้นตอนเหล่านี้เพื่อสร้าง Development Environment ที่มีประสิทธิภาพ
