浓墨重彩之OpenStack-11-heat编排服务


1、编排服务概览

编排服务通过运行调用生成运行中云应用程序的OpenStack API为描述云应用程序提供基于模板的编排。该软件将其他OpenStack核心组件整合进一个单文件模板系统。模板允许你创建很多种类的OpenStack资源,如实例,浮点IP,云硬盘,安全组和用户。它也提供高级功能,如实例高可用,实例自动缩放,和嵌套栈。这使得OpenStack的核心项目有着庞大的用户群。
服务使部署人员能够直接或者通过定制化插件来与编排服务集成
编排服务包含以下组件:

`` heat``命令行客户端
一个命令行工具,和``heat-api``通信,以运行:term: AWS CloudFormation API,最终开发者可以直接使用Orchestration REST API。

`` heat-api``组件
一个OpenStack本地 REST API ,发送API请求到heat-engine,通过远程过程调用(RPC)。

`` heat-api-cfn``组件
AWS 队列API,和AWS CloudFormation兼容,发送API请求到``heat-engine``,通过远程过程调用。

heat-engine
启动模板和提供给API消费者回馈事件。

2、安装和配置

a.先决条件

  1. 完成下面的步骤以创建数据库:
  • 用数据库连接客户端以 root 用户连接到数据库服务器:
$ mysql -u root -p
    • 创建 heat 数据库:
CREATE DATABASE heat;
    • 对``heat``数据库授予恰当的权限:
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' IDENTIFIED BY 'HEAT_DBPASS';
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' IDENTIFIED BY 'HEAT_DBPASS';
使用合适的密码替换``HEAT_DBPASS``。
    • 退出数据库客户端。
  1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc
  1. 要创建服务证书,完成这些步骤:
  • 创建``heat`` 用户:
$ openstack user create --domain default --password-prompt heatUser
Password:
Repeat User Password:
    • 添加 admin 角色到 heat 用户上。
$ openstack role add --project service --user heat admin
注解
这个命令执行后没有输出。

    • 创建``heat`` 和 heat-cfn 服务实体:
$ openstack service create --name heat --description "Orchestration" orchestration
$ openstack service create --name heat-cfn --description "Orchestration" cloudformation
  1. 创建 Orchestration 服务的 API 端点:
$ openstack endpoint create --region RegionOne orchestration public http://controller:8004/v1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne orchestration internal http://controller:8004/v1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne orchestration admin http://controller:8004/v1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne cloudformation public http://controller:8000/v1
$ openstack endpoint create --region RegionOne cloudformation internal http://controller:8000/v1
$ openstack endpoint create --region RegionOne cloudformation admin http://controller:8000/v1
  1. 为了管理栈,在认证服务中Orchestration需要更多信息。完成下面的步骤:
  • 为栈创建 heat 包含项目和用户的域:
$ openstack domain create --description "Stack projects and users" heat
    • heat 域中创建管理项目和用户的``heat_domain_admin``用户:
$ openstack user create --domain heat --password-prompt heat_domain_adminUser
Password:
Repeat User Password:
    • 添加``admin``角色到 heat 域 中的``heat_domain_admin``用户,启用``heat_domain_admin``用户管理栈的管理权限:
$ openstack role add --domain heat --user-domain heat --user heat_domain_admin admin
注解
这个命令执行后没有输出。

    • 创建 heat_stack_owner 角色:
$ openstack role create heat_stack_owner
    • 添加``heat_stack_owner`` 角色到``demo`` 项目和用户,启用``demo`` 用户管理栈。
$ openstack role add --project demo --user demo heat_stack_owner
注解
这个命令执行后没有输出。
注解
你必须添加 heat_stack_owner 角色到每个管理栈的用户。

    • 创建 heat_stack_user 角色:
$ openstack role create heat_stack_user
注解
Orchestration 自动地分配 ``heat_stack_user``角色给在 stack 部署过程中创建的用户。默认情况下,这个角色会限制 API 的操作。为了避免冲突,请不要为用户添加 ``heat_stack_owner``角色

b.安全并配置组件

注解
默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分 和选项。另外,在配置片段中的省略号( ... )表示默认的配置选项你应该保留。

  1. 安装软件包:
# yum install openstack-heat-api openstack-heat-api-cfn openstack-heat-engine
  1. 编辑文件 /etc/heat/heat.conf 并完成如下动作:
  • [database] 部分,配置数据库访问:
[database]
...
connection=mysql+pymysql://heat:HEAT_DBPASS@controller/heat
HEAT_DBPASS 替换为你为 Orchestration 数据库选择的密码。
    • 在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:
[DEFAULT]
...
rpc_backend=rabbit
[oslo_messaging_rabbit]
...
rabbit_host=controller
rabbit_userid=openstack
rabbit_password=RABBIT_PASS
用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。
    • 在``[keystone_authtoken]``, [trustee][clients_keystone]``和``[ec2authtoken] 部分,配置认证服务访问:
[keystone_authtoken]
...
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=heat
password=HEAT_PASS
[trustee]
...
auth_plugin=password
auth_url=http://controller:35357
username=heat
password=HEAT_PASS
user_domain_name=default
[clients_keystone]
...
auth_uri=http://controller:35357
[ec2authtoken]
...
auth_uri=http://controller:5000/v2.0
将``HEAT_PASS`` 替换为你在认证服务中为 heat 用户选择的密码。
    • 在``[DEFAULT]`` 部分,配置元数据和 等待条件URLs:
[DEFAULT]
...
heat_metadata_server_url=http://controller:8000
heat_waitcondition_server_url=http://controller:8000/v1/waitcondition
    • [DEFAULT] 部分,配置栈域与管理凭据:
[DEFAULT]
...
stack_domain_admin=heat_domain_admin
stack_domain_admin_password=HEAT_DOMAIN_PASS
stack_user_domain_name=heat
HEAT_DOMAIN_PASS 替换为你在认证服务中为``heat_domain_admin`` 用户选择的密码。
  1. 同步Orchestration数据库:
# su -s /bin/sh -c "heat-manage db_sync" heat
注解
忽略输出中任何不推荐使用的信息。

c.完成安装

  • 启动 Orchestration 服务并将其设置为随系统启动:
# systemctl enable openstack-heat-api.service openstack-heat-api-cfn.service
openstack-heat-engine.service
# systemctl start openstack-heat-api.service openstack-heat-api-cfn.service
openstack-heat-engine.service

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值