自动化生成 Openstack 新项目开发框架
目录
- 目录
- 前言
- 环境
- openstack-project-generator
前言
Openstack Developer 应该都知道, 开发一个 Openstack 的新项目并不是一个从 0 到 1 的过程, 而是在一个 Project Template 的框架中, 为其填充 API/DB/Manager 等代码定义和实现. 一般来说, 搭建这个 Template 框架并不困难, 只是太过繁琐. 本篇推荐的开源小项目, 可以非常帮助我们完成这些繁琐的工作, 用法也很简单. 如果大家能帮忙提交 BUG 的话, 我会非常欢迎和感谢 .
Github 地址
环境
- OS:
- Ubuntu 14.04
- Openstack(Devstack) Version:
- Liberty
openstack-project-generator
使用手册
- 从 Github下载 :
git clone https://github.com/JmilkFan/openstack-project-generator.git
- 执行 Bash 脚本 :
NOTE:<new_manager_service_name> <new_project_name>
不能同名
cd openstack-project-generator
./generate.sh -m <new_manager_service_name> <new_project_name> <new_project_path>
# EG:
./generate.sh -m promanager proname /opt/stack
- 一个小 BUG: 新项目需要从 openstack-project-generator/.git 中获取 version 的信息
cp -pr /opt/stack/openstack-project-generator/.git /opt/stack/proname
- 安装新项目
sudo pip install -r /opt/stack/proname/requirements.txt -e .
- 生成配置文件
mkdir /etc/proname
cd /opt/stack/proname/etc/proname/
sudo cp proname.conf.sample /etc/proname/proname.conf
sudo cp api-httpd.conf api-paste.ini logging_sample.conf policy.json rootwrap.conf /etc/proname
- 编辑配置文件
NOTE: 配置文件中 { } 内的值需要被替换
sudo vim /etc/proname/proname.conf
[database]
connection=mysql+pymysql://{username}:{password}@{mysql_ip}/pronname?charset=utf8[default]
my_ip=127.0.0.1rabbit_port=5672
rabbit_userid = stackrabbit
rabbit_password = {rabbit_password}
rabbit_hosts = {rabbit_hosts_ip}osapi_proname_listen=0.0.0.0
osapi_proname_listen_port=8848auth_strategy=keystone debug = True
verbose = True[keystone_authtoken]
admin_password = {password}
admin_user = nova
admin_tenant_name = service
identity_uri = http://{keystone_ip}:35357
auth_protocol = http
auth_port = 35357
auth_host = {keystone_host_ip}
- tox 测试
cd /opt/stack/proname
tox -e genconfig
tox -e pep8
tox -e py27
- 创建项目数据库
# 保证 proname 数据库下的所有表的编码集都是 utf8
CREATE DATABASE proname CHARACTER SET utf8;
GRANT ALL ON proname.* TO 'proname'@'%' IDENTIFIED BY 'password';
GRANT ALL ON proname.* TO 'proname'@'127.0.0.1' IDENTIFIED BY 'password';
GRANT ALL ON proname.* TO 'proname'@'localhost' IDENTIFIED BY 'password';
- 初始化数据库
proname-manage db_sync
- 验证服务是否正常运行
proname-api --config-file /etc/proname/proname.conf
到此为止, 新项目的服务就部署完成了, 赶紧撸代码吧 : )
自动化生成 Openstack 新项目开发框架相关推荐
- 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)...
Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它.缺省地如果你使用 mvn archetype:generate 会从maven的Repository里查找所有支 ...
- 前端工程化: 脚手架+物料库快速生成新项目
零.前言 美团有乐高, 京东有通天塔,阿里有飞冰,大厂都在尝试用自动化工具减少人工,看完这一篇,考虑给你的团队搭建一套自动化开发工具吧! 一.背景 笔者所在公司并非大厂, 发现一些痛点. 1.前端研发 ...
- 如何创建生成非 MFC 项目的自定义 AppWizards
当自定义的应用程序向导生成一个项目时,则它只是不能替换自动创建的.dsp 项目设置文件. .dsp 文件中的项目设置由假定所有生成的项目为 MFC 项目的内部规则设置. 但是,Visual C++ 5 ...
- 手把手教你配置:Jenkins+Github+Webhook +Nginx自动化打包部署Vue项目
前面的话 为了前端项目的工程化,减少项目发布环境的部署,实现自动化打包部署. 传统的做法,在服务器初始一个 git 仓库,然后每次代码更新后,手动去拉取,次数多了也就烦了,而自动化打包部署每次只需在项 ...
- 一种自动化生成骨架屏的方案
今天分享的主题是:「一种自动化生成骨架屏的方案」, 先看下市场上常见的骨架屏优化效果. 今天的分享主要分为三个部分: 首屏加载状态演进 如何构建骨架屏 将骨架屏打包的项目中 首屏加载的演进 我们先来看 ...
- 基于Visual C++2010 与office2010开发办公自动化(25)-如何使用自动化生成Excel图表
VS2010新特性: Office Word 2010 Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节 ...
- 170个新项目,579个活跃代码仓库,Facebook开源年度回顾
作者 | Dmitry Vinnik 译者 | 泓礼 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]过去一年对于Facebook的开源工程师来说是繁忙的一年.在2019 ...
- 11 个新项目入选 CNCF Sandbox | 云原生生态周报 Vol. 56
业界要闻 CNCF 成立新的工作组 WG-Naming 目前首要任务是消除带有种族歧视的词语,比如 node-role.kubernetes.io/master ,whitelist/blacklis ...
- php项目打开快捷方式,PHP_克隆一个新项目的快捷方式,有没想过最土的项目如何快速 - phpStudy...
克隆一个新项目的快捷方式 有没想过最土的项目如何快速复制出一个来,然后改改就成新的团购项目了? 或者说编辑一个老项目的时候想把他另存为一个新项目而不是保存, 看下图 红色部分 具体开发代码(非细节), ...
最新文章
- 瓶框(bottle)架学习之模版使用
- Docker(六):Docker 仓库管理与镜像加速
- verdi显示状态机名字_如何写好状态机(三)
- 用REDIS实现分布式缓存
- ST17H26上下拉电阻设置注意事项
- Laravel- 数据库迁移
- hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识
- 中山纪念中学培训DAY1
- ibm v7000配置文档_IBM_V7000底层结构及服务器数据恢复案例详解
- 硬件固件名称在软件测试中指什么,固态硬盘升级固件有什么用?固态硬盘怎么升级固件?...
- 锐龙4500和4600哪个好 r5 4500和r5 4600的区别
- FPGA的基本设计流程
- Home Assistant 自动化
- php for iis express,iis10.0完整安装包
- 【IoT】什么是动态密码及其用途
- OpenCV—Python 图像加减乘除-逻辑运算
- 基于FPGAd的FIR数字滤波器的设计和实现——刘朋全(西北工业大学)
- 腾讯主机安全“猎刃计划”发布,WebShell挑战赛再燃起,PHPer燥起来
- 在codecademy上学习Python
- STM32开发笔记113:ADS1258驱动设计——读取温度值
热门文章
- npm run build 打包 之后怎么用_基于createreactapp打包编译自己的第三方UI组件库
- matlab cuda的.cu文件应该放在那里_App Store限免推荐|日历和文件管理、无尽狂奔、Scalak等,共5款...
- layui 导航收缩代码_pycharm的十个小技巧,让你写代码效率翻倍
- 利用脑机接口提高意念打字速度,让新手用户也能快速上手意念交流
- 你会为情怀买单么?反正我会!
- VR规格表出来啦!Rift,Vive,PSVR,Acer和HP
- [unreal4入门系列之二] 下载和安装虚幻4游戏引擎
- mysql维护索引,mysql 索引优化
- 这套监控系统让打工人颤抖:离职倾向、摸鱼通通都能被监测,争议出现后产品页面已404...
- 就挺凡尔赛的!李开复谈20年后的AI,崔宝秋论开源之道,清华唐杰的PPT成了“香饽饽” | MEET2021智能未来大会...