OpenStack安装与配置完整指南:从开发环境到生产部署
OpenStack安装与配置完整指南:从开发环境到生产部署
一、安装前准备
1.1 安装方式概述
OpenStack提供了多种安装方式,每种方式都有其适用场景和优缺点。
主流安装方式对比:
| 安装方式 | 适用场景 | 复杂度 | 自动化程度 |
|---|---|---|---|
| DevStack | 开发测试 | 低 | 低 |
| PackStack | 小规模测试 | 中 | 中 |
| Kolla-Ansible | 生产部署 | 高 | 高 |
| TripleO | 大规模生产 | 很高 | 高 |
生产环境推荐: Kolla-Ansible 或 TripleO 开发测试环境: DevStack 或 PackStack
1.2 环境要求
最小化硬件要求(All-in-One):
- CPU: 4核心(支持虚拟化)
- 内存: 8GB
- 磁盘: 100GB SSD
二、DevStack快速部署
2.1 环境准备
# 创建stack用户
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
# 安装必要软件包
sudo apt-get update
sudo apt-get install -y git python3-pip
# 关闭防火墙(开发环境)
sudo systemctl stop firewalld
sudo setenforce 0
2.2 配置DevStack
# 克隆DevStack仓库
git clone https://opendev.org/openstack/devstack.git /opt/stack/devstack
# 创建local.conf
cat > /opt/stack/devstack/local.conf << 'EOF'
[[local|localrc]]
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
disable_service heat h-api-cw h-api
ENABLE_HORIZON=True
FLOATING_RANGE=192.168.100.0/24
PUBLIC_NETWORK_GATEWAY=192.168.100.1
NEUTRON_L2_AGENT=linuxbridge
IPV6_ENABLED=False
EOF
2.3 执行部署
cd /opt/stack/devstack
./stack.sh
2.4 验证部署
# 加载环境变量
source /opt/stack/devstack/openrc admin admin
# 检查服务状态
openstack compute service list
openstack network agent list
三、Kolla-Ansible生产部署
3.1 控制节点准备
# 安装依赖
sudo apt-get update
sudo apt-get install -y python3-pip git
# 创建部署用户
sudo useradd -m -s /bin/bash deploy
echo "deploy ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/deploy
# 安装Ansible
sudo pip3 install ansible==6.4.0
# 安装Kolla-Ansible
sudo pip3 install kolla-ansible==15.0.0
# 创建配置目录
sudo mkdir -p /etc/kolla
sudo chown deploy:deploy /etc/kolla
3.2 配置Kolla-Ansible
# 复制配置文件
sudo cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
sudo cp /usr/local/share/kolla-ansible/ansible/inventory/all-in-one /home/deploy/
# 编辑globals.yml
cat > /etc/kolla/globals.yml << 'EOF'
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "yoga"
kolla_internal_vip_address: "10.0.0.100"
network_interface: "ens3"
neutron_external_interface: "ens4"
enable_horizon: "yes"
enable_glance: "yes"
enable_nova: "yes"
enable_neutron: "yes"
enable_cinder: "yes"
multinode: "yes"
EOF
3.3 配置Inventory
cat > /home/deploy/multinode << 'EOF'
[control]
controller01 ansible_host=10.0.0.11 ansible_user=deploy
[network]
network01 ansible_host=10.0.0.12 ansible_user=deploy
[compute]
compute01 ansible_host=10.0.0.21 ansible_user=deploy
compute02 ansible_host=10.0.0.22 ansible_user=deploy
[storage]
storage01 ansible_host=10.0.0.31 ansible_user=deploy
[deployment]
localhost ansible_connection=local
EOF
3.4 执行部署
# 验证连接
ansible -i multinode all -m ping
# 生成密码
kolla-ansible -i multinode passwords
# 预检查
kolla-ansible -i multinode prechecks
# 执行部署
kolla-ansible -i multinode deploy
# 验证
source /etc/kolla/admin-openrc.sh
openstack compute service list
四、常见问题与解决方案
4.1 镜像下载失败
# 使用国内镜像源
wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img
openstack image create "Cirros" --file cirros-0.5.2-x86_64-disk.img --disk-format qcow2
4.2 网络配置错误
# 检查Neutron Agent
openstack network agent list
# 检查DHCP
sudo ip netns list
sudo ip netns exec qdhcp- ip addr
4.3 服务启动失败
# 检查服务状态
systemctl status openstack-nova-api
# 查看错误日志
sudo journalctl -u openstack-nova-api -n 100
五、生产环境最佳实践
5.1 高可用配置
enable_haproxy: "yes"
enable_keepalived: "yes"
keepalived_virtual_router_id: "51"
enable_galera: "yes"
galera_nodes:
- controller01
- controller02
- controller03
enable_rabbitmq_cluster: "yes"
rabbitmq_nodes:
- controller01
- controller02
- controller03
5.2 存储后端配置
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
enable_cinder_backend_ceph: "yes"
ceph_pool_size: "3"
cinder_volume_group: "cinder-volumes"
六、总结
本文介绍了OpenStack的多种安装部署方式,从快速开发的DevStack到生产环境的Kolla-Ansible。
关键要点:
下篇预告: 《Keystone身份认证服务详解》
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。







