使用Kolla部署多节点Rocky版本OpenStack

本文详细描述了如何在CentOS7.9系统上部署OpenStackRocky,包括安装基础软件包,配置LVM存储,设置Python和pip,安装Docker,配置kolla-ansible,以及部署OpenStack各个组件的过程。
摘要由CSDN通过智能技术生成

准备工作
1.1 安装Centos7.9系统,过程略。新建一个磁盘(所有节点)
[root@zl-os-rocky01 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
对接lvm后端存储
1、创建vg
可以使用裸盘或者可以采用Das、iscsi-san、fc-san等方式经存储映像到宿主机本地,然后在进行如下操作
(a)创建LVM 物理卷 /dev/sdb
pvcreate /dev/sdb
(b)创建 LVM 卷组 cinder-volumes
vgcreate cinder-volumes /dev/sdb
1.2 添加yum源(所有节点)
[root@zl-os-rocky01 ~]# curl -o /etc/yum.repos.d/CentOS-aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo
1.3 安装一些基础的包(所有节点)
[root@zl-os-rocky01 ~]# yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git wget vim epel-release
[root@zl-os-rocky01 ~]# yum clean all
[root@zl-os-rocky01 ~]# yum makecache
1.4 关闭防火墙、NetworkManager、设置selinux(所有节点)
[root@zl-os-rocky01 ~]# systemctl disable firewalld && systemctl stop firewalld
[root@zl-os-rocky01 ~]# systemctl stop NetworkManager && systemctl disable NetworkManager
[root@zl-os-rocky01 ~]# sed -i '7s/enforcing/disabled/g' /etc/selinux/config
[root@zl-os-rocky01 ~]# setenforce 0
[root@zl-os-rocky01 ~]# getenforce
Permissive
1.5 重启机器(所有节点)
[root@zl-os-rocky01 ~]# reboot
[root@zl-os-rocky01 ~]# getenforce
Disabled
1.6 设置host(所有节点)
[root@zl-os-rocky01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.197 zl-os-rocky01
192.168.1.198 zl-os-rocky02
192.168.1.199 zl-os-rocky03
1.7 设置免密登陆(管理节点)
[root@zl-os-rocky01 ~]# ssh-keygen
[root@zl-os-rocky01 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@zl-os-rocky02
[root@zl-os-rocky01 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@zl-os-rocky03

  1. 系统基本配置
    2.1 安装Python2-pip-20.3.4(Python2最高版本)(所有节点)
    2.1.1 配置pip源
    [root@zl-os-rocky01 ~]# mkdir ~/.pip && touch ~/.pip/pip.conf
    [root@zl-os-rocky01 ~]# cat > .pip/pip.conf <<EOF
    [global]
    index-url = http://mirrors.aliyun.com/pypi/simple/
    [install]
    trusted-host=http://mirrors.aliyun.com
    EOF
    2.1.3 安装pip-20.3.4
    [root@zl-os-rocky01 ~]# yum install -y python-pip
    [root@zl-os-rocky01 ~]# pip install -U pip==20.3.4
    2.1.4 安装/升级setuptools
    [root@zl-os-rocky01 ~]# pip install -U setuptools
    2.2 安装docke-ce(所有节点)
    [root@zl-os-rocky01 ~]# yum -y install yum-utils
    [root@zl-os-rocky01 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    [root@zl-os-rocky01 ~]# yum makecache
    #安装docker-ce,不是docker
    [root@zl-os-rocky01 ~]# yum -y install docker-ce-17.06.2.ce
    2.3 配置docker镜像的源(所有节点)
    [root@zl-os-rocky01 ~]# mkdir -p /etc/docker && touch /etc/docker/daemon.json
    [root@zl-os-rocky01 ~]# cat > /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://1g8n1i3h.mirror.aliyuncs.com"]
    }
    EOF
    2.4 配置docker(所有节点)
    [root@zl-os-rocky01 ~]# mkdir -p /etc/systemd/system/docker.service.d
    [root@zl-os-rocky01 ~]# cat >/etc/systemd/system/docker.service.d/kolla.conf <<EOF
    [Service]
    MountFlags=shared
    EOF
    2.5 启动docker服务(所有节点)
    [root@zl-os-rocky01 ~]# systemctl daemon-reload && systemctl restart docker && systemctl enable docker
    2.6 安装docker(计算节点)
    [root@zl-os-rocky01 ~]# pip install docker
  2. 安装kolla、ansible(管理节点)

3.1 安装ansible(管理节点)

[root@zl-os-rocky01 ~]# pip install ansible==2.7.5

3.3 安装kolla-ansible(管理节点)

3.2.1 先安装pbr

[root@zl-os-rocky01 ~]# pip install pbr

3.2.2 开始安装kolla-ansible,要带上--ignore-installed PyYAML,否则可能会报错

[root@zl-os-rocky01 ~]# pip install kolla-ansible==7.2.1 --ignore-installed PyYAML

3.2.3 创建kolla的文件夹,后续部署的时候很多openstack的配置文件都会在这

[root@zl-os-rocky01 ~]# mkdir -p /etc/kolla

[root@zl-os-rocky01 ~]# chown $USER:$USER /etc/kolla

3.2.4 复制ansible的部署配置文件all-in-one和multinode到当前目录

[root@zl-os-rocky01 ~]# cp /usr/share/kolla-ansible/ansible/inventory/* .

3.2.5 负责gloable.yml和password.yml到目录/etc/kolla

[root@zl-os-rocky01 ~]# cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

3.3 配置文件修改(管理节点)

3.3.1 生成password.yml的密码,所有openstack组件的密码自动创建,后续组件都会使用此密码文件

[root@zl-os-rocky01 ~]# kolla-genpwd

3.3.2 网卡设置

[root@zl-os-rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet

BOOTPROTO=static

NAME=eth0

DEVICE=eth0

ONBOOT=yes

IPADDR=10.195.1.197

NETMASK=255.255.254.0

GATEWAY=10.195.1.1

[root@zl-os-rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

TYPE=Ethernet

BOOTPROTO=static

NAME=eth1

DEVICE=eth1

ONBOOT=yes

IPADDR=192.168.1.197

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

3.3.3 globals.yml设置

[root@zl-os-rocky01 ~]# cat /etc/kolla/globals.yml |grep -v ^$ |grep -v ^#

[root@zl-os-rocky01 ~]# grep -Ev "^#|^$" /etc/kolla/globals.yml

---

kolla_base_distro: "centos"

kolla_install_type: "source"

openstack_release: "rocky"

node_custom_config: "/etc/kolla/config"

kolla_internal_vip_address: "192.168.1.100" #使用无法ping通的非本机IP

docker_namespace: "kolla"

network_interface: "eth1"

neutron_external_interface: "eth0" #(注:部署分两次,第一次这里为实体网卡名称如eno1,第二次部署时修改为br-ex)

enable_cinder: "yes"

enable_cinder_backup: "yes"

enable_cinder_backend_iscsi: "yes"

enable_cinder_backend_lvm: "yes"

glance_enable_rolling_upgrade: "no"

cinder_volume_group: "cinder-volumes"

nova_compute_virt_type: "qemu"

3.3.4 修改passwords.yml

[root@zl-os-rocky01 ~]# vim /etc/kolla/passwords.yml

keystone_admin_password: admin

4 部署OpenStack(管理节点)

开始进行部署,执行命令需要在ansible的all-in-one和multinode的文件所在目录执行,否则命令要修改下路径

4.1 检查依赖关系(管理节点)

[root@zl-os-rocky01 ~]# kolla-ansible -i multinode bootstrap-servers

4.2 检查环境配置(管理节点)

[root@zl-os-rocky01 ~]# kolla-ansible -i multinode prechecks

4.3 拉取openstack镜像(管理节点)

[root@zl-os-rocky01 ~]# kolla-ansible -i multinode pull

4.4 部署(第一次部署)(网络会断,建议在本机执行,方便查看进程)(管理节点)

[root@zl-os-rocky01 ~]# kolla-ansible -i multinode deploy

4.5 修改桥接网卡(管理节点)

部署后,系统自动生成br-ex网卡,配置网卡信息

[root@zl-os-rocky01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br-ex

[root@zl-os-rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet

BOOTPROTO=none

NAME=eth0

DEVICE=eth0

ONBOOT=yes

#IPADDR=10.195.1.197

#NETMASK=255.255.254.0

#GATEWAY=10.195.1.1

[root@zl-os-rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex

TYPE=OVSBridge

BOOTPROTO=none

DEVICE=br-ex

DEVICETYPE=OVS

ONBOOT=yes

IPADDR=10.195.1.197

NETMASK=255.255.254.0

GATEWAY=10.195.1.1

[root@zl-os-rocky01 ~]# service network restart

4.6 修改globals.yml(第二次部署)(管理节点)

[root@zl-os-rocky01 ~]# cat /etc/kolla/globals.yml |grep -v ^$ |grep -v ^#

---

kolla_base_distro: "centos"

kolla_install_type: "source"

openstack_release: "rocky"

node_custom_config: "/etc/kolla/config"

kolla_internal_vip_address: "192.168.1.100"

kolla_external_vip_address: "10.195.1.100"

docker_namespace: "kolla"

network_interface: "eth1"

kolla_external_vip_interface: "br-ex"

neutron_external_interface: "br-ex"

enable_cinder: "yes"

enable_cinder_backup: "yes"

enable_cinder_backend_iscsi: "yes"

enable_cinder_backend_lvm: "yes"

cinder_volume_group: "cinder-volumes"

glance_backend_file: "yes"

nova_compute_virt_type: "qemu"


4.7 部署(第二次部署)(管理节点)

[root@zl-os-rocky01 ~]# kolla-ansible -i multinode reconfigure(修改生效)

4.8 生成环境变量文件(管理节点)

openstack命令行客户端使用,post-deploy会在 /etc/kolla/目录下生成文件admin-openrc.sh

[root@zl-os-rocky01 ~]# kolla-ansible post-deploy

每次使用openstack命令时执行source /etc/kolla/admin-openrc.sh(manager节点执行)

source /etc/kolla/admin-openrc.sh (将文件内容复制到/etc/profile中,即可一直生效)

4.9 启用openstack存储库(管理节点)

[root@zl-os-rocky01 ~]# yum install -y centos-release-openstack-rocky

4.10 安装openstack客户端(管理节点)

[root@zl-os-rocky01 ~]# yum install -y python-openstackclient

  • 30
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰羽翎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值