-
Môi Trường Thực Nghiệm | Tên máy | Địa chỉ IP | Vai trò | Bộ nhớ | Card mạng | CPU | Dung lượng ổ đĩa | |---|---|---|---|---|---|---| | controller-node | 192.168.128.110 | Điều khiển (Controller) | 8 GB | ens32 (bridge), ens33 (external) | 4 lõi | 200 GB | | compute-node | 192.168.128.111 | Tính toán (Compute) | 4 GB | ens32 (bridge) | 4 lõi | 20 GB | | storage-node | 192.168.128.112 | Lưu trữ (Storage) | 4 GB | ens32 (bridge) | 4 lõi | 2 × 20 GB | Lưu ý:
controller-nodeđóng đồng thời vai trò điểm triển khai (viakolla-ansible) và controller cluster. -
Các Bước Chuẩn Bị
2.1. Cài đặt công cụ hỗ trợ cơ bản Các máy đều thực hiện:
yum -y install bash-completion vim
2.2. Tắt tường lửa và SELinux Trên cả 3 máy:
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld && systemctl disable firewalld
2.3. Cấu hình_resolve /etc/hosts
Trên controller-node:
cat >> /etc/hosts << EOF
192.168.128.110 controller-node
192.168.128.111 compute-node
192.168.128.112 storage-node
EOF
scp /etc/hosts compute-node:/etc/
scp /etc/hosts storage-node:/etc
2.4. Thiết lập card mạngens33 trên node điều khiển
# /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
NAME=ens33
DEVICE=ens33
Sau đó: systemctl restart network
- Cài đặt Ansible và Cấu Hình
3.1. Cài đặt pip và cấu hình mirror tại controller-node
yum -y install epel-release python-pip
mkdir -p ~/.pip
tee ~/.pip/pip.conf << 'EOF'
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com
EOF
pip install --upgrade pip
3.2. Cấu hình mirror tại compute-node và storage-node Lặp lại bước tạo thư mục và file pip.conf nhưng không cần cập nhật pip.
3.3. Cài đặt Ansible
yum -y install python-devel libffi-devel gcc openssl-devel libselinux-python
pip install ansible
3.4. Tạo và tối ưu file cấu hình ansible.cfg
mkdir -p /etc/ansible
tee /etc/ansible/ansible.cfg << 'EOF'
[defaults]
forks = 15
host_key_checking = False
pipelining = True
EOF
- Cấu Hình Lưu Trữ_block pada storage-node
yum -y install yum-utils device-mapper-persistent-data lvm2
pvcreate /dev/sdb
vgcreate cinder /dev/sdb
systemctl enable --now lvm2-lvmetad
- Triển khai OpenStack với Kolla-Ansible
5.1. Cài đặt kolla-ansible (phiên bản Stein)
pip install kolla-ansible==8.0.1 --ignore-installed PyYAML
5.2. Chép mẫu cấu hình sẵn
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla/
Các file quan trọng:
all-in-one: cho triển khai đơn nodemultinode: trình bày phân bổ nodeglobals.yml: xác định các thông số hệ thốngpasswords.yml: mặc định chứa mật khẩu dịch vụ
5.3. Thiết lập SSH vào cluster
ssh-keygen -N '' -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@controller-node
ssh-copy-id -i ~/.ssh/id_rsa.pub root@compute-node
ssh-copy-id -i ~/.ssh/id_rsa.pub root@storage-node
5.4. Sửa file inventory multinode
[control]
controller-node
[network]
controller-node
[compute]
compute-node
[monitoring]
controller-node
[storage]
storage-node
[deployment]
controller-node
5.5. Kiểm tra khả năng kết nối
ansible -i /etc/kolla/multinode all -m ping
5.6. Tạo mật khẩu mặc định
kolla-genpwd
sed -i 's/^keystone_admin_password:.*/keystone_admin_password: securepass123/' /etc/kolla/passwords.yml
5.7. Tùy chỉnh globals.yml
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "stein"
kolla_internal_vip_address: "192.168.128.110"
network_interface: "ens32"
api_interface: "{{ network_interface }}"
storage_interface: "{{ network_interface }}"
tunnel_interface: "{{ network_interface }}"
dns_interface: "{{ network_interface }}"
neutron_external_interface: "ens33"
enable_haproxy: "no"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
cinder_volume_group: "cinder"
nova_compute_virt_type: "qemu"
5.8. Hiệu chuẩn môi trường Docker Trên cả 3 máy:
mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": ["https://[MIRROR_KEY].mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker && systemctl enable docker
5.9. Kéo镜像 và khởi tạo cluster
kolla-ansible -i /etc/kolla/multinode bootstrap-servers
kolla-ansible -i /etc/kolla/multinode prechecks
kolla-ansible -i /etc/kolla/multinode pull
Sau lấy鏡像 xong, kiểm tra:
docker images | grep kolla | wc -l
5.10. Triển khai dịch vụ OpenStack
kolla-ansible -i /etc/kolla/multinode deploy
5.11. Xác nhận triển khai thành công
kolla-ansible -i /etc/kolla/multinode post-deploy
cat /etc/kolla/admin-openrc.sh
- Kiểm tra truy cập Từ máy Windows trong cùng mạng:
- Truy cập dashboard tại:
http://192.168.128.110 - Đăng nhập bằng tài khoản
adminvà mật khẩusecurepass123đã thiết lập.