SlideShare a Scribd company logo
HOT: Heat Orchestration Template の書き方
2015-12-24
1
基本
2
HOTとは?
 Heatで利用するシステム構成をデータ構造(YAML)で記述したファ
イルを指す。
 Heat が定めるデータ構造
 YAML形式で記述
 作成するリソース、設定するパラメータなどのシステム構造を定義する。
 多段ネスト可能
 リソース間の依存関係を定義
 暗黙の依存関係
 明示的な依存関係
 定義された依存関係に基づいてリソースの作成順序が決まる
 依存関係がないものは平行で作成される
 作成された全てのリソースは「状態」を持つ
 Heatが検知する状態
 ユーザーが外部から与える状態
3
Heatを使うための条件
 イメージ
 cloud-init
 インストールされていなくてもHeatは利用できますが、利用可能であればより
高度な設定が可能です。
 heat-cfntools
 インストールされていなくてもHeatは利用できますが、利用可能であればより
高度な設定が可能です。
 userdata で 連携を行うため cloud-init が導入されていることが前提です。
 ネットワーク
 Heat管理下で作成するインスタンスは外部ネットワーク(Heatのエン
ドポイント)へ接続できる事が推奨
 閉じたネットワークでも利用可能だが、一部の機能が制限される。
 これは状態の通知がエンドポイント経由で行われるため。
4
HOTの基本
 OpenStack上で行える操作がほぼ全て行えます。
 例)
 仮想サーバーの作成
 キーペアの作成
 仮想ネットワーク、サブネットの作成
 仮想ルーターの作成、ネットワークとの接続
 Floating IPの作成、割当て
 論理ポートの作成
 セキュリティグループの作成
 仮想ボリュームの作成、アタッチ
 「リソース」をYAMLで記述することで作成できます。
 このYAMLファイルを「テンプレート」と呼びます。
5
resources:
server1:
type: OS::Nova::Server
properties:
name: "Heat_Deployed_Server"
image: { get_param: ImageID }
flavor: "m1.small"
key_name: "temp-key-001"
networks:
- network: { get_param: NetID }
web_server_security_group:
type: OS::Neutron::SecurityGroup
properties:
name: web_server_security_group
rules:
- protocol: icmp
- protocol: tcp
port_range_min: 22
port_range_max: 22
- protocol: tcp
port_range_min: 443
port_range_max: 443
- protocol: tcp
port_range_min: 80
port_range_max: 80
private_subnet:
type: OS::Neutron::Subnet
properties:
network_id: { get_resource: private_network }
cidr: 10.10.20.0/24
dns_nameservers:
- 8.8.8.8
- 8.8.4.4
セキュリティグループの作成
仮想サーバーの作成
サブネットの作成
テンプレートに記述できるリソース
 heat resource-type-list コマンドで一覧を確認できます。
 利用できるリソースはHeatのバージョンに依存します。
 またHeatのバージョンによって同じリソースでも仕様が異なっている場合があります。
 例)
 パラメータのバリデーション方法など。
 これにより、前のバージョンでは動いていたのに、新しいバージョンではエラーになるという場合があります。
 以下は利用できるリソースの一部を表示したものです。
6
$ heat resource-type-list
+------------------------------------------+
| resource_type |
+------------------------------------------+
| AWS::AutoScaling::AutoScalingGroup |
| AWS::AutoScaling::LaunchConfiguration |
| AWS::AutoScaling::ScalingPolicy |
| AWS::CloudFormation::Stack |
| AWS::CloudFormation::WaitCondition |
| AWS::CloudFormation::WaitConditionHandle |
| AWS::CloudWatch::Alarm |
| AWS::EC2::EIP |
| AWS::EC2::EIPAssociation |
| AWS::EC2::Instance |
| AWS::EC2::InternetGateway |
| AWS::EC2::NetworkInterface |
| AWS::EC2::RouteTable |
| AWS::EC2::SecurityGroup |
| AWS::EC2::Subnet |
| AWS::EC2::SubnetRouteTableAssociation |
| AWS::EC2::VPC |
| AWS::EC2::VPCGatewayAttachment |
| AWS::EC2::Volume |
| AWS::EC2::VolumeAttachment |
| AWS::ElasticLoadBalancing::LoadBalancer |
| AWS::IAM::AccessKey |
| AWS::IAM::User |
| AWS::RDS::DBInstance |
| AWS::S3::Bucket |
| OS::Ceilometer::Alarm |
| OS::Ceilometer::CombinationAlarm |
| OS::Cinder::Volume |
| OS::Cinder::VolumeAttachment |
| OS::Glance::Image |
| OS::Heat::AccessPolicy |
| OS::Heat::AutoScalingGroup |
| OS::Heat::CWLiteAlarm |
| OS::Heat::CloudConfig |
| OS::Heat::HARestarter |
| OS::Heat::InstanceGroup |
| OS::Heat::MultipartMime |
| OS::Heat::RandomString |
| OS::Heat::ResourceGroup |
| OS::Heat::ScalingPolicy |
| OS::Heat::SoftwareComponent |
| OS::Heat::SoftwareConfig |
| OS::Heat::SoftwareDeployment |
| OS::Heat::SoftwareDeployments |
| OS::Heat::Stack |
| OS::Heat::StructuredConfig |
| OS::Heat::StructuredDeployment |
| OS::Heat::StructuredDeployments |
| OS::Heat::SwiftSignal |
| OS::Heat::SwiftSignalHandle |
| OS::Heat::UpdateWaitConditionHandle |
| OS::Heat::WaitCondition |
| OS::Heat::WaitConditionHandle |
| OS::Neutron::Firewall |
| OS::Neutron::FirewallPolicy |
| OS::Neutron::FirewallRule |
| OS::Neutron::FloatingIP |
| OS::Neutron::FloatingIPAssociation |
| OS::Neutron::HealthMonitor |
| OS::Neutron::IKEPolicy |
| OS::Neutron::IPsecPolicy |
| OS::Neutron::IPsecSiteConnection |
| OS::Neutron::LoadBalancer |
| OS::Neutron::MeteringLabel |
| OS::Neutron::MeteringRule |
| OS::Neutron::Net |
| OS::Neutron::NetworkGateway |
| OS::Neutron::Pool |
| OS::Neutron::PoolMember |
| OS::Neutron::Port |
| OS::Neutron::ProviderNet |
| OS::Neutron::Router |
| OS::Neutron::RouterGateway |
| OS::Neutron::RouterInterface |
heat_template_version: 2015-04-30
テンプレートのバージョン
 Heatはバージョンごとサポートされるリソースと、DSL内関数の機能が異
