另一方面,原理根据知识库的资料,部署开放堆栈开发环境的原理是,首先在本地部署多功能一体的开放堆栈可执行环境,然后在本地计算机上克隆要开发的项目源代码,
二、安装配置本地多功能一体环境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
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-ansiblevi /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
#提高部署的成功率,先下拉镜像
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 horizon2、开发过程
使用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容器
在浏览器中登录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