Deploy OpenStack The Series Part I: ติดตั้ง Container Linux by CoreOS

MasterTos
2 min readSep 10, 2019

--

ซีรีย์การติดตั้ง OpenStack โดยใช้ Armada ที่จะอธิบายแบบภาษาบ้าน ๆ ตามความเข้าใจของผมเอง จุดประสงค์คือกันลืม ในอนาคตจะได้เข้ามาอ่านใหม่ โดยจะแบ่งออกเป็น 3 ส่วนหลัก ๆ คือ 1.ติดตั้ง CoreOS 2.ติดตั้ง Kubernetes และ 3.ติดตั้ง OpenStack

https://coreos.com/

Container Linux คืออะไร

อธิบายแบบสั้น ๆ Container Linux ก็คือ Linux ที่ออกแบบมาเพื่อใช้งานกับ Container โดยเฉพาะโดยตัดส่วนที่ไม่จำเป็นออกทั้งหมดทำให้ตัว Distro มีขนาดเล็กและมีความปลอดภัยสูงถ้าต้องการใช้งานซอฟต์แวร์อะไรก็ไปเปิดใน Container เอา

ดาวน์โหลด CoreOS

ในที่นี้ผมจะลง CoreOS ในเครื่อง Proxmox ดังนั้นผมก็จะไปโหลด iso ที่นี่ ส่วนวิธีสร้าง Boot ขอข้ามเลยนะครับ

ปุ่มแดง ๆ กดเอาเลยครับ

เริ่มต้นติดตั้ง CoreOS

บูทครั้งแรกหน้าตาก็จะประมาณนี้ครับ

1. สร้าง Container Linux config

อันนี้ไม่ต้องสร้างในเครื่อง CoreOS นะครับ ไปสร้างจากเครื่องอื่นที่เราสามารถ ssh จากเครื่อง coreos ไปหาได้

#config.yaml
passwd:
users:
- name: "test"
password_hash: "$1$1kty1..."
ssh_authorized_keys:
- "ssh-rsa AAAAB3NzaC1..."
groups:
- "sudo"
- "docker"
storage:
files:
- filesystem: "root"
path: "/etc/hostname"
mode: 0644
contents:
inline: coreos1

networkd:
units:
- name: static.network
contents: |
[Match]
Name=eth0
[Network]
Address=192.168.0.101/24
Gateway=192.168.0.2
DNS=8.8.8.8 8.8.4.4

จากด้านบนสามารถเปลี่ยนค่าต่าง ๆ ได้ตามสะดวกเลยนะครับ โดยความหมายของแต่ละบรรทัดอยู่ ที่นี่ ครับ

2. คอมไพล์ไฟล์คอนฟิกโดยใช้ Config transpiler

ตัวเครื่องมือให้ไปดู ตรงนี้ ครับส่วนเหตุผลที่ต้องใช้วิธีนี้ก็ไปดู ตรงนี้ ครับ

จะได้หน้าตาไฟล์แบบนี้มา

{
"ignition": {
"config": {},
"security": {
"tls": {}
},
"timeouts": {},
"version": "2.2.0"
},
"networkd": {
"units": [
{
"contents": "[Match]\nName=eth0\n\n[Network]\nAddress=192.168.0.101/24\nGateway=192.168.0.2\nDNS=8.8.8.8 8.8.4.4\n",
"name": "static.network"
}
]
},
"passwd": {
"users": [
{
"groups": [
"sudo",
"docker"
],
"name": "test",
"passwordHash": "$1$1kty1...",
"sshAuthorizedKeys": [
"ssh-rsa AAAAB3NzaC1..."
]
}
]
},
"storage": {
"files": [
{
"filesystem": "root",
"path": "/etc/hostname",
"contents": {
"source": "data:,coreos1",
"verification": {}
},
"mode": 420
}
]
},
"systemd": {}
}

3. คัดลอกไฟล์คอนฟิกไปที่เครื่อง CoreOS

วิธีก็ง่าย ๆ ตามด้านล่างเลยครับ

scp user@ip:/path/to/config.json config.json#เข้าไปเปลี่ยนค่าใน config.json ตามต้องการได้เลย
vi config.json

4. ติดตั้งเลย รออะไรกัน

sudo coreos-install -d /dev/sda -C stable -i config.json
ติดตั้งเสร็จก็จะได้หน้าตาแบบนี้
รีบูทเสร็จก็จะได้หน้าตาแบบนี้

เสร็จเรียบร้อยแล้วว!!!!

ที่เหลือก็ไปติดตั้งเครื่องอื่นที่เหลือและจัดการ FQDNให้เรียบร้อยยยยยย

--

--