なっています。
 基本的に新しいHeatは過去のテンプレートバージョンをサポートしています。
 テンプレートの先頭にどのバージョンを利用するか宣言します。
 利用可能なバージョンは以下
 年月日の部分がバージョン番号です。
7
2013-05-23
Icehouse
2014-10-16
Juno
2015-04-30
Kilo
2015-10-15
Liberty
2016-04-08
Mitaka
DSLで利用でき
る関数
get_attr
get_file
get_param
get_resource
list_join
resource_facade
str_replace
Fn::Base64
Fn::GetAZs
Fn::Join
Fn::MemberListTo
Map
Fn::Replace
Fn::ResourceFaca
de
Fn::Select
Fn::Split
Ref
get_attr
get_file
get_param
get_resource
list_join
resource_facade
str_replace
Fn::Select
get_attr
get_file
get_param
get_resource
list_join
repeat
digest
resource_facade
str_replace
Fn::Select
get_attr
get_file
get_param
get_resource
list_join
repeat
digest
resource_facade
str_replace
str_split
digest
get_attr
get_file
get_param
get_resource
list_join
map_merge
repeat
resource_facade
str_replace
str_split
http://docs.openstack.org/developer/heat/template_guide/hot_spec.html#heat-template-version
シンプルなテンプレート
 以下は1台のインスタンスを作成するテンプレートです。
 nova boot コマンドと同じようなパラメータを与えています。
 テンプレートはYAMLのデータ構造でシステム全体の構造を定義するのが役割です。
 システムの構造とは、以下のような情報を指します。
 そのシステムがどのようなネットワークをいくつ持つか、そのシステムはどのような役割のインスタンスをいくつ持つか
 システムの起動順序、システムが障害を起こした際にどうするか?そのシステムを制御するための変数は何か?
 テンプレートを実行すると「スタック(stack)」が作成されます。
8
heat_template_version: 2015-04-30
resources:
server1:
type: OS::Nova::Server
properties:
image: d33f51a3-6a18-4b96-bde6-2a68782336ca
flavor: "m1.small"
key_name: "temp-key-001"
networks:
- network: 1a684f4a-4f06-4741-b4f9-daa28676f74b
single-instance.yaml
テンプレートのバージョンを宣言します。
操作するリソースについて記述します。
ここれは1台のインスタンスを作成しています。
ここでは1つのリソースのみ記述していますが、実際
にはいくつでも記載可能です。
# heat stack-create -f single-instance.yaml test-stack
+--------------------------------------+------------+--------------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+------------+--------------------+----------------------+
| b4b8d078-7f84-4ab3-b8ca-87dc80d2480e | test-stack | CREATE_IN_PROGRESS | 2015-12-21T14:52:57Z |
+--------------------------------------+------------+--------------------+----------------------+
# nova list
+--------------------------------------+---------------------------------+--------+------------+-------------+----------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+---------------------------------+--------+------------+-------------+----------------------+
| abbbbc96-f301-4d63-b13b-b9733d3b6404 | test-stack-server1-cg4vev4dgxga | ACTIVE | - | Running | work-net=10.10.10.16 |
+--------------------------------------+---------------------------------+--------+------------+-------------+----------------------+
スタック
 スタックとはテンプレートから作成されたシステム全体を表すリ
ソースです。
 Heatはこのスタックを操作対象にするテンプレートを記述可能です。
9
heat_template_version: 2015-
04-30
resources:
server1:
type: OS::Nova::Server
properties:
image: d33f51a3-6a18-
4b96-bde6-2a68782336ca
flavor: "m1.small"
key_name: "temp-key-
001"
networks:
- network: 1a684f4a-
4f06-4741-b4f9-daa28676f74b
テンプレート
スタック1
スタック2
stack-create
stack-create
スタックの状態
 作成されたスタックは状態を持ちます。
 管理するリソースの状態、操作の状況によってスタックは様々
な状態へ変化します。
 以下は状態の一例です。
10
init_in_progress
init_complete
init_failed
create_in_progress
create_complete
create_failed
delete_in_progress
delete_complete
delete_failed
update_in_progress
update_complete
update_failed
snapshot_in_progress
snapshot_complete
snapshot_failed
check_in_progress
check_complete
check_failed
rollback_in_progress
rollback_complete
rollback_failed
suspend_in_progress
suspend_complete
suspend_failed
resume_in_progress
resume_complete
resume_failed
adopt_in_progress
adopt_complete
adopt_failed
スタックの状態の基本
 HeatはOpenStackの各APIサーバーと通信してリソースの状
態を取得します。
 つまり、実体のリソースの本当の状態をHeatは知ることはでき
ません。
 例)
 インスタンスをHeatのテンプレートで作成した際に、Nova側で「ACTIVE」と
なれば、Heatはそのリソースが正常に作成されたと判断します。
 実際はまだOSの起動中で、起動に失敗するという事もありえます。
 Heatはこの問題を解決する方法を用意しています。方法は後述します。
 これが問題となるのはNovaインスタンスを扱う場合です。
 作成したインスタンスの中で様々な動作を行うため。
11
HOTの構造
 先にシンプルなテンプレート例を紹介しましたが、実際のテン
プレートはもっと多くの情報を含んでいます。
 ここではトップレベルの構造を紹介します。現在のテンプレート
は5つのセクションをテンプレート内に持ちます。
 heat_template_version, resources 以外は省略可能です。
12
heat_template_version: 2015-04-30
description: Demo template for the 09th lecture.
parameters:
image:
type: string
label: Image name or ID
description: Image to be used for the server.
default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2
resources:
private_network:
type: OS::Neutron::Net
outputs:
instance_ip:
description: The IP address of the deployed instance
value: { get_attr: [floating_ip, floating_ip_address] }
テンプレートのバージョン
テンプレートの説明
外部から変更可能なパラメータを定義する
作成するリソースを記述する。最も重要。
スタック内の情報を外部へ出力する
テンプレート例
 以下は仮想ルーター、仮想ネットワークを作成・接続し、論理ポートを作
