openstack中Heat说明文档

更新时间:2023-08-06 16:32:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

Heat说明文档

1 项目介绍

1.1 什么是Heat?

Heat是一套业务流程平台,旨在帮助用户更轻松地配置以OpenStack为基础的云体系。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与Amazon Web Services业务流程平台CloudFormation相对接——这意味着用户完全可以将AWS模板引入OpenStack环境当中。

2 安装和配置

2.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

2.2 在配置文件中说明Orchestration服务存储的数据在数据库的位置,下面

的例子使用MySQL数据库。

# openstack-config --set /etc/heat/heat.conf \

DEFAULT sql_connection mysql://heat:HEAT_DBPASS@controller/heat 以root身份和之前设置的密码登录,再创建一个名为heat的数据库。 # mysql -u root -p

mysql> CREATE DATABASE heat;

mysql> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' \ IDENTIFIED BY 'HEAT_DBPASS';

mysql> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' \

IDENTIFIED BY 'HEAT_DBPASS';

2.3 创建heat服务表

# heat-manage db_sync

2.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

2.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

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

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

2.6 用身份服务去注册Heat和CloudFormation APIs以便其他openstack服务

能找到这些APIs,注册这些服务并指点端点:

# keystone service-create --name=heat --type=orchestration \ --description="Heat Orchestration API"

2.6.1 使用返回给服务的id属性去创建端点:

# keystone endpoint-create \

--service-id=the_service_id_above \

--publicurl=http://controller:8004/v1/%\(tenant_id\)s \

--internalurl=http://controller:8004/v1/%\(tenant_id\)s \

--adminurl=http://controller:8004/v1/%\(tenant_id\)s

# keystone service-create --name=heat-cfn --type=cloudformation \ --description="Heat CloudFormation API"

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

# keystone endpoint-create \

--service-id=the_service_id_above \

--publicurl=http://controller:8000/v1 \

--internalurl=http://controller:8000/v1 \

--adminurl=http://controller:8000/v1

2.7 启动heat-api, heat-api-cfn 和 heat-engine 服务,同时配置他们使得

在机器启动的时候这些服务也会启动。

# service openstack-heat-api start

# service openstack-heat-api-cfn start

# service openstack-heat-engine start

# chkconfig openstack-heat-api on

# chkconfig openstack-heat-api-cfn on

# chkconfig openstack-heat-engine on

2.8 验证Orchestration服务的安装

为了验证Orchestration服务被正确安装和配置,确保所做的配置在

openrc.sh是正确的,使用下面的命令:

$ source openrc.sh

3 操作命令

3.1 命令用法

usage: heat [--version] [-d] [-v] [-k] [--os-cacert <ca-certificate>]

[--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]

[--os-tenant-name OS_TENANT_NAME] [--os-auth-url OS_AUTH_URL]

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

[--os-region-name OS_REGION_NAME] [--os-auth-token OS_AUTH_TOKEN]

[--os-no-client-auth] [--heat-url HEAT_URL]

[--heat-api-version HEAT_API_VERSION]

[--os-service-type OS_SERVICE_TYPE]

[--os-endpoint-type OS_ENDPOINT_TYPE] [--include-password]

<subcommand> ...

3.2 命令使用说明

heat action-resume <NAME or ID>

重启或恢复栈

heat action-suspend <NAME or ID>

挂起栈

heat build-info

获取建栈的信息

heat event-list [-r <RESOURCE>] <NAME or ID>

stack的事件列表

heat event-show <NAME or ID> <RESOURCE> <EVENT>

描述stack的事件

usage: heat output-list <NAME or ID>

显示可用的输出

heat output-show <NAME or ID> <OUTPUT NAME>

显示可用输出的值

heat resource-list <NAME or ID>

显示某个stack资源的列表

usage: heat resource-metadata <NAME or ID> <RESOURCE>

列出元数据资源

heat resource-show <NAME or ID> <RESOURCE>

描述资源(例如一个wordperss的资源信息)

heat resource-signal [-D <DATA>] [-f <FILE>] <NAME or ID> <RESOURCE>

给资源发送信号

heat resource-template [-F <FORMAT>] <RESOURCE>

基于资源产生一个模板

heat resource-type-list

列出可用的资源类型

heat resource-type-show <RESOURCE_TYPE>

