私は、スタックを作成する最良の方法をいくつかの別々のステップで探しています。Openstack Heat - separate templates
最初のテンプレートでは、コンピューティングノードとネットワーク構成を取得するだけです。
2番目のテンプレートでは、ストレージノードを作成して既存の計算ノードに接続したいと考えています。
これを行うにはどうすればよいと思いますか?
私は、スタックを作成する最良の方法をいくつかの別々のステップで探しています。Openstack Heat - separate templates
最初のテンプレートでは、コンピューティングノードとネットワーク構成を取得するだけです。
2番目のテンプレートでは、ストレージノードを作成して既存の計算ノードに接続したいと考えています。
これを行うにはどうすればよいと思いますか?
次のアプローチが考えられます。
1)計算ノードとネットワーク構成の最初のテンプレートを定義します。しかし、計算ノードIDを公開するために、最初のテンプレートの出力を定義します。あなたは熱スタックをインスタンス化したら
outputs:
mynode1_id:
description: ID of mynode1
value: {getattr: [mynode1, id]}
、mystack1、と言って:あなたはOS ::名前mynode1とノヴァ::サーバーを作成する場合、そのテンプレートの出力は次のようにのようにたとえば、あなたがそのIDを公開することができます次のようにこの最初のテンプレートは、その後、あなたはmynode1のIDにアクセスすることができます。
heat output-show mystack1 mynode1_id
2)は、入力パラメータとしてSTEP1から計算ノードのIDを持つストレージのためにあなたの2番目のテンプレートを作成します。たとえば:
heat stack-create -f second-template.yaml -P mynode1_id=`heat output-show mystack1 mynode1_id` mystack2
を次のセクションとして次のよう
resources:
...
...
my_volume_attach:
type: OS::Cinder::VolumeAttachment
properties:
instance_uuid: {get_param: mynode1_id}
...
3)あなたの第二の熱スタックの作成を起動します。
parameters:
mynode1_id:
type: string
description: ID for mynode1
次に、あなたの "資源" であることを使用することができますdepends_on属性を使用して、リソース間にの依存関係を定義することもできます。 あなたの説明から、複数のテンプレートを使用するのは正しい解決策ではないようです。例えば
- あなたは3,4のオブジェクト1,2の後に作成されたオブジェクト次のように、テンプレートを定義することができますしたい場合:
heat_template_version: '2015-10-15'
parameters:
param1:
type: string
description: just an example of parameter
resources:
object1:
type: OS::Neutron::XXX
properties:
property: XXX
description: object1
object2:
type: OS::Neutron::XXX
properties:
property: XXX
description: object2
object3:
type: OS::Nova::XXX
properties:
property: XXX
description: object3
depends_on: object1
object4:
type: OS::Nova::XXX
properties:
property: XXX
description: object4
depends_on: object1
を