installiere und konfiguriere

installiere und konfiguriere

Dieser Abschnitt beschreibt, wie der Orchestrierungsdienst auf dem Controller Node zu installieren und zu konfigurieren ist, der Codename lautet heat.

Voraussetzungen

Bevor Sie Orchestrierung installieren und konfigurieren, müssen Sie eine Datenbank anlegen und Diensteanmeldeinformationen und API-Endpunkte erstellen. Für die Orchestrierung werden zusätzliche Informationen im Identitätsdienst benötigt.

  1. Führen Sie diese Schritte zum Erstellen der Datenbank aus:

    • Benutzen Sie den Datenbank-Client zur Verbindung zum Datenbank-Server als Benutzer root :

      $ mysql -u root -p
      
    • Erstellen Sie die Datenbank heat:

      CREATE DATABASE heat;
      
    • Vergeben Sie die richtigen Zugriffsberechtigungen für die Datenbank heat:

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

      Ersetzen Sie HEAT_DBPASS durch ein geeignetes Passwort.

    • Beenden Sie den Datenbank-Client.

  2. Sourcen Sie die admin Anmeldeinformationen, um Zugriff auf die Admin-Kommandos zu bekommen:

    $ . admin-openrc
    
  3. Um die Dienstanmeldeinformationen zu erstellen, vervollständigen Sie folgende Schritte:

    • Erstellen Sie den Benutzer heat:

      $ openstack user create --domain default --password-prompt heat
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | e0353a670a9e496da891347c589539e9 |
      | enabled   | True                             |
      | id        | ca2e175b851943349be29a328cc5e360 |
      | name      | heat                             |
      +-----------+----------------------------------+
      
    • Fügen Sie die Rolle admin zum Benutzer heat hinzu:

      $ openstack role add --project service --user heat admin
      

      Bemerkung

      Das Kommando erzeugt keine Ausgabe.

    • Erstellen Sie die Dienstentitäten heat und heat-cfn:

      $ openstack service create --name heat \
        --description "Orchestration" orchestration
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Orchestration                    |
      | enabled     | True                             |
      | id          | 727841c6f5df4773baa4e8a5ae7d72eb |
      | name        | heat                             |
      | type        | orchestration                    |
      +-------------+----------------------------------+
      
      $ openstack service create --name heat-cfn \
        --description "Orchestration"  cloudformation
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Orchestration                    |
      | enabled     | True                             |
      | id          | c42cede91a4e47c3b10c8aedc8d890c6 |
      | name        | heat-cfn                         |
      | type        | cloudformation                   |
      +-------------+----------------------------------+
      
  4. Erstellen Sie die API-Endpunkte für den Orchestrierungsdienst:

    $ openstack endpoint create --region RegionOne \
      orchestration public http://controller:8004/v1/%\(tenant_id\)s
    +--------------+-----------------------------------------+
    | Field        | Value                                   |
    +--------------+-----------------------------------------+
    | enabled      | True                                    |
    | id           | 3f4dab34624e4be7b000265f25049609        |
    | interface    | public                                  |
    | region       | RegionOne                               |
    | region_id    | RegionOne                               |
    | service_id   | 727841c6f5df4773baa4e8a5ae7d72eb        |
    | service_name | heat                                    |
    | service_type | orchestration                           |
    | url          | http://controller:8004/v1/%(tenant_id)s |
    +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      orchestration internal http://controller:8004/v1/%\(tenant_id\)s
    +--------------+-----------------------------------------+
    | Field        | Value                                   |
    +--------------+-----------------------------------------+
    | enabled      | True                                    |
    | id           | 9489f78e958e45cc85570fec7e836d98        |
    | interface    | internal                                |
    | region       | RegionOne                               |
    | region_id    | RegionOne                               |
    | service_id   | 727841c6f5df4773baa4e8a5ae7d72eb        |
    | service_name | heat                                    |
    | service_type | orchestration                           |
    | url          | http://controller:8004/v1/%(tenant_id)s |
    +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      orchestration admin http://controller:8004/v1/%\(tenant_id\)s
    +--------------+-----------------------------------------+
    | Field        | Value                                   |
    +--------------+-----------------------------------------+
    | enabled      | True                                    |
    | id           | 76091559514b40c6b7b38dde790efe99        |
    | interface    | admin                                   |
    | region       | RegionOne                               |
    | region_id    | RegionOne                               |
    | service_id   | 727841c6f5df4773baa4e8a5ae7d72eb        |
    | service_name | heat                                    |
    | service_type | orchestration                           |
    | url          | http://controller:8004/v1/%(tenant_id)s |
    +--------------+-----------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      cloudformation public http://controller:8000/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | b3ea082e019c4024842bf0a80555052c |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | c42cede91a4e47c3b10c8aedc8d890c6 |
    | service_name | heat-cfn                         |
    | service_type | cloudformation                   |
    | url          | http://controller:8000/v1        |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      cloudformation internal http://controller:8000/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 169df4368cdc435b8b115a9cb084044e |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | c42cede91a4e47c3b10c8aedc8d890c6 |
    | service_name | heat-cfn                         |
    | service_type | cloudformation                   |
    | url          | http://controller:8000/v1        |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      cloudformation admin http://controller:8000/v1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 3d3edcd61eb343c1bbd629aa041ff88b |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | c42cede91a4e47c3b10c8aedc8d890c6 |
    | service_name | heat-cfn                         |
    | service_type | cloudformation                   |
    | url          | http://controller:8000/v1        |
    +--------------+----------------------------------+
    
  5. Zur Verwaltung von Stacks werden zusätzliche Informationen zur Orchestrierung im Identitätsdienst benötigt. Führen Sie folgende Schritte aus, um die Informationen hinzuzufügen:

    • Erstellen Sie die Domäne heat, diese enthält Projekte und Benutzer für Stacks:

      $ openstack domain create --description "Stack projects and users" heat
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Stack projects and users         |
      | enabled     | True                             |
      | id          | 0f4d1bd326f2454dacc72157ba328a47 |
      | name        | heat                             |
      +-------------+----------------------------------+
      
    • Erstellen Sie den Benutzer heat_domain_admin zur Verwaltung von Projekten und Benutzern in der Domäne heat:

      $ openstack user create --domain heat --password-prompt heat_domain_admin
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | 0f4d1bd326f2454dacc72157ba328a47 |
      | enabled   | True                             |
      | id        | b7bd1abfbcf64478b47a0f13cd4d970a |
      | name      | heat_domain_admin                |
      +-----------+----------------------------------+
      
    • Fügen Sie die Rolle admin zum Benutzer heat_domain_admin in der Domäne heat hinzu, um dem Benutzer heat_domain_admin administrative Rechte zur Stackverwaltung zuzuweisen:

      $ openstack role add --domain heat --user-domain heat --user heat_domain_admin admin
      

      Bemerkung

      Das Kommando erzeugt keine Ausgabe.

    • Erstellen Sie die Rolle heat_stack_owner:

      $ openstack role create heat_stack_owner
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | None                             |
      | id        | 15e34f0c4fed4e68b3246275883c8630 |
      | name      | heat_stack_owner                 |
      +-----------+----------------------------------+
      
    • Fügen Sie die Rolle heat_stack_owner dem Projekt und Benutzer demo hinzu, um dem Benutzer ``demo``die Stackverwaltung zu ermöglichen:

      $ openstack role add --project demo --user demo heat_stack_owner
      

      Bemerkung

      Das Kommando erzeugt keine Ausgabe.

      Bemerkung

      Jeder Benutzer, der Stacks verwalten soll, muss die Rolle heat_stack_owner erhalten.

    • Erstellen Sie die Rolle heat_stack_user:

      $ openstack role create heat_stack_user
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | None                             |
      | id        | 88849d41a55d4d1d91e4f11bffd8fc5c |
      | name      | heat_stack_user                  |
      +-----------+----------------------------------+
      

      Bemerkung

      Der Orchestrierungsdienst weist die Rolle heat_stack_user automatisch den Benutzern zu, die er während der Stack-Installation anlegt. Standardmäßig schränkt diese Rolle API-Operationen ein. Um Konflikte zu vermeiden, sollte diese Rolle Benutzern mit der Rolle heat_stack_owner nicht zugewiesen werden.