成した後で、インスタンスを一台起動して、Floating IPを与える例です。
13
parameters:
image:
type: string
label: Image name or ID
description: Image to be used for the server.
default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2
flavor:
type: string
label: Flavor
description: Type of instance (flavor) to be used on the compute instance.
default: m1.small
key:
type: string
label: Key name
description: Name of key-pair to be installed on the compute instance.
default: temp-key-001
public_network:
type: string
label: Public network name or ID
description: Public network with floating IP addresses.
default: public
ext_router:
type: string
label: Router name
description: Router name or ID to connect to an external network.
default: Ext-Router
secgroup:
type: string
label: Secgroup name
description: Security group name.
default: web_server_security_group
resources:
private_network:
type: OS::Neutron::Net
private_subnet:
type: OS::Neutron::Subnet
properties:
network_id: { get_resource: private_network }
cidr: 10.10.20.0/24
dns_nameservers:
- 8.8.8.8
- 8.8.4.4
router-interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_param: ext_router }
subnet: { get_resource: private_subnet }
neutron-port:
type: OS::Neutron::Port
properties:
network: { get_resource: private_network }
security_groups:
- { get_param: secgroup }
test-instance:
type: OS::Nova::Server
properties:
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key }
networks:
- port: { get_resource: neutron-port }
floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: public_network }
floating_ip_assoc:
type: OS::Neutron::FloatingIPAssociation
properties:
floatingip_id: { get_resource: floating_ip }
port_id: { get_resource: flasky_port }
Parameters セクション
 定義したパラメーターの値はテンプレート内から get_param
関数で参照可能です。
 パラメーターにはデフォルト値を設定することが可能。
 デフォルト値は、スタック作成時に上書き可能。
14
parameters:
image:
type: string
label: Image name or ID
description: Image to be used for the server.
default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2
flavor:
type: string
label: Flavor
description: Type of instance (flavor) to be used on the compute
instance.
default: m1.small
$ heat stack-create -f heat.yaml -P 'image=Ubuntu14.04lts;flavor=m1.medium' stack-name
test-instance:
type: OS::Nova::Server
properties:
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key }
networks:
- port: { get_resource: neutron-port }
パラメーターの値を参照
(通常はデフォルト値が参
照される)
パラメーターを上書きしてスタックを作成
する例
Resources セクション
 作成するリソースを記述していく。
 リソースは作成する単位ごとに1つのタイプを持つ。
 get_resource, get_attr 関数で他のリソースの値を参照可能。
15
resources:
wait_condition:
type: OS::Heat::WaitCondition
properties:
handle: { get_resource: wait_handle }
count: 1
timeout: 600
wait_handle:
type: OS::Heat::WaitConditionHandle
web_server_security_group:
type: OS::Neutron::SecurityGroup
properties:
name: web_server_security_group
rules:
- protocol: icmp
- protocol: tcp
port_range_min: 22
port_range_max: 22
- protocol: tcp
port_range_min: 443
port_range_max: 443
- protocol: tcp
port_range_min: 80
port_range_max: 80
private_network:
type: OS::Neutron::Net
private_subnet:
type: OS::Neutron::Subnet
properties:
network_id: { get_resource: private_network }
cidr: 10.10.20.0/24
dns_nameservers:
- 8.8.8.8
- 8.8.4.4
router-interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_param: ext_router }
subnet: { get_resource: private_subnet }
neutron-port:
type: OS::Neutron::Port
properties:
network: { get_resource: private_network }
security_groups:
- { get_resource: web_server_security_group }
test-instance:
type: OS::Nova::Server
properties:
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key }
networks:
- port: { get_resource: neutron-port }
user_data_format: RAW
user_data:
str_replace:
params:
wc_notify: { get_attr: ['wait_handle', 'curl_cli'] }
template: |
#!/bin/bash -ex
sleep 3
echo "Hello"
wc_notify --data-binary '{"status": "SUCCESS"}'
echo '--- end ---'
Outputs セクション
 作成したスタックの情報を外部に出力する。
 他のプログラムとの連携や、別のテンプレートで仕様する。
16
outputs:
instance_name:
description: Name of the instance
value: { get_attr: [test-instance, name] }
instance_ip:
description: The IP address of the deployed instance
value: { get_attr: [floating_ip, floating_ip_address] }
[
{
"output_value": "test3-test-instance-2xmjvlijsyrz",
"description": "Name of the instance",
"output_key": "instance_name"
},
{
"output_value": "172.16.0.104",
"description": "The IP address of the deployed instance",
"output_key": "instance_ip"
}
]
リソースの依存関係
 Resourcesセクションでは get_resource, get_attr で他のリソースを参照した場合に、Heat側で自動で依存関係が設定されます。
 リソース作成時に、 depend_on パラメーターを与える事で、ユーザーが依存関係を設定することも可能。
 依存関係が設定されている場合、依存元のリソースの作成が完了してから、リソースの作成が行われる。
 それ以外のリソースは平行で作成されていく。
 以下のテンプレートからスタックを作成した場合・・・
17
heat_template_version: 2015-04-30
description: Demo template for the 09th lecture.
parameters:
image:
type: string
label: Image name or ID
description: Image to be used for the server.
default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2
flavor:
type: string
label: Flavor
description: Type of instance (flavor) to be used on the compute instance.
default: m1.small
key:
type: string
label: Key name
description: Name of key-pair to be installed on the compute instance.
default: temp-key-001
public_network:
type: string
label: Public network name or ID
description: Public network with floating IP addresses.
default: public
ext_router:
type: string
label: Router name
description: Router name or ID to connect to an external network.
default: a3f094b5-fe83-4a92-a161-dece054ff0b0
resources:
wait_condition:
type: OS::Heat::WaitCondition
properties:
handle: { get_resource: wait_handle }
count: 1
timeout: 600
wait_handle:
type: OS::Heat::WaitConditionHandle
web_server_security_group:
type: OS::Neutron::SecurityGroup
properties:
name: web_server_security_group
rules:
- protocol: icmp
- protocol: tcp
port_range_min: 22
port_range_max: 22
- protocol: tcp
port_range_min: 443
port_range_max: 443
- protocol: tcp
port_range_min: 80
port_range_max: 80
private_network:
type: OS::Neutron::Net
リソースの依存関係
 右下図の依存関係が自動で設定される。
