分享

heat安装和配置及命令使用

pig2 发表于 2014-11-26 10:47:06 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 60627
本帖最后由 pig2 于 2014-11-26 10:58 编辑

问题导读


1.如何启动heat-api, heat-api-cfn 和 heat-engine 服务?
2.heat安装需要安装哪些工具和如那件?








1.1 Install the Orchestration service  


Install the Orchestration module on the controller node:  # yum install openstack-heat-api openstack-heat-engine openstack-heat-api- cfn  

1.2 在配置文件中说明Orchestration服务存储的数据在数据库的位置

下面
的例子使用MySQL数据库。
  1. # openstack-config --set /etc/heat/heat.conf \  
  2. DEFAULT sql_connection mysql://heat:HEAT_DBPASS@controller/heat  以root身份和之前设置的密码登录,再创建一个名为heat的数据库。 # mysql -u root -p  
  3. mysql> CREATE DATABASE heat;  
  4. mysql> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' \  IDENTIFIED BY 'HEAT_DBPASS';  
  5. mysql> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' \  IDENTIFIED BY 'HEAT_DBPASS';
复制代码




1.3 创建heat服务表
# heat-manage db_sync  


1.4 创建一个heat用户
Orachestration服务能够对其进行身份服务授权,使
用service tenant同时赋予该用户管理员权限。
# keystone user-create --name=heat --pass=HEAT_PASS --email=heat@example.  com  
# keystone user-role-add --user=heat --tenant=service –role=admin  

1.5 编辑/etc/heat/heat.conf 文件

在[keystone_authtoken] 和
[ec2_authtoken] 部分添加认证: [keystone_authtoken]  auth_host = controller  auth_port = 35357  auth_protocol = http  
auth_uri = http://controller:5000/v2.0  admin_tenant_name = service  
admin_user = heat  
admin_password = HEAT_PASS  [ec2_authtoken]  
auth_uri = http://controller:5000/v2.0  
keystone_ec2_uri = http://controller:5000/v2.0/ec2tokens  

1.6 用身份服务去注册Heat和CloudFormation APIs以便其他openstack服务
能找到这些APIs,注册这些服务并指点端点:
  1. # keystone service-create --name=heat --type=orchestration \  --description="Heat Orchestration API"  
复制代码




1.6.1 使用返回给服务的id属性去创建端点:
  1. # keystone endpoint-create \  
  2. --service-id=the_service_id_above \  
  3. --publicurl=http://controller:8004/v1/%\(tenant_id\)s \  --internalurl=http://controller:8004/v1/%\(tenant_id\)s \  --adminurl=http://controller:8004/v1/%\(tenant_id\)s  
  4. # keystone service-create --name=heat-cfn --type=cloudformation \  --description="Heat CloudFormation API"
复制代码





1.6.2 使用返回给服务的id去创建端点:

  1. # keystone endpoint-create \  
  2. --service-id=the_service_id_above
复制代码




1.7 启动heat-api, heat-api-cfn 和 heat-engine 服务,

同时配置他们使得在机器启动的时候这些服务也会启动。
  1. # service openstack-heat-api start  
复制代码








  2.8 验证Orchestration服务的安装
为了验证Orchestration服务被正确安装和配置,确保所做的配置在openrc.sh是正确的,使用下面的命令:


  1. $ source openrc.sh
复制代码



已有(2)人评论

跳转到指定楼层
pig2 发表于 2014-11-26 10:56:26
命令使用说明


3 操作命令
3.1 命令用法

  1. usage: heat [--version] [-d] [-v] [-k] [--os-cacert <ca-certificate>]
  2.             [--cert-file CERT_FILE] [--key-file KEY_FILE] [--ca-file CA_FILE]             [--api-timeout API_TIMEOUT] [--os-username OS_USERNAME]             [--os-password OS_PASSWORD] [--os-tenant-id OS_TENANT_ID]
  3.             [--os-tenant-name OS_TENANT_NAME] [--os-auth-url OS_AUTH_URL]
  4.             [--os-region-name OS_REGION_NAME] [--os-auth-token OS_AUTH_TOKEN]            
复制代码




3.2 命令使用说明
  1. heat action-resume <NAME or ID>
复制代码



重启或恢复栈
  1. heat action-suspend <NAME or ID>