显示资源类型

heat stack-abandon <NAME or ID>

放弃栈

heat stack-adopt [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]

[-c <TIMEOUT>] [-t <TIMEOUT>] [-a <FILE or URL>] [-r]

[-P <KEY1=VALUE1;KEY2=VALUE2...>]

<STACK_NAME>

使用栈

heat stack-create [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]

[-c <TIMEOUT>] [-t <TIMEOUT>] [-r]

[-P <KEY1=VALUE1;KEY2=VALUE2...>]

<STACK_NAME>

创建一个栈

heat stack-delete <NAME or ID> [<NAME or ID> ...]

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

删除一个栈

heat stack-list [-s] [-f <KEY1=VALUE1;KEY2=VALUE2...>] [-l <LIMIT>]

[-m <ID>] [-g]

列出用户所有的栈

heat stack-preview [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]

[-P <KEY1=VALUE1;KEY2=VALUE2...>]

<STACK_NAME>

预览栈

heat stack-show <NAME or ID>

描述栈

heat stack-update [-f <FILE>] [-e <FILE or URL>] [-u <URL>] [-o <URL>]

[-t <TIMEOUT>] [-r] [-P <KEY1=VALUE1;KEY2=VALUE2...>] <NAME or ID>

更新栈

heat template-show <NAME or ID>

得到某个具体的栈的模板

heat template-validate [-u <URL>] [-f <FILE>] [-e <FILE or URL>]

[-o <URL>]

3.3 验证模板参数

命令可选参数

--version

显示版本信息

-d, --debug

Defaults to env[HEATCLIENT_DEBUG].

-v, --verbose

打印更详细的输出

-k, --insecure

Explicitly allow the client to perform "insecure" SSL (https) requests. The server's certificate will not be verified against any certificate authorities. This option should be used with caution.

--os-cacert <ca-certificate>

Specify a CA bundle file to use in verifying a TLS (https) server certificate. Defaults to env[OS_CACERT]

--cert-file CERT_FILE

Path of certificate file to use in SSL connection. This file can optionally be prepended with the private key.

--key-file KEY_FILE

Path of client key to use in SSL connection.This option is not necessary if your key is prepended to your cert file. --ca-file CA_FILE

Path of CA SSL certificate(s) used to verify the remote server's certificate. Without this option the client looks for the default system CA certificates.

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

--api-timeout API_TIMEOUT

Number of seconds to wait for an API response, defaults to system socket timeout

--os-username OS_USERNAME

Defaults to env[OS_USERNAME].

--os-password OS_PASSWORD

Defaults to env[OS_PASSWORD].

--os-tenant-id OS_TENANT_ID

Defaults to env[OS_TENANT_ID].

--os-tenant-name OS_TENANT_NAME

Defaults to env[OS_TENANT_NAME].

--os-auth-url OS_AUTH_URL

Defaults to env[OS_AUTH_URL].

--os-region-name OS_REGION_NAME

Defaults to env[OS_REGION_NAME].

--os-auth-token OS_AUTH_TOKEN

Defaults to env[OS_AUTH_TOKEN].

--os-no-client-auth

Do not contact keystone for a token. Defaults to

env[OS_NO_CLIENT_AUTH].

--heat-url HEAT_URL

Defaults to env[HEAT_URL].

--heat-api-version HEAT_API_VERSION

Defaults to env[HEAT_API_VERSION] or 1.

--os-service-type OS_SERVICE_TYPE

Defaults to env[OS_SERVICE_TYPE].

--os-endpoint-type OS_ENDPOINT_TYPE

Defaults to env[OS_ENDPOINT_TYPE].

--include-password

Send os-username and os-password to heat

4 创建和管理stacks(Dashboard中的使用)

4.1 创建stack的前提是已经安装好Devstack,这里就忽略Devstack的安装过

程,在安装好的Devstack的Dashboard中可以看到图1所示界面。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图1(Dashboard界面)

4.2 创建stack需要模板

可以自己定义,也可以直接利用模板的URL,也可以从网站上下载模板并加载到stack中,模板可以创建不同的应用,这里就以wordpress应用并利用在线的模板为例创建stack,因为有的模板需要keypair有的不许要,这里的例子是需要的,那么首先需要创建一个keypai。

