目录

  • 目录
  • 前言
  • 环境
  • 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 新项目开发框架相关推荐

  1. 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)...

    Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它.缺省地如果你使用 mvn archetype:generate  会从maven的Repository里查找所有支 ...

  2. 前端工程化: 脚手架+物料库快速生成新项目

    零.前言 美团有乐高, 京东有通天塔,阿里有飞冰,大厂都在尝试用自动化工具减少人工,看完这一篇,考虑给你的团队搭建一套自动化开发工具吧! 一.背景 笔者所在公司并非大厂, 发现一些痛点. 1.前端研发 ...

  3. 如何创建生成非 MFC 项目的自定义 AppWizards

    当自定义的应用程序向导生成一个项目时,则它只是不能替换自动创建的.dsp 项目设置文件. .dsp 文件中的项目设置由假定所有生成的项目为 MFC 项目的内部规则设置. 但是,Visual C++ 5 ...

  4. 手把手教你配置:Jenkins+Github+Webhook +Nginx自动化打包部署Vue项目

    前面的话 为了前端项目的工程化,减少项目发布环境的部署,实现自动化打包部署. 传统的做法,在服务器初始一个 git 仓库,然后每次代码更新后,手动去拉取,次数多了也就烦了,而自动化打包部署每次只需在项 ...

  5. 一种自动化生成骨架屏的方案

    今天分享的主题是:「一种自动化生成骨架屏的方案」, 先看下市场上常见的骨架屏优化效果. 今天的分享主要分为三个部分: 首屏加载状态演进 如何构建骨架屏 将骨架屏打包的项目中 首屏加载的演进 我们先来看 ...

  6. 基于Visual C++2010 与office2010开发办公自动化(25)-如何使用自动化生成Excel图表

    VS2010新特性: Office Word 2010 Office Word 2010 增强了 Navigation Pane 特性,用户可在 Navigation Pane 中快速切换至任何一章节 ...

  7. 170个新项目,579个活跃代码仓库,Facebook开源年度回顾

    作者 | Dmitry Vinnik 译者 | 泓礼 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]过去一年对于Facebook的开源工程师来说是繁忙的一年.在2019 ...

  8. 11 个新项目入选 CNCF Sandbox | 云原生生态周报 Vol. 56

    业界要闻 CNCF 成立新的工作组 WG-Naming 目前首要任务是消除带有种族歧视的词语,比如 node-role.kubernetes.io/master ,whitelist/blacklis ...

  9. php项目打开快捷方式,PHP_克隆一个新项目的快捷方式,有没想过最土的项目如何快速 - phpStudy...

    克隆一个新项目的快捷方式 有没想过最土的项目如何快速复制出一个来,然后改改就成新的团购项目了? 或者说编辑一个老项目的时候想把他另存为一个新项目而不是保存, 看下图 红色部分 具体开发代码(非细节), ...

最新文章

  1. 瓶框(bottle)架学习之模版使用
  2. Docker(六):Docker 仓库管理与镜像加速
  3. verdi显示状态机名字_如何写好状态机(三)
  4. 用REDIS实现分布式缓存
  5. ST17H26上下拉电阻设置注意事项
  6. Laravel- 数据库迁移
  7. hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识
  8. 中山纪念中学培训DAY1
  9. ibm v7000配置文档_IBM_V7000底层结构及服务器数据恢复案例详解
  10. 硬件固件名称在软件测试中指什么,固态硬盘升级固件有什么用?固态硬盘怎么升级固件?...
  11. 锐龙4500和4600哪个好 r5 4500和r5 4600的区别
  12. FPGA的基本设计流程
  13. Home Assistant 自动化
  14. php for iis express,iis10.0完整安装包
  15. 【IoT】什么是动态密码及其用途
  16. OpenCV—Python 图像加减乘除-逻辑运算
  17. 基于FPGAd的FIR数字滤波器的设计和实现——刘朋全(西北工业大学)
  18. 腾讯主机安全“猎刃计划”发布,WebShell挑战赛再燃起,PHPer燥起来
  19. 在codecademy上学习Python
  20. STM32开发笔记113:ADS1258驱动设计——读取温度值

热门文章

  1. npm run build 打包 之后怎么用_基于createreactapp打包编译自己的第三方UI组件库
  2. matlab cuda的.cu文件应该放在那里_App Store限免推荐|日历和文件管理、无尽狂奔、Scalak等,共5款...
  3. layui 导航收缩代码_pycharm的十个小技巧,让你写代码效率翻倍
  4. 利用脑机接口提高意念打字速度,让新手用户也能快速上手意念交流
  5. 你会为情怀买单么?反正我会!
  6. VR规格表出来啦!Rift,Vive,PSVR,Acer和HP
  7. [unreal4入门系列之二] 下载和安装虚幻4游戏引擎
  8. mysql维护索引,mysql 索引优化
  9. 这套监控系统让打工人颤抖:离职倾向、摸鱼通通都能被监测,争议出现后产品页面已404...
  10. 就挺凡尔赛的!李开复谈20年后的AI,崔宝秋论开源之道,清华唐杰的PPT成了“香饽饽” | MEET2021智能未来大会...