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身份认证服务详解》

发表回复

后才能评论