18
private_subnet:
type: OS::Neutron::Subnet
properties:
network_id: { get_resource: private_network }
cidr: 10.10.20.0/24
dns_nameservers:
- 8.8.8.8
- 8.8.4.4
router-interface:
type: OS::Neutron::RouterInterface
properties:
router_id: { get_param: ext_router }
subnet: { get_resource: private_subnet }
neutron-port:
type: OS::Neutron::Port
properties:
network: { get_resource: private_network }
security_groups:
- { get_resource: web_server_security_group }
test-instance:
type: OS::Nova::Server
properties:
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key }
networks:
- port: { get_resource: neutron-port }
user_data_format: RAW
user_data:
str_replace:
params:
wc_notify: { get_attr: ['wait_handle', 'curl_cli'] }
template: |
#!/bin/bash -ex
sleep 3
echo "Hello"
wc_notify --data-binary '{"status": "SUCCESS"}'
echo '--- end ---'
floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: public_network }
floating_ip_assoc:
type: OS::Neutron::FloatingIPAssociation
properties:
floatingip_id: { get_resource: floating_ip }
port_id: { get_resource: neutron-port }
outputs:
instance_name:
description: Name of the instance
value: { get_attr: [test-instance, name] }
instance_ip:
description: The IP address of the deployed instance
value: { get_attr: [floating_ip, floating_ip_address] }
リソースの依存関係
 作成された依存関係
19
OS::Heat::WaitCondition
OS::Heat::WaitConditionHandle
OS::Nova::Server
OS::Neutron::Port
OS::Neutron::SecurityGroup
OS::Neutron::FloatingIP
OS::Neutron::FloatingIPAssociation
OS::Neutron::Subnet
OS::Neutron::Net
OS::Neutron::RouterInterface
発展
20
特殊なリソース
 HOTで記述するリソースは基本的にOpenStackが持つリソー
スが対象になります。
 インスタンス、ネットワーク、ボリューム等々・・・
 しかし、システム構成を記述する場合には、単純にリソースを
配置していくだけでは対応できません。
 特殊な動作を行わせるために、Heatはいくつかの独自リソース
を備えています。
 これらのリソースはHeat::XX に属しています。
 以下では、よく使うHeatリソースを紹介します。
21
 続く
22

More Related Content

What's hot (20)

大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
Red Hat OpenShift Container Storage
Red Hat OpenShift Container StorageRed Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
Takuya Utsunomiya
 
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
wind06106
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要
Takeshi Fukuhara
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Amazon Web Services Japan
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
 
OpenStack Octavia入門
OpenStack Octavia入門OpenStack Octavia入門
OpenStack Octavia入門
Takashi Kajinami
 
Introduction to arm virtualization
Introduction to arm virtualizationIntroduction to arm virtualization
Introduction to arm virtualization
Takaya Saeki
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう
akira6592
 
サイバージェント 秋葉原ラボのHBase 活用事例
サイバージェント 秋葉原ラボのHBase 活用事例サイバージェント 秋葉原ラボのHBase 活用事例
サイバージェント 秋葉原ラボのHBase 活用事例
cyberagent
 
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
Brocade
 
Virtual Chassis Fabric for Cloud Builder
Virtual Chassis Fabric for Cloud BuilderVirtual Chassis Fabric for Cloud Builder
Virtual Chassis Fabric for Cloud Builder
Juniper Networks (日本)
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
Amazon Web Services Japan
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
LINE Corporation
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
Red Hat OpenShift Container Storage
Red Hat OpenShift Container StorageRed Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
Takuya Utsunomiya
 
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
wind06106
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要
Takeshi Fukuhara
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Amazon Web Services Japan
 
OpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれOpenStack超入門シリーズ Novaのディスク周りあれこれ
OpenStack超入門シリーズ Novaのディスク周りあれこれ
Toru Makabe
 
Introduction to arm virtualization
Introduction to arm virtualizationIntroduction to arm virtualization
Introduction to arm virtualization
Takaya Saeki
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう
akira6592
 
サイバージェント 秋葉原ラボのHBase 活用事例
サイバージェント 秋葉原ラボのHBase 活用事例サイバージェント 秋葉原ラボのHBase 活用事例
サイバージェント 秋葉原ラボのHBase 活用事例
cyberagent
 
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
Brocade
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
ShuheiUda
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
ksk_ha
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
Takeshi Fukuhara
 

Similar to Hot の書き方(Template Version 2015-04-30) 前編 (20)

MetaTweetの現状と展望 v0
MetaTweetの現状と展望 v0MetaTweetの現状と展望 v0
MetaTweetの現状と展望 v0
Takeshi Kiriya
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
Keisuke Fujikawa
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Mattermost インストールハンズオン 2018年8月時点
Mattermost インストールハンズオン 2018年8月時点Mattermost インストールハンズオン 2018年8月時点
Mattermost インストールハンズオン 2018年8月時点
Kohei Nishikawa
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
Amazon Web Services Japan
 
test slides 4
test slides 4test slides 4
test slides 4
Yuichi Takahashi
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm
 
Oci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ssOci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ss
Kenichi Sonoda
 
150629 02
150629 02150629 02
150629 02
openrtm
 
G0042 h
G0042 hG0042 h
G0042 h
silicone69
 
160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大
openrtm
 
2019年春リリース予定!Hinemos ver.6.2の全体像
2019年春リリース予定!Hinemos ver.6.2の全体像2019年春リリース予定!Hinemos ver.6.2の全体像
2019年春リリース予定!Hinemos ver.6.2の全体像
Hinemos
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
Tomoyuki Obi
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
Tomoyuki Obi
 
Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説
オラクルエンジニア通信
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
dstn
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 
MetaTweetの現状と展望 v0
MetaTweetの現状と展望 v0MetaTweetの現状と展望 v0
MetaTweetの現状と展望 v0
Takeshi Kiriya
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
Keisuke Fujikawa
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Mattermost インストールハンズオン 2018年8月時点
Mattermost インストールハンズオン 2018年8月時点Mattermost インストールハンズオン 2018年8月時点
Mattermost インストールハンズオン 2018年8月時点
Kohei Nishikawa
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
Amazon Web Services Japan
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm
 
Oci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ssOci file storage service deep dive 20181001 ss
Oci file storage service deep dive 20181001 ss
Kenichi Sonoda
 
150629 02
150629 02150629 02
150629 02
openrtm
 
160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大
openrtm
 
2019年春リリース予定!Hinemos ver.6.2の全体像
2019年春リリース予定!Hinemos ver.6.2の全体像2019年春リリース予定!Hinemos ver.6.2の全体像
2019年春リリース予定!Hinemos ver.6.2の全体像
Hinemos
 
20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow20180630 data transformationusinglogicflow
20180630 data transformationusinglogicflow
Tomoyuki Obi
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
Tomoyuki Obi
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
dstn
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 

