Triển khai và vận hành OpenStack All-in-One bằng Kolla

Sau khi hoàn tất quá trình cài đặt OpenStack all-in-one thông qua Kolla (như hướng dẫn ở phần trước), bước tiếp theo là cấu hình môi trường, khởi tạo tài nguyên và triển khai máy ảo đầu tiên. Bài viết này tập trung vào các thao tác thực tế trên hệ thống đã triển khai — bao gồm thiết lập client, tùy chỉnh mạng, khởi tạo dự án mẫu, phân bổ địa chỉ IP nổi (floating IP), kiểm tra kết nối và sử dụng giao diện web để quản trị nâng cao.

1. Thiết lập công cụ quản trị dòng lệnh

Để tương tác hiệu quả với OpenStack qua terminal, cần cài đặt các gói client tương ứng:

[root@openstack-node ~]# pip install --upgrade pip
[root@openstack-node ~]# pip install --ignore-installed more-itertools==5.0.0
[root@openstack-node ~]# pip install --ignore-installed decorator==4.4.2
[root@openstack-node ~]# pip install --ignore-installed ipaddress
[root@openstack-node ~]# pip install python-openstackclient python-neutronclient

Lưu ý: Các lỗi liên quan đến xung đột phiên bản (ví dụ Cannot uninstall 'ipaddress') đều được xử lý bằng tùy chọn --ignore-installed, giúp bỏ qua việc gỡ cài đặt tự động và tiến hành cài mới trực tiếp.

2. Cấu hình mạng ngoài cho môi trường thử nghiệm

Tập tin /usr/share/kolla-ansible/init-runonce định nghĩa các thông số mạng dùng để tạo dự án demo. Chỉnh sửa các giá trị sau cho phù hợp với dải mạng vật lý của host:

EXT_NET_CIDR='192.168.100.0/24'
EXT_NET_RANGE='start=192.168.100.150,end=192.168.100.160'
EXT_NET_GATEWAY='192.168.100.1'

Sau khi lưu lại, chạy kịch bản để sinh môi trường mẫu:

[root@openstack-node ~]# source /etc/kolla/admin-openrc.sh
[root@openstack-node ~]# sh /usr/share/kolla-ansible/init-runonce

Kịch bản sẽ tự động tạo: dự án demo, người dùng demo, mạng nội bộ demo-net, mạng ngoài public1, bộ định tuyến demo-router, cũng như cấu hình SNAT và DHCP.

3. Triển khai máy ảo mẫu từ dòng lệnh

Sau khi init-runonce hoàn tất, thực hiện lệnh dưới đây để khởi tạo một máy ảo chạy hệ điều hành CirrOS:

openstack server create \
  --image cirros \
  --flavor m1.nano \
  --key-name demo-key \
  --network demo-net \
  --security-group default \
  test-vm-01

Các tham số có thể tra cứu nhanh bằng các lệnh sau (sau khi đã kích hoạt biến môi trường):

# Danh sách ảnh hệ thống
openstack image list

# Danh sách loại máy ảo (flavor)
openstack flavor list

# Danh sách mạng và subnet
openstack network list
openstack subnet list

# Kiểm tra trạng thái máy ảo
openstack server show test-vm-01

Kết quả trả về sẽ hiển thị địa chỉ IP nội bộ (ví dụ: 10.0.0.7) và trạng thái ACTIVE nếu triển khai thành công.

4. Gán địa chỉ IP nổi và kiểm tra kết nối

Để truy cập máy ảo từ bên ngoài, cần cấp phát một địa chỉ IP nổi từ pool mạng ngoài:

openstack floating ip create public1
openstack server add floating ip test-vm-01 <IP_nổi>

Hoặc thực hiện thủ công qua giao diện web: Dự án → Máy tính → Máy ảo → Hành động → Gán IP nổi.

Kiểm tra định tuyến và kết nối bằng các lệnh sau:

# Xem bộ định tuyến và cổng gắn kết
openstack router list
openstack router show demo-router

# Kiểm tra bảng định tuyến nội bộ
openstack router port list demo-router

# Ping từ máy chủ OpenStack tới máy ảo qua IP nội bộ và IP nổi
ping -c 3 10.0.0.7
ssh cirros@<IP_nổi> -o StrictHostKeyChecking=no

5. Quản trị qua giao diện web

Bên cạnh CLI, OpenStack Dashboard (Horizon) hỗ trợ đầy đủ chức năng quản trị:

  • Tạo dự án và người dùng riêng: Vào Quản lý nhận dạng → Dự án → Tạo dự án, sau đó thêm thành viên và phân quyền.
  • Tùy chỉnh quota: Điều chỉnh giới hạn tài nguyên (CPU, RAM, IP nổi) trong phần Chỉnh sửa quota của dự án.
  • Xây dựng mạng riêng: Tạo mạng nội bộ (in-net) với DHCP và mạng ngoài (out-net) kiểu flat hoặc vlan, đảm bảo tên physical_network khớp với cấu hình trong ml2_conf.ini.
  • Thiết lập bộ định tuyến: Liên kết mạng trong – ngoài thông qua giao diện Thêm cổng trong chi tiết bộ định tuyến.
  • An toàn mạng: Tạo nhóm bảo mật riêng (ví dụ: web-access) chỉ mở port 22, 80, 443 và ICMP — thay vì dùng nhóm mặc định default.
  • Quản lý khóa SSH: Tạo cặp khóa mới tại Dự án → Máy tính → Khóa SSH và gắn vào máy ảo khi triển khai.

Mọi cấu hình đều có thể theo dõi trực quan qua Dự án → Mạng → Bố cục mạng, nơi hiển thị sơ đồ kết nối giữa router, mạng, subnet và máy ảo.

Thẻ: kolla-ansible openstack-cli horizon-dashboard neutron-networking floating-ip

Đăng vào ngày 16 tháng 6 lúc 04:24