Orchestrierung

Orchestrierung

Erstellen Sie eine Vorlage

Der Orchestrierungsdienst verwendet Vorlagen zur Beschreibung von Stacks. Um die Ausdrucksweise von Vorlagen zu verstehen, lesen Sie den the Template Guide in der Heat Entwickler-Dokumentation.

  • Erstellen Sie die Datei ``demo-template.yml``mit folgendem Inhalt:

    heat_template_version: 2015-10-15
    description: Launch a basic instance with CirrOS image using the
                 ``m1.tiny`` flavor, ``mykey`` key,  and one network.
    
    parameters:
      NetID:
        type: string
        description: Network ID to use for the instance.
    
    resources:
      server:
        type: OS::Nova::Server
        properties:
          image: cirros
          flavor: m1.tiny
          key_name: mykey
          networks:
          - network: { get_param: NetID }
    
    outputs:
      instance_name:
        description: Name of the instance.
        value: { get_attr: [ server, name ] }
      instance_ip:
        description: IP address of the instance.
        value: { get_attr: [ server, first_address ] }
    

Einen Stack erstellen

Erstellen Sie einen Stack anhand der Vorlage demo-template.yml.

  1. Sourcen Sie die demo-Anmeldeinformationen, um die folgenden Schritte mit nicht-administrativen Rechten auszuführen:

    $ . demo-openrc
    
  2. Ermitteln Sie verfügbare Netzwerke.

    $ openstack network list
    +--------------------------------------+-------------+--------------------------------------+
    | ID                                   | Name        | Subnets                              |
    +--------------------------------------+-------------+--------------------------------------+
    | 4716ddfe-6e60-40e7-b2a8-42e57bf3c31c | selfservice | 2112d5eb-f9d6-45fd-906e-7cabd38b7c7c |
    | b5b6993c-ddf9-40e7-91d0-86806a42edb8 | provider    | 310911f6-acf0-4a47-824e-3032916582ff |
    +--------------------------------------+-------------+--------------------------------------+
    

    Bemerkung

    Diese Ausgabe kann in Ihrer Umgebung abweichen.

  3. Belegen Sie die Umgebungsvariable NET_ID mit der Netzwerk-ID. Als Beispiel wird das Anbieter-Netzwerk verwendet:

    $ export NET_ID=$(openstack network list | awk '/ provider / { print $2 }')
    
  4. Erstellen Sie einen Stack mit einer CirrOS-Instanz im Anbieter-Netzwerk:

    $ openstack stack create -t demo-template.yml --parameter "NetID=$NET_ID" stack
    +--------------------------------------+------------+--------------------+---------------------+--------------+
    | ID                                   | Stack Name | Stack Status       | Creation Time       | Updated Time |
    +--------------------------------------+------------+--------------------+---------------------+--------------+
    | dbf46d1b-0b97-4d45-a0b3-9662a1eb6cf3 | stack      | CREATE_IN_PROGRESS | 2015-10-13T15:27:20 | None         |
    +--------------------------------------+------------+--------------------+---------------------+--------------+
    
  5. Überprüfen Sie die erfolgreiche Erstellung des Stacks nach kurzer Wartezeit:

    $ openstack stack list
    +--------------------------------------+------------+-----------------+---------------------+--------------+
    | ID                                   | Stack Name | Stack Status    | Creation Time       | Updated Time |
    +--------------------------------------+------------+-----------------+---------------------+--------------+
    | dbf46d1b-0b97-4d45-a0b3-9662a1eb6cf3 | stack      | CREATE_COMPLETE | 2015-10-13T15:27:20 | None         |
    +--------------------------------------+------------+-----------------+---------------------+--------------+
    
  6. Lassen Sie den Namen und die IP-Adresse der Instanz anzeigen und vergleichen sie mit der Ausgabe des OpenStack-Clients:

    $ openstack stack output show --all stack
    [
      {
        "output_value": "stack-server-3nzfyfofu6d4",
        "description": "Name of the instance.",
        "output_key": "instance_name"
      },
      {
        "output_value": "10.4.31.106",
        "description": "IP address of the instance.",
        "output_key": "instance_ip"
      }
    ]
    
    $ openstack server list
    +--------------------------------------+---------------------------+--------+---------------------------------+
    | ID                                   | Name                      | Status | Networks                        |
    +--------------------------------------+---------------------------+--------+---------------------------------+
    | 0fc2af0c-ae79-4d22-8f36-9e860c257da5 | stack-server-3nzfyfofu6d4 | ACTIVE | public=10.4.31.106              |
    +--------------------------------------+---------------------------+--------+---------------------------------+
    
  7. Löschen Sie den Stack.

    $ openstack stack delete --yes stack
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.