More from irix_jp (20)

The invitation to Infrastructure CI
The invitation to Infrastructure CIThe invitation to Infrastructure CI
The invitation to Infrastructure CI
irix_jp
 
The NoOps strategy and tactics
The NoOps strategy and tacticsThe NoOps strategy and tactics
The NoOps strategy and tactics
irix_jp
 
The practical guide of Infrastructure CI
The practical guide of Infrastructure CIThe practical guide of Infrastructure CI
The practical guide of Infrastructure CI
irix_jp
 
The strategy from the Iserlohn fortress at JTF2018
The strategy from the Iserlohn fortress at JTF2018The strategy from the Iserlohn fortress at JTF2018
The strategy from the Iserlohn fortress at JTF2018
irix_jp
 
JOSUG 34th Meetup
JOSUG 34th Meetup JOSUG 34th Meetup
JOSUG 34th Meetup
irix_jp
 
Japan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson EnvironmentJapan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson Environment
irix_jp
 
OpenStack Summit Report
OpenStack Summit ReportOpenStack Summit Report
OpenStack Summit Report
irix_jp
 
OSC2016.Enterprise OpenStack & Cloud Native Applications
OSC2016.Enterprise OpenStack & Cloud Native ApplicationsOSC2016.Enterprise OpenStack & Cloud Native Applications
OSC2016.Enterprise OpenStack & Cloud Native Applications
irix_jp
 
OSC2016 Kyoto Heat + Ansible + Jupyter
OSC2016 Kyoto Heat + Ansible + JupyterOSC2016 Kyoto Heat + Ansible + Jupyter
OSC2016 Kyoto Heat + Ansible + Jupyter
irix_jp
 
JTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun TzuJTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun Tzu
irix_jp
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作
irix_jp
 
空回りのクラウド基盤導入
空回りのクラウド基盤導入空回りのクラウド基盤導入
空回りのクラウド基盤導入
irix_jp
 
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
irix_jp
 
Josug 20th meetup アンケート集計
Josug 20th meetup アンケート集計Josug 20th meetup アンケート集計
Josug 20th meetup アンケート集計
irix_jp
 
OSC@Kyoto2014 OpenStack概要
OSC@Kyoto2014 OpenStack概要OSC@Kyoto2014 OpenStack概要
OSC@Kyoto2014 OpenStack概要
irix_jp
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
irix_jp
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
irix_jp
 
JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向
irix_jp
 
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
irix_jp
 
Okinawa Open Days - OpenStack Overview
Okinawa Open Days - OpenStack OverviewOkinawa Open Days - OpenStack Overview
Okinawa Open Days - OpenStack Overview
irix_jp
 
The invitation to Infrastructure CI
The invitation to Infrastructure CIThe invitation to Infrastructure CI
The invitation to Infrastructure CI
irix_jp
 
The NoOps strategy and tactics
The NoOps strategy and tacticsThe NoOps strategy and tactics
The NoOps strategy and tactics
irix_jp
 
The practical guide of Infrastructure CI
The practical guide of Infrastructure CIThe practical guide of Infrastructure CI
The practical guide of Infrastructure CI
irix_jp
 
The strategy from the Iserlohn fortress at JTF2018
The strategy from the Iserlohn fortress at JTF2018The strategy from the Iserlohn fortress at JTF2018
The strategy from the Iserlohn fortress at JTF2018
irix_jp
 
JOSUG 34th Meetup
JOSUG 34th Meetup JOSUG 34th Meetup
JOSUG 34th Meetup
irix_jp
 
Japan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson EnvironmentJapan OpenStack User Group 34th Meetup - Handson Environment
Japan OpenStack User Group 34th Meetup - Handson Environment
irix_jp
 
OpenStack Summit Report
OpenStack Summit ReportOpenStack Summit Report
OpenStack Summit Report
irix_jp
 
OSC2016.Enterprise OpenStack & Cloud Native Applications
OSC2016.Enterprise OpenStack & Cloud Native ApplicationsOSC2016.Enterprise OpenStack & Cloud Native Applications
OSC2016.Enterprise OpenStack & Cloud Native Applications
irix_jp
 
OSC2016 Kyoto Heat + Ansible + Jupyter
OSC2016 Kyoto Heat + Ansible + JupyterOSC2016 Kyoto Heat + Ansible + Jupyter
OSC2016 Kyoto Heat + Ansible + Jupyter
irix_jp
 
JTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun TzuJTF2016 The strategy and Sun Tzu
JTF2016 The strategy and Sun Tzu
irix_jp
 
OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作OpenStackをさらに”使う”技術 概要と基礎操作
OpenStackをさらに”使う”技術 概要と基礎操作
irix_jp
 
空回りのクラウド基盤導入
空回りのクラウド基盤導入空回りのクラウド基盤導入
空回りのクラウド基盤導入
irix_jp
 
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
クラウド時代のエンジニア魂と企業に必要なカルチャーチェンジ(前半)
irix_jp
 
Josug 20th meetup アンケート集計
Josug 20th meetup アンケート集計Josug 20th meetup アンケート集計
Josug 20th meetup アンケート集計
irix_jp
 
OSC@Kyoto2014 OpenStack概要
OSC@Kyoto2014 OpenStack概要OSC@Kyoto2014 OpenStack概要
OSC@Kyoto2014 OpenStack概要
irix_jp
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:ボリューム操作編
irix_jp
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack 基礎操作編
irix_jp
 
JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向
irix_jp
 
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
irix_jp
 
Okinawa Open Days - OpenStack Overview
Okinawa Open Days - OpenStack OverviewOkinawa Open Days - OpenStack Overview
Okinawa Open Days - OpenStack Overview
irix_jp
 

Recently uploaded (13)

ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
周 小渕
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
Matsushita Laboratory
 
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
harmonylab
 
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
周 小渕
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
Matsushita Laboratory
 
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
harmonylab
 

