一、系统环境
kolla-ansible单节点部署OpenStack过程,遵循all-in-one模式部署,其部署过程中可以有效的进行配置文件和日志文件的集中规划。
部署经过了虚拟机测试和物理机测试皆可用,本文就以物理机作为个例进行部署分解。
物理机配置清单:
物理机是联想T490 处理器i5-8265U 内存8GB
使用VM创建的CentOS7虚拟机,4GB内存,80GB磁盘
CentOS7版本为x86_64-Minimal-1810
1.关闭selinux
vi /etc/selinux/config
更改SELINUX选项为不可用
SELINUX=disabled
2.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.更改hosts
192.168.43.132 localhost
二、安装docker容器
1.查询一下防火墙是否关闭
systemctl status firewalld
# 显示disable即为关闭,同时查看selinux=disable修改完毕
2.下载安装基本工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.安装docker
# 安装docker官方yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 下载安装docker
sudo yum install -y docker-ce
# 启用docker服务
sudo systemctl start docker
# 设置开机自启docker服务
sudo systemctl enable docker
4.测试docker是够正常运行
sudo docker run hello-world
三、配置docker容器
1.开启共享挂载
mkdir /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
2.设置docker下载源
修改daemon配置文件/etc/docker/daemon.json
{
"registry-mirrors": ["https://ahtqbhz9.mirror.aliyuncs.com"]
}
3.重启docker服务,使生效
systemctl daemon-reload
systemctl restart docker
四、安装kolla-ansible
1.下载安装基本工具
yum install -y epel-release
yum install -y python-pip
pip install -U pip
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git
yum install -y ansible
2.下载kolla、kolla-ansible
git clone https://github.com/openstack/kolla-ansible -b stable/stein
3.安装kolla-ansible
# 先预装版本不匹配的包
pip install -U idna
pip install -I PyYAML
# 安装kolla-ansible
cd kolla-ansible
pip install -r requirements.txt -r test-requirements.txt -e .
python setup.py install
4.配置kolla-ansible
vi /etc/ansible/ansible.cfg
修改为以下选项
[defaults]
host_key_checking=False
pipelining=True
forks=100
五、配置OpenStack环境
1、复制kolla-ansible配置文件
cp -r kolla-ansible/etc/kolla /etc/kolla/
cp kolla-ansible/ansible/inventory/* .
2.调整kolla-ansible全局配置
vi /etc/kolla/globals.yml
更改如下
kolla_install_type: "source" # 使用源码安装
openstack_release: "stein" # 指定stein版本
kolla_internal_vip_address: "192.168.43.132" # all-in-one部署,指定vip为管理网络网卡
network_interface: "ens33" # 管理网络、API网络的网卡
neutron_external_interface: "ens34" # 外部网络的网卡
enable_haproxy: "no" # all-in-one部署,不部署HA服务
nova_compute_virt_type: "kvm" # ---- 在物理机上部署时无需设置(默认kvm) ,仅在虚拟机中部署kolla-ansible-openstack时设置qemu
3、生成密码
kolla-genpwd
vi /etc/kolla/password.yml
keystone_admin_password: hanson #设定管理员的登陆密码
六、部署OpenStack环境
1.检查
kolla-ansible -i /root/all-in-one prechecks #注意一下你的all-in-one 文件目录
2.部署安装
kolla-ansible -i /root/all-in-one -vvv deploy #开启详情检查方式,方便与部署过程中的排查
3.生成运行脚本
kolla-ansible post-deploy
运行脚本
source /etc/kolla/admin-openrc.sh
4.安装OpenStack命令行工具
# 先安装版本不匹配的组件
pip install -I ipaddress
# 安装命令行工具
pip install python-openstackclient python-glanceclient python-neutronclient
5.运行脚本创建示例网络,图像等
. /usr/share/kolla-ansible/init-runonce
6.登录
在浏览器输入ens33的ip地址
输入用户名:admin
密码:hanson
小问题
Cannot uninstall'requests'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
解决方法:pip install-U--ignorerequests
nova任务时报错TASK [nova : Ensuring config directories exist]
解决方法:
mkdir/etc/kolla/nova
touch/etc/kolla/nova/nova.conf
systemctlstartdocker.service
Jobfordocker.service failed because the control process exited with error code. See"systemctl status docker.service"and"journalctl -xe"fordetails.
解决方法:修改 etc/docker/daemon.json 文件中错误配置信息
虚拟机安装的centOS配置成功后没有ip地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将ONBOOT的值改为yes