Deploy OpenStack The Series Part I: ติดตั้ง Container Linux by CoreOS
ซีรีย์การติดตั้ง OpenStack โดยใช้ Armada ที่จะอธิบายแบบภาษาบ้าน ๆ ตามความเข้าใจของผมเอง จุดประสงค์คือกันลืม ในอนาคตจะได้เข้ามาอ่านใหม่ โดยจะแบ่งออกเป็น 3 ส่วนหลัก ๆ คือ 1.ติดตั้ง CoreOS 2.ติดตั้ง Kubernetes และ 3.ติดตั้ง OpenStack
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ให้เรียบร้อยยยยยย