点击上方 “公众号”可以订阅哦!
murano由来
OpenStack在H版本到K版本的摸索中,对整合容器的思路逐步清晰与成熟,温哥华OpenStack Summit上,Container/Docker成为一大关注焦点,随后发表的白皮书《Exploring Opportunities:Containers and OpenStack》阐明了OpenStack今后深度整合容器的方式与方向。基于这份白皮书,Liberty版本发布时,包含了许多容器相关的重要新特性:
● Magnum-提供容器环境的编排、部署与管理,即:COE(Container Orchestration Engines) as a service,目前支持Kubernetes、Mesos和Docker Swarm;
● Kuryr-集成libnetwork等原生的容器网络组件,打通容器网络与Neutron网络;
● Murano-提供应用目录服务,实现服务与应用程序的一键发布、快速部署和生命周期管理;
● Solum-简化云应用程序从研发到交付的生命周期管理,为云应用开发者提供持续集成的能力;
● Manila-文件共享服务,可以为容器应用的Replication和多读多写提供持久化存储方案。
murano简介
容器的出现解决了服务与应用的快速部署与弹性扩展的问题,使得这些年不温不火的PaaS平台重新得到了关注。如何将第三方开发者的服务与应用方便地发布出来是PaaS平台的一个重要功能点,即PaaS平台的应用目录(Application Catalog)服务。各主流的PaaS平台,比如OpenShift、CloudFundry、GAE都有相应的方案,但发布接口与应用打包方式并不统一。OpenStack的Murano致力于通过标准化以及一套新的编程语言(YAQL)来解决这一问题。
Murano是OpenStack的应用目录服务,在Murano的世界里,一切皆服务(Anything as a Service),不管是虚拟机镜像、容器镜像、服务应用模板,甚至是一个编排模板(HOT),都可以在Murano中发布。第三方开发者与管理员可以通过标准的接口、标准的应用打包规范、标准的应用发布流程,标准的生命周期管理流程,来实现服务与应用程序的一键发布、快速部署和管理,降低服务与应用程序对底层基础架构的依赖。简单说,Muarno主要提供应用目录的服务,就是用户可以把一些常用的应用发布出来供其他用户去使用。
在Liberty版本中,开发者的控制得到加强,支持应用版本升级。应用程序的使用者可以自由选择应用将要被部署的网络。另外,在基础设施控制方面,Murano能够使用Glance Artifact Repository作为它的存储后端,通过Glance Artifact API即可读取或存储服务镜像。
murano相关的几个项目:
展开全文
(1)murano是主要的存储库,包含 Murano API server, Murano engine and MuranoPL代码;
(2)murano-agent运行在vm上,并执行安装应用部署;
(3)murano-dashboard是murano的UI;
(4)python-muranoclient客户端。
Murano和Murano-dashboard安装
1
创建murano数据库,并设置数据库的用户名密码都为murano
mysql
CREATE DATABASE murano;
GRANT ALL PRIVILEGES ON murano.* TO 'murano'@'10.43.166.104' IDENTIFIED BY 'murano';
GRANT ALL PRIVILEGES ON murano.* TO 'murano'@'%' IDENTIFIED BY 'murano';
注:后面在murano.conf文件中填写murano的数据库连接时,如下
mysql+pymysql://murano:murano@10.43.166.104/murano
2
创建user和role
创建user和role时,对应的project可以通过openstack project list查看
openstack user create --password murano murano
openstack role add --project admin --user murano admin
3
取代码安装
git clone https://git.openstack.org/openstack/murano
cd murano
sudo pip install -e .
注:环境需要提前安装pip、tox等工具。
4
创建配置文件存放目录
mkdir -p /etc/murano
5
生成默认murano.conf文件(环境需安装tox和gcc等工具)
tox -egenconfig
生成的配置文件保存在源码的murano/etc/murano/murano.conf.sample
需要将配置文件复制到环境/etc/murano目录下
cp murano/etc/murano/murano.conf.sample /etc/murano/murano.conf
cp murano/etc/murano/api-paste.ini /etc/murano/api-paste.ini
cp murano/etc/murano/policy.json /etc/murano/policy.json
6
配置文件
修改/etc/murano/murano.conf配置文件,下面列出几项都是基本配置,
比如%RABBITMQ_SERVER_IP%,需要替换为环境中的实际值
[DEFAULT]
debug = true
verbose = true
rabbit_host = %RABBITMQ_SERVER_IP%
rabbit_userid = %RABBITMQ_USER%
rabbit_password = %RABBITMQ_PASSWORD%
rabbit_virtual_host = %RABBITMQ_SERVER_VIRTUAL_HOST%
...
[database]
connection = mysql+pymysql://murano:%MURANO_DB_PASSWORD%@127.0.0.1/murano
...
[keystone]
auth_url = 'http://%OPENSTACK_HOST_IP%:5000'
...
[keystone_authtoken]
auth_uri = 'http://%OPENSTACK_HOST_IP%:5000'
auth_host = '%OPENSTACK_HOST_IP%'
auth_port = 5000
auth_protocol = http
admin_tenant_name = %OPENSTACK_ADMIN_TENANT%
admin_user = %OPENSTACK_ADMIN_USER%
admin_password = %OPENSTACK_ADMIN_PASSWORD%
...
[murano]
url = http://%YOUR_HOST_IP%:8082
[rabbitmq]
host = %RABBITMQ_SERVER_IP%
login = %RABBITMQ_USER%
password = %RABBITMQ_PASSWORD%
virtual_host = %RABBITMQ_SERVER_VIRTUAL_HOST%
[networking]
default_dns = 8.8.8.8 # In case OpenStack neutron has no default
[oslo_messaging_notifications]
driver = messagingv2
直接打开/etc/murano/murano.conf找到对应字段修改属性就可。
7
安装muranoclient
git clone https://github.com/openstack/python-muranoclient
cd python-muranoclient
sudo pip install -e .
8
更新murano数据库
murano-db-manage upgrade
9
创建service和endpoint
openstack service create --name murano --deion
"Application Catalog for OpenStack" application-catalog
openstack endpoint create --publicurl http://10.43.166.104:8082
--adminurl http://10.43.166.104:8082
--internalurl http://10.43.166.104:8082
--region=RegionOne
application-catalog
注:ip修改为环境的hostip,murano使用8082端口。代码中url路由v1版本,所以endpoint中的url配置为http://10.43.166.104:8082,而不是http://10.43.166.104:8082/v1
10
创建服务后端
分别在新的shell窗口,启动murano-api和murano-engine服务
murano-api --config-file /etc/murano/murano.conf
murano-engine --config-file /etc/murano/murano.conf
11
确认安装是否正确
使用murano命令确认是否正常
[root@tfg104 python-muranoclient(keystone_admin)]# murano environment-list
+----+------+--------+---------+---------+
| ID | Name | Status | Created | Updated |
+----+------+--------+---------+---------+
+----+------+--------+---------+---------+
网友评论
最新评论
环境的编排、部署与管理,即:COE(Container Orchestration Engines) as a service,目前支持Kubernetes、Me