目录

前言

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.1 rabbit_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=8848 auth_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

到此为止, 新项目的服务就部署完成了, 赶紧撸代码吧 : )

最新文章

  1. emulator control无法使用问题
  2. MMORPG大型游戏设计与开发(服务器 游戏场景 多线程)
  3. RSA5、RSA6
  4. Storm进程通信机制
  5. 企业级监控平台开发之nagios二次开发(七)
  6. YII2学习第一天
  7. HDU5492 Find a path[DP 方差]
  8. UESTC 917 方老师的分身IV --求欧拉路径
  9. [改善Java代码]不能初始化泛型参数和数组
  10. BCDBOOT命令参数介绍
  11. web.xml中servlet-mapping的配置
  12. JS 对象API之判断父对象是否在子对象的原型链上
  13. C#简繁体转换
  14. 亿级 ELK 日志平台构建部署实践
  15. CSS实现左侧多级菜单栏
  16. TCP系列11—重传—1、TCP重传概述
  17. ios开发dismiss所有控制器
  18. C# 图片 旋转和翻转 RotateFlip
  19. 在Android开发中替换资源图片不起作用的解决方法
  20. Fragment 生命周期 全局变量的声明位置

热门文章

  1. MySQL索引原则和慢查询优化步骤
  2. 广播即时通信src和des
  3. react-native样式引入
  4. JS解析URL参数为对象
  5. vue编写轮播图组件
  6. Java web项目搭建系列之一 Eclipse中新建Maven项目
  7. 375-基于TI DSP TMS320C6657、XC7K325T的高速数据处理核心板
  8. 美国Science公布:全球125个最前沿的科学难题(图)
  9. FCC 成都社区&#183;前端周刊 第 8 期
  10. java 工具包