始める前に
次の作業を完了している必要があります。
クラウドに配備するイメージを持つシステムの統合アーカイブ (UA) を作成しました。UA を作成する前に、cloudbase-init パッケージがそのシステムに含まれていることを確認します。
UA の作成手順については、『Oracle Solaris でのシステム復旧とクローン』ガイドの「統合アーカイブの操作」の章を参照してください。このガイドは オペレーティングシステムのドキュメントで、使用している Oracle Solaris バージョンのライブラリにあります。
Heat テンプレートのユーザーデータセクションに、ユーザーデータ情報を指定します。テンプレートを *.yaml ファイルとして保存します。
# heat stack-create -f yaml-template \ -P key_name=your key name;image=image name\ private_net=name of tenant private network stack-name
次の例は、Cloudbase-Init によって処理される Heat テンプレートを示しています。利便性のため、ユーザーが提供する必要がある情報を太字で示しており、ユーザーデータ情報をマークしています。テンプレートの名前は test.yaml です。
heat_template_version: 2013-05-23 description: HOT template to deploy one server into an existing neutron tenant network and assign a floating IP address so it's routable from the public network. parameters: key_name:Server1Key type: string description: Name of keypair to assign to server image:Solaris Non-global Zone type: string description: Name of image to use for server flavor:8 type: string description: Flavor to use for server default: 1 public_net: type: string description: Name or ID of public network for which floating IP address will be allocated default: oracle private_net:HR type: string description: Name or ID of private network into which server is deployed resources: server1: type: OS::Nova::Server properties: name: { get_param: 'OS::stack_name' } image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key_name } networks: - port: { get_resource: server1_port } user_data_format: RAW---------- ユーザーデータセクションの開始 ---------- user_data: str_replace: template: | #!/bin/ksh print "This is a test." server1_port: type: OS::Neutron::Port properties: network: { get_param: private_net } server1_floating_ip: type: OS::Neutron::FloatingIP properties: floating_network: { get_param: public_net } port_id: { get_resource: server1_port } outputs: server1_private_ip: description: IP address of server1 in private network value: { get_attr: [ server1, first_address ] } server1_public_ip: description: Floating IP address of server1 in public network value: { get_attr: [ server1_floating_ip, floating_ip_address ] }
テンプレートを配備するには、次のように入力します。
# heat stack-create -f test.yaml -P key_name=Server1Key \ -P image=Solaris Non-global Zone\ ...-P flavor=8 -P private_net=HR teststack
コマンドの各オプションの特定の値は、test.yaml テンプレートファイル内の情報から取得しています。パブリックネットワークは oracle で、デフォルト値です。