热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用Puppet设置OpenStack模块依赖关系

从puppetlabs上安装puppetlabs-openstack模块,在模块安装完成后,可以看到OpenStack模块中包含了各个组件和其他子模块,以及各个模块的依赖关系。puppetmodulelist--tree如下(部分):└─┬puppetlabs-openstack(v2.2.0)├─┬puppetlab
从puppetlabs上安装puppetlabs-openstack模块,在模块安装完成后,可以看到OpenStack模块中包含了各个组件和其他子模块,以及各个模块的依赖关系。

puppet module list --tree 

如下(部分):

└─┬ puppetlabs-openstack (v2.2.0)

  ├─┬ puppetlabs-glance (v2.2.0)

  │ ├── puppetlabs-inifile (v1.0.0)

  │ └─┬ puppetlabs-keystone (v2.2.0)

  │   └─┬ puppetlabs-mysql (v0.9.0)

  │     └── puppetlabs-stdlib (v4.1.0)

这些模块是怎样设置依赖关系的?

我们自己写的模块怎样module list出依赖关系?

下面根据我们自己写的openstack模块,举个设置模块依赖的例子,其实很简单:

比如要设置openstack模块依赖nova、keystone、glance、cinder、neutron、horizon模块:

(openstack 、nova、glance、keystone等其他组件都在同一级目录下)

1、首先:在nova模块目录下,编辑 vi Modulefile 文件,设置name、version、author等信息:

name    'zhaowei-nova'

version '0.1.0'

source 'UNKNOWN'

author 'zhaowei'

license 'Apache License, Version 2.0'

summary 'UNKNOWN'

description 'UNKNOWN'

project_page 'UNKNOWN'

## Add dependencies, if any:

# dependency 'username/name', '>= 1.2.0'

2、编辑完成后,构建模块依赖:

puppet module build 

在nova目录下会生成pkg目录,拷贝pkg子目录下的metadata.json文件到nova目录:

cp ./pkg/zhaowei-nova-0.1.0/metadata.json .

pkg目录就没用了,可以删除pkg目录:

rm -rf pkg

同理,在keystone、glance、cinder、neutron、horizon模块目录下,执行同上操作。

3、最后再设置openstack模块中的依赖关系:

同样是编辑Modulefile文件,不过这里要添加子模块的依赖关系了,如下:

name    'zhaowei-openstack'

version '0.1.0'

source 'UNKNOWN'

author 'zhaowei'

license 'Apache License, Version 2.0'

summary 'openstack deployment puppet module'

description 'openstack deployment puppet module'

project_page 'UNKNOWN'

## Add dependencies, if any:

# dependency 'username/name', '>= 1.2.0'

dependency 'zhaowei/keystone', '>=0.1.0'

dependency 'zhaowei/nova', '>=0.1.0'

dependency 'zhaowei/glance', '>=0.1.0'

dependency 'zhaowei/horizon', '>=0.1.0'

dependency 'zhaowei/neutron', '>=0.1.0'

dependency 'zhaowei/cinder', '>=0.1.0'

编辑完成后,重新构建模块生成依赖关系:

puppet module build

拷贝metadata.json文件:

cp ./pkg/zhaowei-openstack-0.1.0/metadata.json .

pkg目录就没用了,可以删除pkg目录:

rm -rf pkg

4、查看设置的依赖关系:

puppet module list --tree 

├─┬ zhaowei-openstack (v0.1.0)

│ ├── zhaowei-keystone (v0.1.0)

│ ├── zhaowei-nova (v0.1.0)

│ ├── zhaowei-glance (v0.1.0)

│ ├── zhaowei-horizon (v0.1.0)

│ ├─┬ zhaowei-neutron (v0.1.0)

5、模块可以递归设置依赖关系


推荐阅读
author-avatar
单身王子550130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有