Ubuntu22.04部署OpenStack-zed all-in-one

一.环境准备
本文以VMWare中创建的虚拟机为例

硬件    规格    备注
网卡1        已分配内网IP,以ens33为例
网卡2        不需要分配IP,以ens37为例
系统盘    60G+    用于安装系统及挂载存储
数据盘    100G+    初始不需要分区,后续操作用
二.开启ROOT远程登录
使用现有账号登录设置root密码:
sudo passwd root
1
修改sshd配置开启远程登录:
sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart sshd
1
2
3
三.常用工具
工具名称    用途
gparted    带图形化界面的分区工具
fdisk    命令行分区管理工具
net-tools    网络工具(使用ifconfig需要安装此包)
四.安装OpenStack
注:本次安装基于OpenStack官方文档,并且对遇到的安装问题进行补充。
点击此处查看官方文档
1.基础工具安装
# 安装python工具等
apt install git python3-dev libffi-dev gcc libssl-dev -y
1
2
2.安装并创建虚拟环境
虚拟环境路径可自定义,本文以"/opt/openstack/venv"为例。

# 安装虚拟环境包
apt install python3-venv -y
# 创建虚拟环境
python3 -m venv /opt/openstack/venv
1
2
3
4
3.进入虚拟环境
source /opt/openstack/venv/bin/activate
1
注:后续操作都在虚拟环境下进行,如果要退出虚拟环境请使用一下命令

deactivate
1
4.升级pip并配置国内源
本地安装建议使用清华源,比阿里的源速度快N倍。

# pip3临时使用清华源更新pip
pip3 install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# pip设置清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
1
2
3
4
5.安装ansible
pip install 'ansible>=4,<6'
1
6.安装对应openstack版本的kolla-ansible
pip install git+https://opendev.org/openstack/kolla-ansible@stable/zed
1
7.创建配置文件目录并附加权限
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
1
2
8.复制配置文件
# 复制配置文件到配置文件目录
cp -r /opt/openstack/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
1
2
9.复制依赖文件到当前目录
cp /opt/openstack/venv/share/kolla-ansible/ansible/inventory/all-in-one .
1
10.安装ansible依赖
kolla-ansible install-deps
1
11.生成密码到/etc/kolla/passwords.yml文件中
注:要配置的密码有很多,可以手动编辑文件进行配置,也可以执行下面命令自动生成。

 kolla-genpwd
1
12.修改/etc/kolla/passwords.yml中登录密码
找到文件中key控制台登录密码的key:keystone_admin_password
或者直接使用命令替换

sed -i 's/^keystone_admin_password.*/keystone_admin_password: 自定义密码/' /etc/kolla/passwords.yml
1
13.修改/etc/kolla/globals.yml文件,配置并开启服务
# 基础配置:
kolla_base_distro:          系统配置,修改为ubuntu即可
openstack_release:          openstack版本,本文使用的zed
kolla_internal_vip_address: 用来访问web控制台,
                            如果enable_haproxy为no则配置一个单独的IP,
                            否则使用network_interface网卡分配的IP
network_interface:          内部网卡名称,本文是ens33
neutron_external_interface: 外部网卡名称,本文是ens37
# 服务组件配置:
enable_haproxy: "no" #高可用,如果为yes则kolla_internal_vip_address可以使用独立IP
enable_cinder: "yes" #块存储
enable_cinder_backup: "no"
enable_cinder_backend_lvm: "yes" #使用逻辑存储
enable_neutron_provider_networks: "yes" # 启用外部网络
nova_compute_virt_type: "qemu" # 虚拟化类型(物理机用kvm,VMWare使用qemu)
nova_console: "spice"

14.cinder存储配置
# a.查看存储节点的盘:
ansible -i all-in-one "storage*" -a "lsblk"
# b.格式化并且创建分区组
mkfs.ext4   /dev/sdb
pvcreate    /dev/sdb
vgcreate  cinder-volumes  /dev/sdb

15.预配置
# 基础环境安装,比如docker等
kolla-ansible -i ./all-in-one bootstrap-servers
1
2
16.环境检测
kolla-ansible -i ./all-in-one prechecks
1
注意:如果检测在Checking docker SDK报错找不到docker模块的话,修改all-in-one文件内容如下。

[deployment]
localhost       ansible_connection=local  ansible_python_interpreter="{{ ansible_playbook_python }}"
1
2
17.开始部署
kolla-ansible -i ./all-in-one deploy
1
18.安装客户端
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
1
19.生成clouds.yaml文件
kolla-ansible post-deploy
1
20.访问web管理页面
http://kolla_internal_vip_address配置的ip/
用户名:admin
密码:/etc/kolla/passwords.yml中keystone_admin_password的密码


一.修改web管理页面端口
1.修改horizon端口并重启服务
cd /etc/kolla/horizon

vim horizon.conf
# 修改内容如下
Listen ip:80 => Listen ip:想要使用的端口
=>
# 修改完后保存horizon.conf文件

vim local_settings
# 搜索80
/80
# 会看到如下节点
'http': {
        'name': 'HTTP',
        'ip_protocol': 'tcp',
        'from_port': '80',
        'to_port': '80',
    },
# 修改from_port和to_port为想要使用的端口
'http': {
        'name': 'HTTP',
        'ip_protocol': 'tcp',
        'from_port': '想要使用的端口',
        'to_port': '想要使用的端口',
    },
# 修改完保存local_settings文件

# docker重启horizon服务
docker stop  horizon
docker start horizon


2.修改haproxy代理的horizon端口并重启服务
cd /etc/kolla/haproxy/services.d/

vim horizon.cfg
# 修改horizon_front和horizon_back中的80为想要使用的端口

# docker重启haproxy服务
docker stop  haproxy
docker start haproxy
 

 

你可能感兴趣的:(虚拟化,ubuntu,linux,linux,自动化,服务器)