Hot の書き方(Template Version 2015-04-30) 前編

  • 1. HOT: Heat Orchestration Template の書き方 2015-12-24 1
  • 3. HOTとは?  Heatで利用するシステム構成をデータ構造(YAML)で記述したファ イルを指す。  Heat が定めるデータ構造  YAML形式で記述  作成するリソース、設定するパラメータなどのシステム構造を定義する。  多段ネスト可能  リソース間の依存関係を定義  暗黙の依存関係  明示的な依存関係  定義された依存関係に基づいてリソースの作成順序が決まる  依存関係がないものは平行で作成される  作成された全てのリソースは「状態」を持つ  Heatが検知する状態  ユーザーが外部から与える状態 3
  • 4. Heatを使うための条件  イメージ  cloud-init  インストールされていなくてもHeatは利用できますが、利用可能であればより 高度な設定が可能です。  heat-cfntools  インストールされていなくてもHeatは利用できますが、利用可能であればより 高度な設定が可能です。  userdata で 連携を行うため cloud-init が導入されていることが前提です。  ネットワーク  Heat管理下で作成するインスタンスは外部ネットワーク(Heatのエン ドポイント)へ接続できる事が推奨  閉じたネットワークでも利用可能だが、一部の機能が制限される。  これは状態の通知がエンドポイント経由で行われるため。 4
  • 5. HOTの基本  OpenStack上で行える操作がほぼ全て行えます。  例)  仮想サーバーの作成  キーペアの作成  仮想ネットワーク、サブネットの作成  仮想ルーターの作成、ネットワークとの接続  Floating IPの作成、割当て  論理ポートの作成  セキュリティグループの作成  仮想ボリュームの作成、アタッチ  「リソース」をYAMLで記述することで作成できます。  このYAMLファイルを「テンプレート」と呼びます。 5 resources: server1: type: OS::Nova::Server properties: name: "Heat_Deployed_Server" image: { get_param: ImageID } flavor: "m1.small" key_name: "temp-key-001" networks: - network: { get_param: NetID } web_server_security_group: type: OS::Neutron::SecurityGroup properties: name: web_server_security_group rules: - protocol: icmp - protocol: tcp port_range_min: 22 port_range_max: 22 - protocol: tcp port_range_min: 443 port_range_max: 443 - protocol: tcp port_range_min: 80 port_range_max: 80 private_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: private_network } cidr: 10.10.20.0/24 dns_nameservers: - 8.8.8.8 - 8.8.4.4 セキュリティグループの作成 仮想サーバーの作成 サブネットの作成
  • 6. テンプレートに記述できるリソース  heat resource-type-list コマンドで一覧を確認できます。  利用できるリソースはHeatのバージョンに依存します。  またHeatのバージョンによって同じリソースでも仕様が異なっている場合があります。  例)  パラメータのバリデーション方法など。  これにより、前のバージョンでは動いていたのに、新しいバージョンではエラーになるという場合があります。  以下は利用できるリソースの一部を表示したものです。 6 $ heat resource-type-list +------------------------------------------+ | resource_type | +------------------------------------------+ | AWS::AutoScaling::AutoScalingGroup | | AWS::AutoScaling::LaunchConfiguration | | AWS::AutoScaling::ScalingPolicy | | AWS::CloudFormation::Stack | | AWS::CloudFormation::WaitCondition | | AWS::CloudFormation::WaitConditionHandle | | AWS::CloudWatch::Alarm | | AWS::EC2::EIP | | AWS::EC2::EIPAssociation | | AWS::EC2::Instance | | AWS::EC2::InternetGateway | | AWS::EC2::NetworkInterface | | AWS::EC2::RouteTable | | AWS::EC2::SecurityGroup | | AWS::EC2::Subnet | | AWS::EC2::SubnetRouteTableAssociation | | AWS::EC2::VPC | | AWS::EC2::VPCGatewayAttachment | | AWS::EC2::Volume | | AWS::EC2::VolumeAttachment | | AWS::ElasticLoadBalancing::LoadBalancer | | AWS::IAM::AccessKey | | AWS::IAM::User | | AWS::RDS::DBInstance | | AWS::S3::Bucket | | OS::Ceilometer::Alarm | | OS::Ceilometer::CombinationAlarm | | OS::Cinder::Volume | | OS::Cinder::VolumeAttachment | | OS::Glance::Image | | OS::Heat::AccessPolicy | | OS::Heat::AutoScalingGroup | | OS::Heat::CWLiteAlarm | | OS::Heat::CloudConfig | | OS::Heat::HARestarter | | OS::Heat::InstanceGroup | | OS::Heat::MultipartMime | | OS::Heat::RandomString | | OS::Heat::ResourceGroup | | OS::Heat::ScalingPolicy | | OS::Heat::SoftwareComponent | | OS::Heat::SoftwareConfig | | OS::Heat::SoftwareDeployment | | OS::Heat::SoftwareDeployments | | OS::Heat::Stack | | OS::Heat::StructuredConfig | | OS::Heat::StructuredDeployment | | OS::Heat::StructuredDeployments | | OS::Heat::SwiftSignal | | OS::Heat::SwiftSignalHandle | | OS::Heat::UpdateWaitConditionHandle | | OS::Heat::WaitCondition | | OS::Heat::WaitConditionHandle | | OS::Neutron::Firewall | | OS::Neutron::FirewallPolicy | | OS::Neutron::FirewallRule | | OS::Neutron::FloatingIP | | OS::Neutron::FloatingIPAssociation | | OS::Neutron::HealthMonitor | | OS::Neutron::IKEPolicy | | OS::Neutron::IPsecPolicy | | OS::Neutron::IPsecSiteConnection | | OS::Neutron::LoadBalancer | | OS::Neutron::MeteringLabel | | OS::Neutron::MeteringRule | | OS::Neutron::Net | | OS::Neutron::NetworkGateway | | OS::Neutron::Pool | | OS::Neutron::PoolMember | | OS::Neutron::Port | | OS::Neutron::ProviderNet | | OS::Neutron::Router | | OS::Neutron::RouterGateway | | OS::Neutron::RouterInterface | heat_template_version: 2015-04-30
  • 7. テンプレートのバージョン  Heatはバージョンごとサポートされるリソースと、DSL内関数の機能が異 なっています。  基本的に新しいHeatは過去のテンプレートバージョンをサポートしています。  テンプレートの先頭にどのバージョンを利用するか宣言します。  利用可能なバージョンは以下  年月日の部分がバージョン番号です。 7 2013-05-23 Icehouse 2014-10-16 Juno 2015-04-30 Kilo 2015-10-15 Liberty 2016-04-08 Mitaka DSLで利用でき る関数 get_attr get_file get_param get_resource list_join resource_facade str_replace Fn::Base64 Fn::GetAZs Fn::Join Fn::MemberListTo Map Fn::Replace Fn::ResourceFaca de Fn::Select Fn::Split Ref get_attr get_file get_param get_resource list_join resource_facade str_replace Fn::Select get_attr get_file get_param get_resource list_join repeat digest resource_facade str_replace Fn::Select get_attr get_file get_param get_resource list_join repeat digest resource_facade str_replace str_split digest get_attr get_file get_param get_resource list_join map_merge repeat resource_facade str_replace str_split http://docs.openstack.org/developer/heat/template_guide/hot_spec.html#heat-template-version
  • 8. シンプルなテンプレート  以下は1台のインスタンスを作成するテンプレートです。  nova boot コマンドと同じようなパラメータを与えています。  テンプレートはYAMLのデータ構造でシステム全体の構造を定義するのが役割です。  システムの構造とは、以下のような情報を指します。  そのシステムがどのようなネットワークをいくつ持つか、そのシステムはどのような役割のインスタンスをいくつ持つか  システムの起動順序、システムが障害を起こした際にどうするか?そのシステムを制御するための変数は何か?  テンプレートを実行すると「スタック(stack)」が作成されます。 8 heat_template_version: 2015-04-30 resources: server1: type: OS::Nova::Server properties: image: d33f51a3-6a18-4b96-bde6-2a68782336ca flavor: "m1.small" key_name: "temp-key-001" networks: - network: 1a684f4a-4f06-4741-b4f9-daa28676f74b single-instance.yaml テンプレートのバージョンを宣言します。 操作するリソースについて記述します。 ここれは1台のインスタンスを作成しています。 ここでは1つのリソースのみ記述していますが、実際 にはいくつでも記載可能です。 # heat stack-create -f single-instance.yaml test-stack +--------------------------------------+------------+--------------------+----------------------+ | id | stack_name | stack_status | creation_time | +--------------------------------------+------------+--------------------+----------------------+ | b4b8d078-7f84-4ab3-b8ca-87dc80d2480e | test-stack | CREATE_IN_PROGRESS | 2015-12-21T14:52:57Z | +--------------------------------------+------------+--------------------+----------------------+ # nova list +--------------------------------------+---------------------------------+--------+------------+-------------+----------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+---------------------------------+--------+------------+-------------+----------------------+ | abbbbc96-f301-4d63-b13b-b9733d3b6404 | test-stack-server1-cg4vev4dgxga | ACTIVE | - | Running | work-net=10.10.10.16 | +--------------------------------------+---------------------------------+--------+------------+-------------+----------------------+
  • 9. スタック  スタックとはテンプレートから作成されたシステム全体を表すリ ソースです。  Heatはこのスタックを操作対象にするテンプレートを記述可能です。 9 heat_template_version: 2015- 04-30 resources: server1: type: OS::Nova::Server properties: image: d33f51a3-6a18- 4b96-bde6-2a68782336ca flavor: "m1.small" key_name: "temp-key- 001" networks: - network: 1a684f4a- 4f06-4741-b4f9-daa28676f74b テンプレート スタック1 スタック2 stack-create stack-create
  • 10. スタックの状態  作成されたスタックは状態を持ちます。  管理するリソースの状態、操作の状況によってスタックは様々 な状態へ変化します。  以下は状態の一例です。 10 init_in_progress init_complete init_failed create_in_progress create_complete create_failed delete_in_progress delete_complete delete_failed update_in_progress update_complete update_failed snapshot_in_progress snapshot_complete snapshot_failed check_in_progress check_complete check_failed rollback_in_progress rollback_complete rollback_failed suspend_in_progress suspend_complete suspend_failed resume_in_progress resume_complete resume_failed adopt_in_progress adopt_complete adopt_failed
  • 11. スタックの状態の基本  HeatはOpenStackの各APIサーバーと通信してリソースの状 態を取得します。  つまり、実体のリソースの本当の状態をHeatは知ることはでき ません。  例)  インスタンスをHeatのテンプレートで作成した際に、Nova側で「ACTIVE」と なれば、Heatはそのリソースが正常に作成されたと判断します。  実際はまだOSの起動中で、起動に失敗するという事もありえます。  Heatはこの問題を解決する方法を用意しています。方法は後述します。  これが問題となるのはNovaインスタンスを扱う場合です。  作成したインスタンスの中で様々な動作を行うため。 11
  • 12. HOTの構造  先にシンプルなテンプレート例を紹介しましたが、実際のテン プレートはもっと多くの情報を含んでいます。  ここではトップレベルの構造を紹介します。現在のテンプレート は5つのセクションをテンプレート内に持ちます。  heat_template_version, resources 以外は省略可能です。 12 heat_template_version: 2015-04-30 description: Demo template for the 09th lecture. parameters: image: type: string label: Image name or ID description: Image to be used for the server. default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2 resources: private_network: type: OS::Neutron::Net outputs: instance_ip: description: The IP address of the deployed instance value: { get_attr: [floating_ip, floating_ip_address] } テンプレートのバージョン テンプレートの説明 外部から変更可能なパラメータを定義する 作成するリソースを記述する。最も重要。 スタック内の情報を外部へ出力する
  • 13. テンプレート例  以下は仮想ルーター、仮想ネットワークを作成・接続し、論理ポートを作 成した後で、インスタンスを一台起動して、Floating IPを与える例です。 13 parameters: image: type: string label: Image name or ID description: Image to be used for the server. default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2 flavor: type: string label: Flavor description: Type of instance (flavor) to be used on the compute instance. default: m1.small key: type: string label: Key name description: Name of key-pair to be installed on the compute instance. default: temp-key-001 public_network: type: string label: Public network name or ID description: Public network with floating IP addresses. default: public ext_router: type: string label: Router name description: Router name or ID to connect to an external network. default: Ext-Router secgroup: type: string label: Secgroup name description: Security group name. default: web_server_security_group resources: private_network: type: OS::Neutron::Net private_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: private_network } cidr: 10.10.20.0/24 dns_nameservers: - 8.8.8.8 - 8.8.4.4 router-interface: type: OS::Neutron::RouterInterface properties: router_id: { get_param: ext_router } subnet: { get_resource: private_subnet } neutron-port: type: OS::Neutron::Port properties: network: { get_resource: private_network } security_groups: - { get_param: secgroup } test-instance: type: OS::Nova::Server properties: image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key } networks: - port: { get_resource: neutron-port } floating_ip: type: OS::Neutron::FloatingIP properties: floating_network: { get_param: public_network } floating_ip_assoc: type: OS::Neutron::FloatingIPAssociation properties: floatingip_id: { get_resource: floating_ip } port_id: { get_resource: flasky_port }
  • 14. Parameters セクション  定義したパラメーターの値はテンプレート内から get_param 関数で参照可能です。  パラメーターにはデフォルト値を設定することが可能。  デフォルト値は、スタック作成時に上書き可能。 14 parameters: image: type: string label: Image name or ID description: Image to be used for the server. default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2 flavor: type: string label: Flavor description: Type of instance (flavor) to be used on the compute instance. default: m1.small $ heat stack-create -f heat.yaml -P 'image=Ubuntu14.04lts;flavor=m1.medium' stack-name test-instance: type: OS::Nova::Server properties: image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key } networks: - port: { get_resource: neutron-port } パラメーターの値を参照 (通常はデフォルト値が参 照される) パラメーターを上書きしてスタックを作成 する例
  • 15. Resources セクション  作成するリソースを記述していく。  リソースは作成する単位ごとに1つのタイプを持つ。  get_resource, get_attr 関数で他のリソースの値を参照可能。 15 resources: wait_condition: type: OS::Heat::WaitCondition properties: handle: { get_resource: wait_handle } count: 1 timeout: 600 wait_handle: type: OS::Heat::WaitConditionHandle web_server_security_group: type: OS::Neutron::SecurityGroup properties: name: web_server_security_group rules: - protocol: icmp - protocol: tcp port_range_min: 22 port_range_max: 22 - protocol: tcp port_range_min: 443 port_range_max: 443 - protocol: tcp port_range_min: 80 port_range_max: 80 private_network: type: OS::Neutron::Net private_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: private_network } cidr: 10.10.20.0/24 dns_nameservers: - 8.8.8.8 - 8.8.4.4 router-interface: type: OS::Neutron::RouterInterface properties: router_id: { get_param: ext_router } subnet: { get_resource: private_subnet } neutron-port: type: OS::Neutron::Port properties: network: { get_resource: private_network } security_groups: - { get_resource: web_server_security_group } test-instance: type: OS::Nova::Server properties: image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key } networks: - port: { get_resource: neutron-port } user_data_format: RAW user_data: str_replace: params: wc_notify: { get_attr: ['wait_handle', 'curl_cli'] } template: | #!/bin/bash -ex sleep 3 echo "Hello" wc_notify --data-binary '{"status": "SUCCESS"}' echo '--- end ---'
  • 16. Outputs セクション  作成したスタックの情報を外部に出力する。  他のプログラムとの連携や、別のテンプレートで仕様する。 16 outputs: instance_name: description: Name of the instance value: { get_attr: [test-instance, name] } instance_ip: description: The IP address of the deployed instance value: { get_attr: [floating_ip, floating_ip_address] } [ { "output_value": "test3-test-instance-2xmjvlijsyrz", "description": "Name of the instance", "output_key": "instance_name" }, { "output_value": "172.16.0.104", "description": "The IP address of the deployed instance", "output_key": "instance_ip" } ]
  • 17. リソースの依存関係  Resourcesセクションでは get_resource, get_attr で他のリソースを参照した場合に、Heat側で自動で依存関係が設定されます。  リソース作成時に、 depend_on パラメーターを与える事で、ユーザーが依存関係を設定することも可能。  依存関係が設定されている場合、依存元のリソースの作成が完了してから、リソースの作成が行われる。  それ以外のリソースは平行で作成されていく。  以下のテンプレートからスタックを作成した場合・・・ 17 heat_template_version: 2015-04-30 description: Demo template for the 09th lecture. parameters: image: type: string label: Image name or ID description: Image to be used for the server. default: CentOS-7-x86_64-GenericCloud-1509-witn-cfntools-1.3.0-2 flavor: type: string label: Flavor description: Type of instance (flavor) to be used on the compute instance. default: m1.small key: type: string label: Key name description: Name of key-pair to be installed on the compute instance. default: temp-key-001 public_network: type: string label: Public network name or ID description: Public network with floating IP addresses. default: public ext_router: type: string label: Router name description: Router name or ID to connect to an external network. default: a3f094b5-fe83-4a92-a161-dece054ff0b0 resources: wait_condition: type: OS::Heat::WaitCondition properties: handle: { get_resource: wait_handle } count: 1 timeout: 600 wait_handle: type: OS::Heat::WaitConditionHandle web_server_security_group: type: OS::Neutron::SecurityGroup properties: name: web_server_security_group rules: - protocol: icmp - protocol: tcp port_range_min: 22 port_range_max: 22 - protocol: tcp port_range_min: 443 port_range_max: 443 - protocol: tcp port_range_min: 80 port_range_max: 80 private_network: type: OS::Neutron::Net
  • 18. リソースの依存関係  右下図の依存関係が自動で設定される。 18 private_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: private_network } cidr: 10.10.20.0/24 dns_nameservers: - 8.8.8.8 - 8.8.4.4 router-interface: type: OS::Neutron::RouterInterface properties: router_id: { get_param: ext_router } subnet: { get_resource: private_subnet } neutron-port: type: OS::Neutron::Port properties: network: { get_resource: private_network } security_groups: - { get_resource: web_server_security_group } test-instance: type: OS::Nova::Server properties: image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key } networks: - port: { get_resource: neutron-port } user_data_format: RAW user_data: str_replace: params: wc_notify: { get_attr: ['wait_handle', 'curl_cli'] } template: | #!/bin/bash -ex sleep 3 echo "Hello" wc_notify --data-binary '{"status": "SUCCESS"}' echo '--- end ---' floating_ip: type: OS::Neutron::FloatingIP properties: floating_network: { get_param: public_network } floating_ip_assoc: type: OS::Neutron::FloatingIPAssociation properties: floatingip_id: { get_resource: floating_ip } port_id: { get_resource: neutron-port } outputs: instance_name: description: Name of the instance value: { get_attr: [test-instance, name] } instance_ip: description: The IP address of the deployed instance value: { get_attr: [floating_ip, floating_ip_address] }
  • 21. 特殊なリソース  HOTで記述するリソースは基本的にOpenStackが持つリソー スが対象になります。  インスタンス、ネットワーク、ボリューム等々・・・  しかし、システム構成を記述する場合には、単純にリソースを 配置していくだけでは対応できません。  特殊な動作を行わせるために、Heatはいくつかの独自リソース を備えています。  これらのリソースはHeat::XX に属しています。  以下では、よく使うHeatリソースを紹介します。 21