首页 > 编程知识 正文

openstack多节点部署,openstack容器化部署

时间:2023-05-03 11:40:23 阅读:129274 作者:1772

另一方面,原理根据知识库的资料,部署开放堆栈开发环境的原理是,首先在本地部署多功能一体的开放堆栈可执行环境,然后在本地计算机上克隆要开发的项目源代码,

二、安装配置本地多功能一体环境1、安装VMWare虚拟机4核6G 40G硬盘

软件

centos 7.8

python 2.7.5

pip 19.0.3

ansible 2.7.18

kolla 7.1.1

支持kolla-ansible 7.1.1.dev68 #的开放堆栈恢复版本

docker 4.2.1

硬件

两张网卡

ens33 IP 192.168.44.91内部网、openstack的VIP

ens37外联网不值得IP

硬盘40g /根目录至少25G

2、安装步骤2.1 .关闭selinux VI/etc/selinux/config

不能更改SELINUX选项

selinux=禁用

2.2 .关闭防火墙系统停止防火墙d

系统禁用防火墙d

#测试环境

2.3 .更改hosts 192.168.44.91 localhost

# centos的默认主机名localhost变更时,统一即可

3、安装docker容器3.1。 检查防火墙是否关闭了系统状态防火墙d

显示disable时关闭,并确认selinux=disable的修改已完成

3.2 .基本工具sudoyuminstall-yyum-utils device-mapper -永久- datalvm 2下载并安装

yum install -y wget vim net-tools

3.3.docker安装docker官方yum源代码安装

wget-p/etc/yum.repos.d/https://mirrors.a liyun.com/docker-ce/Linux/centos/docker-ce.repo

docker下载安装

sudoyuminstall-y docker-ce

建议修改docker的配置,使用国内仓库,进行蚂蚁的推荐

vi /etc/docker/daemon.json

{

'注册- mirrors ' : [ ' http://Hu B- mirror.c.163.com ' ]

}

启用文档管理器服务

systemctldaemon-reloadsystemctlenabledockersystemctlrestartdocker

3.4 .测试docker足以使sudo docker运行助手世界正常运行

4、配置docker容器4.1 .打开共享装载mkdir/etc/systemd/system/docker.service.d

tee/etc/systemd/system/docker.service.d/kolla.conf ' eof '

服务

MountFlags=shared

欧洲足球锦标赛

重新启动并启用docker服务

系统后台加载

系统重新启动坞站

5、安装kolla-ansible 5.1。 下载并安装基本工具yuminstall-y epel-release

yuminstall-y python-pip

pipinstall-U pip==19.0.3 #版本太高,无法使用。 ~/.pip/pip.con

f,原因不明

#依赖组件

yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python git openldap-devel

yum install -y ansible

#配置pip国内源
mkdir ~/.pip
vim ~/.pip/pip.conf
[global] 
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
 

5.2.下载kolla、kolla-ansible

git clone https://github.com/openstack/kolla

git clone https://github.com/openstack/kolla-ansible

5.3.切换到Train版本

cd kolla

git checkout -b train remotes/origin/stable/train  

cd ../kolla-ansible

git checkout -b train remotes/origin/stable/train

5.4.安装kolla-ansible

# 先预装版本不匹配的包

pip install -U idna

pip install -I PyYAML  

pip install Jinja2

# 安装kolla-ansible

cd kolla-ansible

pip install .

*安装过程中可能会提示各种组件版本兼容性问题,可以用pip install --ignore-installed <package>根据依赖关系强制安装

有些顽固的egg文件可以直接删除后再安装

使用 virtualenv建一个新环境会降低兼容性问题,但执行kolla-ansible时有docker moudle can't found.问题,原因可自行百度

5.5.配置kolla-ansible

vi /etc/ansible/ansible.cfg

修改一下选项

[defaults]

host_key_checking=False

pipelining=True

forks=100

6、配置OpenStack环境 6.1、复制kolla-ansible配置文件

cp -r kolla-ansible/etc/kolla /etc/kolla/

