实验环境准备:
硬件:VMware 虚拟机
CPU:4 内存:16 G 硬盘:160 G
开启硬件虚拟化:
通过ssh登录ESXI主机,找到存储路径/vmfs/volume ,进到存储路径,找到虚机,展开找到 .vmx 文件
在最底部添加一行:vhv.enable = "TRUE"
OS:CentOS 7.5
CentOS-7-x86_64-Everything-1804.iso
网卡:2 个(1、用于管理;2、用于实例)
yum 源: 阿里云
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
防火墙 : 关闭
systemctl disable firewalld.service
systemctl stop firewalld.service
主机名:openstack
hostnamectl set-hostname openstack
设置 selinux :disabled
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
安装基本服务:
1、配置 epel 源
yum install -y epel-release
2、安装 docker 设置开机自启动
yum install docker -y
systemctl enable docker
3、安装依赖包
yum install python-devel gcc openssl-devel libselinux-python git vim bash-completi wget net-tools
4、安装 、升级 pip 、配置 pip 源
yum install -y python-pip
pip install -U pip
mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url = https://pypi.doubanio.com/simple
[install]
trusted-host = pypi.doubanio.com
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
5、安装 ansible
yum install -y ansible
6、安装 kolla-ansible
pip install kolla-ansible (执行会出现报错、提示 PyYAML 无法卸载,这时可以使用 --ignore-installed 忽略 PyYAML)
pip install kolla-ansible --ignore-installed PyYAML
7、安装 python-openstackclient 并检查
pip install python-openstackclient
执行 openstack server list 检查,这时可能会出现报错:升级 decorator 包,安装即可 pip install -U decorator
配置准备工作:
1、docker 配置加速器
阿里云 docker 镜像加速器 "registry-mirrors": ["https://ncfus5c8.mirror.aliyuncs.com"]
重启 docker 服务
systemctl daemon-reload
systemctl restart docker
2、kolla.conf
cd /etc/systemd/system && mkdir docker.service.d
cd docker.service.d/
cat > kolla.conf<< EOF
[Service]
MountFlags=shared
EOF
systemctl daemon-reload
systemctl restart docker
3、docker私有仓库创建
docker pull registry:2
docker run -d --name registry --restart always -p 4000:5000 docker.io/registry (5000 端口后面 OpenStack 会用到,这里 registry 用 4000 端口)
4、克隆 git 上的 kolla 、kolla-ansible
git clone http://github.com/openstack/kolla
cd kolla && pip install -r requirements.txt
git clone http://github.com/openstack/kolla-ansible
cd kolla-ansible && pip install -r requirements.txt
5、配置 kolla
mkdir -p /etc/kolla && cd /etc/kolla && cp -r /usr/share/kolla-ansible/etc_examples/kolla/* .
修改全局配置文件 globals.yml
通过执行 kolla-genpwd 命令,使密码配置文件 passwords.yml 自动生成密码
在密码配置文件 passwords.yml 中修改 OpenStack 的登录密码
keystone_admin_password: admin
6、优化 ansible 配置
vim /etc/ansible/ansible.cfg
forks = 100
host_key_checking = False
pipelining = True
deprecation_warnings=False
7、配置nova-compute.conf (物理机部署不需要此步)
mkdir -p /etc/kolla/config/nova
cd /etc/kolla/config/nova
cat > nova-compute.conf <<EOF
[libvirt]
virt_type = qemu
cpu_mode = none
EOF
安装步骤:
0、kolla-ansible 调试时使用 -vvvv
1、kolla-ansible 检查 (检查 所有项目均为 ok ,即可向下继续操作)
kolla-ansible prechecks
2、下载镜像
kolla-ansible pull (如遇到网络问题 可以重新执行直到所有镜像都被下载完成,共有 33 个镜像)
3、推送镜像到私有仓库
修改 image 的 tag 标签
a="centos" && b="127.0.0.1:4000" && for i in `docker images | grep $a | awk '{ print $1":"$2 }'` ;do docker tag $i "$b$(echo $i | awk -F'.io' '{print $2}')";done
推送镜像
for i in `docker images | grep $b | awk '{ print $1":"$2 }'` ;do docker push $i ;done
4、更新完善 globals.yml
docker_registry: "127.0.0.1:4000"
docker_namespace: "kolla"
5、开始部署
kolla-ansible deploy
可以使用 docker ps -a 监控部署过程,部署完成后 (图中没有使用私有仓库中的镜像)
6、生成环境变量文件
kolla-ansible post-deploy
使用环境变量文件
source /etc/kolla/admin-openrc.sh
使用测试:
1、创建网络、激活第二张网卡
bash /usr/share/kolla-ansible/init-runonce
2、创建镜像(在可以连外网的情况下上一步中可以创建镜像)
导入本地镜像
glance image-create --name cirros --disk-format qcow2 --container-format bare --progress < cirros-0.4.0-x86_64-disk.img
3、创建实例
这时网络选择 demo-net ,创建完成后再绑定 浮动 IP ,经测试可以连接
常见报错:
VIP 连接失败
解决方法:globals.yml 配置中 keepalived_virtual_router_id 在同一网络环境中是唯一值不可重复