OpenStack Zed 部署

系统要求

单机部署最低配置:

  • 2张网卡
  • 8G内存
  • 40G硬盘空间

主机系统:

  • CentOS Stream 9
  • Debian Bullseye (11)
  • openEuler 22.03 LTS
  • Rocky Linux 9- Ubuntu Jammy (22.04)

官方不再支持CentOS 7作为主机系统,我这里使用的是Rocky Linux 9.1(最小化安装)

#1. 安装依赖

#1.1 安装基础依赖

dnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux

#1.2 安装Ansible额外需要的包

官方文档中没有说明,实际部署过程中,没有这两个包会无法使用pip安装的ansible

dnf install python3-resolvelib sshpass

#1.3 设置Python-venv虚拟环境

为了防止与系统的python环境冲突,这里使用虚拟环境安装ansible与kolla-ansible /path/to/venv是虚拟环境的目录,可以自己指定

创建虚拟环境

python3 -m venv /path/to/venv

进入虚拟环境

source /path/to/venv/bin/activate

在虚拟环境中输入deactivate命令,即可退出虚拟环境

更换pip国内源,更新pip

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U pip

#1.4 安装Ansible

Kolla-ansible需要ansible 5版本,这里需要指定版本安装

pip install 'ansible>=4,<6'

#2. 安装Kolla-ansible

#2.1 安装本体

pip install git+https://opendev.org/openstack/kolla-ansible@stable/zed

#2.2 获取Kolla配置文件

创建配置文件夹

mkdir /etc/kolla

复制global.yml与password.yml到配置文件夹

cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

#2.3 获取Ansible清单文件

复制all-in-one与multinode两个清单文件,分别对应了单机部署与多节点部署

cp /path/to/venv/share/kolla-ansible/ansible/inventory/* .

#3. 安装Ansible Galaxy依赖

kolla-ansible install-deps

#4. 配置Ansible

单机部署时,可以跳过这一步

编辑/etc/ansible/ansible.cfg,如果没有则需要先创建,将下面的内容添加到配置文件中

[defaults]
host_key_checking=False
pipelining=True
forks=100

#5. 准备初始化配置

#5.1 修改hosts

单机部署时,可以跳过这一步

在部署机的hosts中添加需要部署的主机的主机名,后续会自动同步到所有节点 编辑/etc/hosts文件,我这里准备部署3台控制节点与3台计算节点 (共用)

10.0.0.10 control01.openstack.instack.cloud control01
10.0.0.20 control02.openstack.instack.cloud control02
10.0.0.21 control03.openstack.instack.cloud control03

#5.2 准备清单文件

  • 单机部署时,使用all-in-one清单文件- 多节点部署时,使用multinode清单文件

单机部署时,可以不用修改all-in-one清单文件

下面是我的multinode清单文件的开头部分,供参考

[all]
control01
control02
control03

[control]
# 指定root密码、管理网卡
control01 # ansible_ssh_pass="root"  network_interface="ens192"
control02 # ansible_ssh_pass="root"  network_interface="ens192"
control03 # ansible_ssh_pass="root"  network_interface="ens192"


[network:children]
# 可在组名后添加:children来对组进行嵌套
compute

[compute]
# 指定root密码、管理网卡、外部网卡
control 

[monitoring:children]
control

[deployment]
localhost       ansible_connection=local

详细的配置规则见 Ansible文档(opens new window)

配置完成后,使用下面的命令测试Ansible的连通性

ansible -i multinode all -m ping

#5.3 生成密码

kolla-genpwd

密码存储在/etc/kolla/passwords.yml中

#5.4 配置 global.yml

镜像选择

Kolla可以选择多种镜像版本:

  • CentOS Stream (centos)- Debian (debian)- Rocky (rocky)- Ubuntu (ubuntu) 官方推荐新安装的使用rocky或ubuntu,这里使用和主机相同的rocky发行版

提示

默认不用修改

kolla_base_distro: "rocky"

镜像仓库

国内可能访问quay.io比较慢,可以指定国内的quay.io源

docker_registry: "quay.nju.edu.cn"

自建仓库

docker_registry: "hub.instack.cloud"

网络

管理网络的网卡,也用于主机之间的通信

network_interface: "eth0"

连接外部网络的网卡,需要一个开启的,没有配置IP的网卡

neutron_external_interface: "eth1"

用于管理的浮动IP,由keepalived提供高可用性,必须是管理网络中没有被使用的地址

kolla_internal_vip_address: "10.0.0.250"

监控

enable_prometheus

中心日志

enable_central_logging: "yes"
enable_venus: "yes"

global.yml中所有的选项,都可以在清单文件中为每个主机单独配置。上面的multinode文件中,指定了每台主机的管理网卡与外部网卡。

#6. 部署

我这里采用多节点部署,使用的是multinode清单文件,单机部署请使用all-in-one清单文件

引导服务器

kolla-ansible -i ./multinode bootstrap-servers

部署前检查

kolla-ansible -i ./multinode prechecks

开始部署

kolla-ansible -i ./multinode deploy

#7. 使用OpenStack

#7.1 命令行(OpenStack CLI)

安装CLI客户端

pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/zed

生成openrc文件

kolla-ansible post-deploy

使用openrc文件

. /etc/kolla/admin-openrc.sh

接下来就可以使用OpenStack CLI了

#7.2 网页(Horizon)

浏览器中访问kolla_internal_vip_address,输入账号密码即可

账号密码可在openrc文件中查看

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