cp kolla-ansible/ansible/inventory/* .

正常部署来说,kolla-ansible的方式部署OpenStack所包含的配置文件存储路径是在/etc/kolla/文件目录下。OpenStack的服务容器启动时,会将此目录映射到容器里。

6.2.调整kolla-ansible全局配置

vi /etc/kolla/globals.yml

更改如下

kolla_install_type: "source" # 使用源码版本

openstack_release: ""  #可不填kolla-ansible会根据当前版本自动下载

 kolla_internal_vip_address: "192.168.44.91" # all-in-one部署,指定vip为管理网络网卡

network_interface: "ens33" # 管理网络、API网络的网卡

neutron_external_interface: "ens37" # 外部网络的网卡

enable_haproxy: "no" # all-in-one部署,不部署HA服务

nova_compute_virt_type: "qemu" # ---- 在物理机上部署时无需设置(默认kvm) ,仅在虚拟机中部署kolla-ansible-openstack时设置qemu

 

6.3、生成密码

kolla-genpwd

# 生成的文件在/etc/kolla/password.yml

vi /etc/kolla/password.yml

keystone_admin_password: 123 #OpenStack登录密码,原始密码哈希生成,记忆王者可以随意修改

7、部署OpenStack环境 7.1.检查

#基础环境检查

kolla-ansible -i all-in-one bootstrap-servers 

#安装预检查
kolla-ansible -i all-in-one prechecks

7.2.部署安装

#提高部署的成功率,先下拉镜像

kolla-ansible -i all-in-one pull  #用时比较长,视网络情况而定

#开始部署

kolla-ansible -i all-in-one -vvv deploy #开启详情检查方式,方便与部署过程中的排查

部署完成后,便可访问192.168.44.91访问dashboard, 这样本地all-in-one环境部署完成。

7.3.生成运行脚本

kolla-ansible post-deploy

运行脚本

source /etc/kolla/admin-openrc.sh

7.4.安装OpenStack命令行工具

# 先安装版本不匹配的组件

pip install -I ipaddress  

# 安装命令行工具

pip install python-openstackclient python-glanceclient python-neutronclient

  三、开发调试步骤

1、开启开发调试项目

本次以horizon项目为例比较直观,在/etc/kolla/globals.yml文件最后,加入

horizon_dev_mode: true
开启所有项目为
kolla_dev_mode: true

停止原openstack环境
kolla-ansible -i all-in-one stop --yes-i-really-really-mean-it

重新部署
kolla-ansible -i all-in-one deploy -vvv

*部署过程中kolla-ansible脚本会调用git将horizon项目源码clone到本地,若网络速度较慢可能出错,可使用git代理或其他办法

 

部署成功后,kolla-ansible会将horizon源码放入本地/opt/stack目录内

[root@localhost ~]# ll /opt/stack总用量 8drwxr-xr-x. 16 root root 4096 6月 27 17:40 heatdrwxr-xr-x. 11 root root 4096 6月 27 19:04 horizon

2、开发过程

使用vscode打开/opt/stack/horizon文件夹,便可进行开发工作

修改静态页面,保存后便可看到运行结果

刷新浏览器页面

3、设置断点调试

在文件中引入remote_pdb

from remote_pdb import RemotePdb 在断点处设置 RemotePdb('127.0.0.1', 4444).set_trace()

本例在project/overview处设置断点

 为horizon容器安装remote_pdb组件

docker exec -it -u root horizon pip install remote_pdb

保存代码后,重启horizon容器
 

docker restart horizon

在浏览器中登录dashboard,发现日志停留在断点处

查看断点信息

 

socat readline tcp:127.0.0.1:4444

Pycharm vscode等图形编辑工具是否能直接使用容器内的断点,请参考文章
https://blog.csdn.net/wenwenxiong/article/details/51540518 
https://zhuanlan.zhihu.com/p/43656542

 

四、碰到的问题

使用queens本版时,all-in-one环境部署成功,开启dev_mode后对应的容器不断重启,原因不明。

五、参考文章

https://docs.openstack.org/kolla-ansible/latest/contributor/kolla-for-openstack-development.html

https://blog.csdn.net/napolunyishi/article/details/78821884

https://www.jianshu.com/p/6f0899d44ea1

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。