复制代码



挂起栈
  1. heat build-info
复制代码



获取建栈的信息
  1. heat event-list [-r <RESOURCE>] <NAME or ID>
复制代码



stack的事件列表
  1. heat event-show <NAME or ID> <RESOURCE> <EVENT>
复制代码



描述stack的事件
  1. usage: heat output-list <NAME or ID>
复制代码



显示可用的输出
  1. heat output-show <NAME or ID> <OUTPUT NAME>
复制代码



显示可用输出的值
  1. heat resource-list <NAME or ID>
复制代码



显示某个stack资源的列表
  1. usage: heat resource-metadata <NAME or ID> <RESOURCE>
复制代码



列出元数据资源
  1. heat resource-show <NAME or ID> <RESOURCE>
复制代码



描述资源(例如一个wordperss的资源信息)
  1. heat resource-signal [-D <DATA>] [-f <FILE>] <NAME or ID> <RESOURCE>
复制代码



给资源发送信号
  1. heat resource-template [-F <FORMAT>] <RESOURCE>
复制代码



基于资源产生一个模板
  1. heat resource-type-list
复制代码



列出可用的资源类型
  1. heat resource-type-show <RESOURCE_TYPE>
复制代码



显示资源类型
  1. heat stack-abandon <NAME or ID>
复制代码



放弃栈
  1. heat stack-adopt [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]
  2.                         [-c <TIMEOUT>] [-t <TIMEOUT>] [-a <FILE or URL>] [-r]                        
  3.                         [-P <KEY1=VALUE1;KEY2=VALUE2...>]                        
  4.                         <STACK_NAME>
复制代码



使用栈
  1. heat stack-create [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]                          
  2.                          [-c <TIMEOUT>] [-t <TIMEOUT>] [-r]                        
  3.                          [-P <KEY1=VALUE1;KEY2=VALUE2...>]                          
  4.                          <STACK_NAME>
复制代码



创建一个栈
  1. heat stack-delete <NAME or ID> [<NAME or ID> ...]
复制代码



删除一个栈
  1. heat stack-list [-s] [-f <KEY1=VALUE1;KEY2=VALUE2...>] [-l <LIMIT>]                       
  2. [-m <ID>] [-g]
复制代码



列出用户所有的栈
  1. heat stack-preview [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]                           
  2. [-P <KEY1=VALUE1;KEY2=VALUE2...>]                           
  3. <STACK_NAME>
复制代码



预览栈
  1. heat stack-show <NAME or ID>
复制代码



描述栈
  1. heat stack-update [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]
  2.                          [-t <TIMEOUT>] [-r] [-P <KEY1=VALUE1;KEY2=VALUE2...>]                             
  3.                          <NAME or ID>
复制代码



更新栈
  1. heat template-show <NAME or ID>
复制代码



得到某个具体的栈的模板
  1. heat template-validate [-u <URL>] [-f <FILE>] [-e <FILE or URL>]                              
  2. [-o <URL>]
复制代码






更多内容:百度文库



回复

使用道具 举报

liuwanbing1985 发表于 2015-10-12 13:10:24
heat stack-create -f test-stack.yml \
> -P "ImageID=c862538e-b43f-4f54-9e4c-74c12dcf30fe;NetID=72249cd5-7d94-49d5-85b0-07322b2e0474" testStack

Error parsing template file:///root/test-stack.yml Template format version not found.


NET_ID=$(nova net-list | awk '/ demo-net / { print $2 }')
heat stack-create -f test-stack.yml \
> -P "ImageID=c862538e-b43f-4f54-9e4c-74c12dcf30fe;NetID=$NET_ID" testStack
Error parsing template file:///root/test-stack.yml Template format version not found.

创建 testStack 出错。。。

test-stack.yml 内容:

heat_template_version: 2014-10-16
description: A simple server.

parameters:
ImageID:
  type: string
  description: Image use to boot a server
NetID:
  type: string
  description: Network ID for the server

resources:
server:
  type: OS::Nova::Server
  properties:
   image: { get_param: ImageID }
   flavor: m1.tiny
   networks:
   - network: { get_param: NetID }
outputs:
private_ip:
  description: IP address of the server in the private network
  value: { get_attr: [ server, first_address ] }


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条