openEuler22.03系统使用Kolla-ansible搭建OpenStack

Kolla-ansible 是一个利用 Ansible 自动化工具来搭建 OpenStack 云平台的开源项目,它通过容器化的方式部署 OpenStack 服务,能够简化安装过程、提高部署效率并增强系统的可维护性。

前置环境准备:

系统:openEuler-22.03-LTS-SP4

配置:

4 vCPU, 8G RAM, 100 vDisk

网卡1 ens33 192.168.200.10

网卡2 ens34 192.168.100.10 nat模式网络

1.初始环境准备

安装工具:

bash 复制代码
[root@localhost ~]# dnf -y install git 

优化SSH

bash 复制代码
[root@localhost ~]# vi /etc/ssh/sshd_config 
UseDNS no
[root@localhost ~]# systemctl restart sshd 

关闭防火墙

bash 复制代码
[root@localhost ~]# vi /etc/selinux/config 
SELINUX=disabled
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld && setenforce 0

设置主机名,配置hosts文件

bash 复制代码
[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# vi /etc/hosts 
192.168.200.10 node1
[root@localhost ~]# bash

设置免密登录

bash 复制代码
[root@node1 ~]# ssh-keygen
[root@node1 ~]# ssh-copy-id node1

重启系统

bash 复制代码
[root@node1 ~]# reboot

2.安装docker

bash 复制代码
[root@node1 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
添加仓库自:https://download.docker.com/linux/centos/docker-ce.repo
#编辑Docker的yum文件,将所有的$releasever更改为8

安装Docker:

bash 复制代码
[root@node1 ~]# dnf -y install docker-ce

配置daemon.json文件:

bash 复制代码
[root@node1 ~]# vi /etc/docker/daemon.json
{
    "registry-mirrors": [
            "https://docker.1ms.run",
            "https://docker.1panel.live",
            "https://hub.rat.dev",
            "https://docker.m.daocloud.io",
            "https://do.nark.eu.org",
            "https://dockerpull.com",
            "https://dockerproxy.cn",
            "https://docker.awsl9527.cn"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}

启动Docker:

bash 复制代码
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
[root@node1 ~]# systemctl enable docker 

安装Python docker模块

bash 复制代码
[root@node1 ~]# pip3 install docker

3.安装ansible

更换pip国内源,加速pip下载安装

bash 复制代码
[root@node1 ~]# mkdir ~/.pip
[root@node1 ~]# vi ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

安装ansible:

bash 复制代码
[root@node1 ~]# pip3 install ansible==8.7.0
ansible --version
安装后的版本是ansible-8.7.0 + ansible [core 2.15.13]

优化ansible

bash 复制代码
[root@node1 ~]# mkdir /etc/ansible
[root@node1 ~]# vi /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100

4.安装kolla-ansible

bash 复制代码
安装kolla-ansible需要的依赖
[root@node1 ~]# dnf install -y python3-devel libffi-devel gcc openssl-devel python3-libselinux
安装kolla-ansible
[root@node1 ~]# pip3 install pbr
[root@node1 ~]# pip3 install kolla-ansible==17.5.0

从Yoga版本开始需要安装Ansible Galaxy的依赖项

bash 复制代码
[root@node1 ~]# kolla-ansible install-deps

5.部署OpenStack

创建虚拟子接口:(后续给neutron使用)

bash 复制代码
[root@node1 ~]# ip link add link ens34 name ens34.100 type vlan id 100
[root@node1 ~]# ip addr add 192.168.101.1/24 dev ens34.100
[root@node1 ~]# ip link set dev ens34.100 up
[root@node1 ~]# nmcli connection modify ens34.100 connection.autoconnect yes

创建kolla-ansible配置文件目录

bash 复制代码
[root@node1 ~]# mkdir /etc/kolla
[root@node1 ~]# chown $USER:$USER /etc/kolla

复制配置文件

bash 复制代码
[root@node1 ~]# cp /usr/local/share/kolla-ansible/etc_examples/kolla/globals.yml /etc/kolla/
[root@node1 ~]# cp /usr/local/share/kolla-ansible/etc_examples/kolla/passwords.yml /etc/kolla/
[root@node1 ~]# cp /usr/local/share/kolla-ansible/ansible/inventory/all-in-one /etc/kolla/

编辑all-in-one

bash 复制代码
[root@node1 ~]# sed -i 's#localhost ansible_connection=local#node1 ansible_python_interpreter=/usr/bin/python3#g' /etc/kolla/all-in-one

生成密码

bash 复制代码
[root@node1 ~]# kolla-genpwd

编辑globals.yml

bash 复制代码
[root@node1 ~]# vi /etc/kolla/globals.yml
workaround_ansible_issue_8743: yes
kolla_base_distro: "rocky"
openstack_release: "2023.2"
openstack_tag: "2023.2-rocky-9"
# 自定义配置路径
node_custom_config: "/etc/kolla/config"
# 内部虚拟 IP 地址
kolla_internal_vip_address: "192.168.200.10"
# 网络接口配置
network_interface: "ens33"  # 本地网络,用于 OpenStack 内部通
信
neutron_external_interface: "ens34.100"  # 虚拟子接口,用于 Neutron 外部网络
# 服务配置
enable_haproxy: "no"
enable_neutron_provider_networks: "yes"
nova_compute_virt_type: "qemu"
# Docker 镜像相关
kolla_external_pull_policy: "ifnotpresent"

部署安装指定版本库,避免发生错误

bash 复制代码
[root@node1 ~]# pip3 install pyOpenSSL==24.2.1
[root@node1 ~]# pip3 install cryptography==42.0.0
[root@node1 ~]# pip3 install paramiko==3.0.0

我们已经手动安装过docker,注释或修改kolla自动安装docker的任务

bash 复制代码
[root@node1 ~]# vi $HOME/.ansible/collections/ansible_collections/openstack/kolla/roles/docker/defaults/main.yml
enable_docker_repo: false

[root@node1 ~]# vi $HOME/.ansible/collections/ansible_collections/openstack/kolla/roles/docker/tasks/main.yml 
#- import_tasks: install.yml

开始自动化安装:

bash 复制代码
[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one bootstrap-servers
bash 复制代码
[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one prechecks
bash 复制代码
[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one deploy
##时间比较久,拉取镜像部署容器的过程
bash 复制代码
[root@node1 ~]# kolla-ansible -i /etc/kolla/all-in-one post-deploy
bash 复制代码
查看浏览器控制台密码:
密码:grep keystone_admin /etc/kolla/passwords.yml

访问:192.168.200.10

账户:admin

密码:查看得到的密码

6.服务验证

查看容器是否全部启动:

安装openstack客户端

bash 复制代码
[root@node1 ~]# pip install python-openstackclient

验证服务:

bash 复制代码
[root@node1 ~]# source /etc/kolla/admin-openrc.sh
[root@node1 ~]# openstack user list
[root@node1 ~]# openstack service list

至此,openstack平台搭建完成。

相关推荐
哈哈幸运4 小时前
MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
linux·运维·数据库·mysql·性能优化
soulermax4 小时前
数字ic后端设计从入门到精通2(含fusion compiler, tcl教学)
java·linux·服务器
黑心老人4 小时前
Mac OS系统下kernel_task占用大量CPU资源导致系统卡顿
linux·运维·服务器·macos
Zenexus4 小时前
Linux学习笔记协议篇(六):SPI FLASH设备驱动
linux·笔记·arm
口嗨农民工4 小时前
ubuntu18.04启动不了修复
linux·运维·ubuntu
辣个蓝人QEX5 小时前
【ZYNQ MP开发】Linux下使用bootgen命令生成BOOT.bin报错架构不对问题探究
linux·arm开发·xilinx·zynq·mpsoc·bootgen·u-boot移植
Vesan,5 小时前
无人机飞控运行在stm32上的RTOS实时操作系统上,而不是linux这种非实时操作系统的必要性
linux·stm32·无人机
GalaxyPokemon6 小时前
Muduo网络库实现 [十六] - HttpServer模块
linux·运维·服务器·网络
Zfox_6 小时前
Git 进阶之路:高效协作之分支管理
大数据·linux·运维·c++·git·elasticsearch
夏天里的肥宅水7 小时前
解决方案:远程shell连不上Ubuntu服务器
linux·运维·服务器·ubuntu