Installieren und konfigurieren von Komponenten

Bemerkung

Default configuration files vary by distribution. You might need to add these sections and options rather than modifying existing sections and options. Also, an ellipsis (...) in the configuration snippets indicates potential default configuration options that you should retain.

  1. Installieren Sie die Pakete:

    # zypper install openstack-heat-api openstack-heat-api-cfn \
      openstack-heat-engine
    
  1. Bearbeiten Sie die Datei /etc/heat/heat.conf und führen Sie folgende Schritte aus:

    • Konfigurieren Sie den Datenbankzugriff in der Sektion [database] :

      [database]
      ...
      connection = mysql+pymysql://heat:HEAT_DBPASS@controller/heat
      

      Ersetzen Sie HEAT_DBPASS durch das Passwort, das Sie für die Orchestrierungsdatenbank gewählt haben.

    • Konfigurieren Sie den RabbitMQ Nachrichtenwarteschlangen-Zugriff in den Sektionen [DEFAULT] und [oslo_messaging_rabbit] :

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      Ersetzen Sie RABBIT_PASS mit dem Passwort, welches Sie für den openstack Account in RabbitMQ gewählt haben.

    • Konfigurieren Sie den Zugriff zum Identitätsdienst in den Sektionen [keystone_authtoken], [trustee], [clients_keystone] und [ec2authtoken]:

      [keystone_authtoken]
      ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = heat
      password = HEAT_PASS
      
      [trustee]
      ...
      auth_plugin = password
      auth_url = http://controller:35357
      username = heat
      password = HEAT_PASS
      user_domain_name = default
      
      [clients_keystone]
      ...
      auth_uri = http://controller:35357
      
      [ec2authtoken]
      ...
      auth_uri = http://controller:5000/v2.0
      

      Ersetzen Sie HEAT_PASS durch das Passwort, das Sie für den Benutzer heat im Identitätsdienst vergeben haben.

    • Konfigurieren Sie in der Sektion [DEFAULT] die URLs für Metadaten und wait condition:

      [DEFAULT]
      ...
      heat_metadata_server_url = http://controller:8000
      heat_waitcondition_server_url = http://controller:8000/v1/waitcondition
      
    • Konfigurieren Sie in der Sektion [DEFAULT] die Stack-Domäne und die administrativen Anmeldeinformationen:

      [DEFAULT]
      ...
      stack_domain_admin = heat_domain_admin
      stack_domain_admin_password = HEAT_DOMAIN_PASS
      stack_user_domain_name = heat
      

      Ersetzen Sie HEAT_DOMAIN_PASS durch das Passwort, das Sie für den Benutzer heat_domain_admin im Identitätsdienst vergeben haben.

Installation abschließen

  • Starten Sie die Orchestrierungsdienste und konfigurieren Sie diese so, dass sie beim Booten des Systems starten:

    # systemctl enable openstack-heat-api.service \
      openstack-heat-api-cfn.service openstack-heat-engine.service
    # systemctl start openstack-heat-api.service \
      openstack-heat-api-cfn.service openstack-heat-engine.service
    
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.