4.2.1 进入Access&Security选项中,可以看到如图2所示界面:

图2(Access&Security界面)

4.2.2 单击右上角的Create Key Pair,如图3所示,输入Key Pair Name,单击Create

Kye Pair。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图3(Create Key Pair)

4.2.3 结果如图4所示

图4(结果)

4.3 Stack的创建

4.3.1 进入Orchestration列表下的Stacks选项,如图5所示。

图5(Stacks界面)

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

4.3.2 单击右上角的Launch Stacks,会出现一个创建stack的界面并输入相应的信

息,如图6所示,其中Template Source选择URL,在Template URL中输入模板的

地址,这里是参考官网文档中的模板,输入后单击Next。

图6(Stack信息输入界面)

4.3.3 单击Next后会出现填入模板中规定字段内容的界面

具体如图7所示,其中Stack Name为必填字段,可以任意取值;Password for usr “admin”字段内容所填的是登录dashboard界面的密码;由于官网中所显示的image版本已经发生变化,这里就用Fedora-x86_64-20-20140618-sda镜像;key_name字段所填入内容为步骤1中所创建key_pair的名字,为heat_key。其余字段在模板文件中已经写好,不需要改动,单击Launch。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图7(模板信息内容界面)

4.3.4 完成之后可以看到如图8所示的界面,可以看到创建已经完毕。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图8(stack创建结果)

4.3.5 单击stack的名字teststack之后可以看到该stack具体信息

进入event选项后可以看到如图9所示界面,可以看到stack的创建有两个状态,一

个是Create In Progress,这个状态持续十几秒之后就会出现第二个状态(一般来说每个stack的创建都会有这两个状态,但是不同模板的stack的create in progress时间不一样),即Create Complate状态。

图9(stack实例Events信息)

4.3.6 再单击Oerview选项后可以看到模板的详细信息

如图10所示。可以看到返回的wordpress链接地址信息以及其他一些基本信息(模

板中output部分)。等云主机创建好并部署好wordpress应用之后就可以通过这个链接地址访问。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图10(stack详细信息)

4.3.7 接着进入Compute下面的Instances选项,可以看到之前创建的stack中创建出

来的虚拟机,如图11所示。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图11(instance信息)

4.3.8 单击该虚拟机的名字进入该虚拟机的详细信息界面,如图12所示。

图12(instance详细信息)

4.3.9 单击Log选项进入创建过程日志,可以看到整个创建过程的日志,如图13所示。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图13(日志界面)

4.4 在等待创建完毕的过程中可以通过终端去wget该wordpress应用地址,以

便于我们知道该应用的地址是否能够被访问。结果如图14所示:

图14(终端测试)

4.5 最后可以通过浏览器去访问该wordpress应用。

4.5.1 在浏览器中输入创建stack过程中返回的链接地址,在本例中是http://10.0.0.5/wordpress,结果如图15所示,可以看到正在加载的界面。加

载完毕的界面如图16所示。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图15(wordpress界面加载)

图16(加载完毕)

4.5.2 在加载完毕的界面中输入相应的信息(标题、用户名、密码以及邮箱),如图

17所示,然后单击Install WordPress就可以安装这个应用了。安装完毕的界面

如图18所示

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图17(输入信息)

图18(安装完毕)

4.5.3 接着单击Log In登录界面如图19所示,输入相应的用户名和密码(步骤5.2中

的信息)登录进去。

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图19(登录界面)

4.5.4 登录进去之后可以看到整个wordpress的界面,如图20所示,至此,整个stack

的创建和应用的安装结束。

图20(wordpress应用界面)

5 数据库展示

数据库的展示就用命令从终端查看,截图如图21:

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图21(数据库展示)

6 如何进行debug

6.1 首先在ubuntu中安装eclipse,并配置好PyDev,然后新建一个PyDev项目,

如图22所示:

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

图22(创建PyDev项目)

6.2 创建好一个项目后将stack目录下的heat目录中的所有文件拷贝到heat项

目中,如图23所示:

从概念到安装到debug,一条龙服务,感兴趣的可以看看,因为没有积分,所以上传了。。。。

(heat项目代码框架)

6.3 从终端查看heat服务,ps -ef|grep heat,如图24所示:图23

本文来源:https://www.bwwdw.com/article/jbyj.html

Top