kolla-ansible虚拟机单节点部署OpenStack
VMware虚拟机配置如下网卡配置信息IP地址网络类型网卡作用10.0.0.10NAT模式ens32内部管理网络无需配置IP桥接模式ens34外部网络,虚拟机通过这块网卡访问外网ens34网卡配置信息[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34NAME=ens34DEVICE=ens34TYPE=Etherne
·
kolla-ansible虚拟机单节点部署OpenStack
VMware虚拟机配置如下
网卡配置信息
IP地址 | 网络类型 | 网卡 | 作用 |
---|---|---|---|
10.0.0.10 | NAT模式 | ens32 | 内部管理网络 |
无需配置IP | 桥接模式 | ens34 | 外部网络,虚拟机通过这块网卡访问外网 |
ens34网卡配置信息
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens34
NAME=ens34
DEVICE=ens34
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
准备工作
# 修改主机名
[root@all-in-one ~]# hostnamectl set-hostname all-in-one
# 配置hosts
[root@all-in-one ~]# echo "10.0.0.10 all-in-one" >> /etc/hosts
# 关闭selinux和防火墙
[root@all-in-one ~]# setenforce 0
[root@all-in-one ~]# systemctl stop firewalld && systemctl disable firewalld
# SSH免密验证
[root@all-in-one ~]# ssh-keygen
[root@all-in-one ~]# ssh-copy-id root@all-in-one
# 更改yum源
[root@all-on-one ~]# sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' -i.bak /etc/yum.repos.d/CentOS-Base.repo
# 配置docker源
[root@all-in-one ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
[root@all-in-one ~]# sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 安装epel源
[root@all-in-one ~]# yum makecache
[root@all-in-one ~]# yum install -y epel-release
# 安装python-pip
[root@all-in-one ~]# yum install python-pip -y
[root@all-in-one ~]# pip install --upgrade "pip < 21.0"
[root@all-in-one ~]# pip install pbr
安装kolla-ansible
kolla版本与openstack版本对应关系https://releases.openstack.org/teams/kolla.html
# 安装依赖包
[root@all-in-one ~]# yum install python2-devel libffi-devel openssl-devel libselinux-python -y
[root@all-in-one ~]# yum remove docker docker-common docker-selinux docker-engine -y
[root@all-in-one ~]# yum install yum-utils device-mapper-persistent-data lvm2 -y
# 安装ansible
[root@all-in-one ~]# yum install -y ansible
# 配置ansbile.cfg文件
[root@all-in-one ~]# sed -i 's/#host_key_checking = False/host_key_checking = True/g' /etc/ansible/ansible.cfg
[root@all-in-one ~]# sed -i 's/#pipelining = False/pipelining = True/g' /etc/ansible/ansible.cfg
[root@all-in-one ~]# sed -i 's/#forks = 5/forks = 100/g' /etc/ansible/ansible.cfg
# 安装kolla-ansbile
[root@all-in-one ~]# pip install kolla-ansible==9.3.1 --ignore-installed PyYAML
# 因为yum安装ansible会与kolla中的YAML包冲突,所以这里忽略已安装的PyYAML
# 安装docker-ce
[root@all-in-one ~]# yum install docker-ce -y
# 复制kolla-ansible配置文件到当前环境
[root@all-in-one ~]# mkdir -p /etc/kolla
[root@all-in-one ~]# chown $USER:$USER /etc/kolla
[root@all-in-one ~]# cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
[root@all-in-one ~]# cp /usr/share/kolla-ansible/ansible/inventory/* .
# 配置docke镜像加速
[root@all-in-one ~]# mkdir /etc/docker/
[root@all-in-one ~]# cat >> /etc/docker/daemon.json << EOF
> {
> "registry-mirrors": [
> "https://registry.docker-cn.com",
> "http://hub-mirror.c.163.com",
> "https://docker.mirrors.ustc.edu.cn"
> ]
> }
> EOF
[root@all-in-one ~]# systemctl daemon-reload && systemctl enable docker && systemctl restart docker&& systemctl status docker
默认有all-in-one和multinode两个inevntory文件,这里使用all-in-one
[root@all-in-one ~]# vim all-in-one
[control]
all-in-one
[network]
all-in-one
[compute]
all-in-one
[storage]
all-in-one
[monitoring]
all-in-one
[deployment]
all-in-one
....
# 检查配置是否正确
[root@all-in-one ~]# ansible -i all-in-one all -m ping
# 配置globals.yml文件
# 该文件用来控制安装哪些组件,以及如何配置组件
[root@all-in-one ~]# vim /etc/kolla/globals.yml
kolla_base_distro: "centos" 基于什么版本的基础镜像
kolla_install_type: "source" 安装方式 binary二进制安装 source源码安装
openstack_release: "train" openstack版本
kolla_internal_vip_address: "10.0.0.11" OpenStack内部管理网络地址,通过该IP访问OpenStack Web页面进行管理。如果启用了高可用,需要设置为VIP(漂移IP)
docker_namespace: "kolla" kolla镜像仓库所在的命名空间,dockerhub官网默认是kolla
network_interface: "ens32" OpenStack内部管理网络地址的网卡接口
neutron_external_interface: "ens34" 外部网络的网卡
neutron_plugin_agent: "openvswitch" 默认启用openvswitch
enable_neutron_provider_networks: "yes" 启用外部网络
nova_compute_virt_type: "qemu" 虚拟机环境 选用qemu类型
# 生成随机密码
[root@all-in-one ~]# kolla-genpwd
# 修改web登录密码为123456
[root@all-in-one ~]# sed -i 's/^keystone_admin_password.*/keystone_admin_password: 123456/' /etc/kolla/passwords.yml
# 设置nova配置文件
[root@all-in-one ~]# mkdir /etc/kolla/config
[root@all-in-one ~]#
[root@all-in-one ~]# mkdir /etc/kolla/config/nova
[root@all-in-one ~]# cat >> /etc/kolla/config/nova/nova-compute.conf << EOF
> [libvirt]
> virt_type = qemu
> cpu_mode = none
> EOF
开始安装
#预配置,安装docker、docker sdk、关闭防火墙、配置时间同步等
[root@all-in-one ~]# kolla-ansible -i ./all-in-one bootstrap-servers
#部署前环境检查
[root@all-in-one ~]# kolla-ansible -i ./all-in-one prechecks
#执行实际部署,拉取镜像,运行对应组件容器
[root@all-in-one ~]# kolla-ansible -i ./all-in-one deploy
#生成openrc文件
[root@all-in-one ~]# kolla-ansible post-deploy
#拷贝openrc文件
[root@all-in-one ~]# cp /etc/kolla/admin-openrc.sh ./
[root@all-in-one ~]# chmod +x admin-openrc.sh
[root@all-in-one ~]# source admin-openrc.sh
# 安装openstack包
[root@all-in-one ~]# cd /etc/yum.repos.d/
[root@all-in-one yum.repos.d]# yum install centos-release-openstack-train -y
[root@all-in-one yum.repos.d]# yum makecache fast
[root@all-in-one yum.repos.d]# yum install python-openstackclient -y
[root@all-in-one yum.repos.d]# cd
以上部署没有报错中断说明部署成功,所有OpenStack组件以容器方式运行
查看镜像数量 是否和容器数量一致
[root@all-in-one ~]# docker images |wc -l
30
[root@all-in-one ~]# docker ps -a | wc -l
30
# 编辑初始化脚本
[root@all-in-one ~]# vim /usr/share/kolla-ansible/init-runonce
EXT_NET_CIDR=${EXT_NET_CIDR:-'192.168.137.0/24'} 外部网络,这里是桥接模式直接桥接到了电脑的无线网卡,所以这里是无线网卡的网段
EXT_NET_RANGE=${EXT_NET_RANGE:-'start=192.168.137.100,end=192.168.137.200'} 网络地址池
EXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'192.168.137.1'} 网关与无线网卡网关一致
# 执行脚本
[root@all-in-one ~]# sh /usr/share/kolla-ansible/init-runonce
# 出现下面 代表成功
访问web界面
http://10.0.0.10/auth/login/
创建一个实例 测试一下是否能ping通网络
可以ping通外网,而且内网之间也是互通的
卸载openstack环境
kolla-ansible destroy -i /root/all-in-one --include-images --yes-i-really-really-mean-it
# 重启
reboot
# 参考文章
https://www.cnblogs.com/yyx66/p/14685792.html
更多推荐
已为社区贡献8条内容
所有评论(0)