Controller Node installieren und konfigurieren

Controller Node installieren und konfigurieren

Dieser Abschnitt beschreibt, wie der Compute-Dienst auf dem Controller-Node zu installieren und zu konfigurieren ist, der Codename lautet Nova.

Voraussetzungen

Bevor Sie den Compute-Dienst installieren und konfigurieren, müssen Sie Datenbanken, Diensteanmeldeinformationen und API-Endpunkte erstellen.

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

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

      $ mysql -u root -p
      
    • Erstellen Sie die Datenbanken nova_api und nova:

      mysql> CREATE DATABASE nova_api;
      mysql> CREATE DATABASE nova;
      
    • Vergeben Sie die richtigen Zugriffsberechtigungen für die Datenbanken:

      mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
        IDENTIFIED BY 'NOVA_DBPASS';
      mysql> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
        IDENTIFIED BY 'NOVA_DBPASS';
      mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
        IDENTIFIED BY 'NOVA_DBPASS';
      mysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
        IDENTIFIED BY 'NOVA_DBPASS';
      

      Ersetzen Sie NOVA_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 nova:

      $ openstack user create --domain default \
        --password-prompt nova
      
      User Password:
      Repeat User Password:
      +---------------------+----------------------------------+
      | Field               | Value                            |
      +---------------------+----------------------------------+
      | domain_id           | default                          |
      | enabled             | True                             |
      | id                  | 8a7dbf5279404537b1c7b86c033620fe |
      | name                | nova                             |
      | password_expires_at | None                             |
      +---------------------+----------------------------------+
      
    • Fügen Sie die Rolle admin zum Benutzer nova hinzu:

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

      Bemerkung

      Das Kommando erzeugt keine Ausgabe.

    • Erstellen Sie die Dienstentität nova:

      $ openstack service create --name nova \
        --description "OpenStack Compute" compute
      
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Compute                |
      | enabled     | True                             |
      | id          | 060d59eac51b4594815603d75a00aba2 |
      | name        | nova                             |
      | type        | compute                          |
      +-------------+----------------------------------+
      
  4. Erstellen Sie die API-Endpunkte für den Compute-Dienst:

    $ openstack endpoint create --region RegionOne \
      compute public http://controller:8774/v2.1/%\(tenant_id\)s
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | 3c1caa473bfe4390a11e7177894bcc7b          |
    | interface    | public                                    |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://controller:8774/v2.1/%(tenant_id)s |
    +--------------+-------------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      compute internal http://controller:8774/v2.1/%\(tenant_id\)s
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | e3c918de680746a586eac1f2d9bc10ab          |
    | interface    | internal                                  |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://controller:8774/v2.1/%(tenant_id)s |
    +--------------+-------------------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      compute admin http://controller:8774/v2.1/%\(tenant_id\)s
    
    +--------------+-------------------------------------------+
    | Field        | Value                                     |
    +--------------+-------------------------------------------+
    | enabled      | True                                      |
    | id           | 38f7af91666a47cfb97b4dc790b94424          |
    | interface    | admin                                     |
    | region       | RegionOne                                 |
    | region_id    | RegionOne                                 |
    | service_id   | 060d59eac51b4594815603d75a00aba2          |
    | service_name | nova                                      |
    | service_type | compute                                   |
    | url          | http://controller:8774/v2.1/%(tenant_id)s |
    +--------------+-------------------------------------------+
    

Installieren und konfigurieren von Komponenten

Bemerkung

Die voreingestellten Konfigurationsdateien können je nach Distribution unterschiedlich aussehen. Es kann notwendig sein, diese Abschnitte und Optionen selbst hinzuzufügen anstatt bestehende anzupassen. Außerdem deuten Auslassungszeichen (...) in den Konfigurationsabschnitten Standardeinstellungen an, die beibehalten werden sollten.

  1. Installieren Sie die Pakete:

    # yum install openstack-nova-api openstack-nova-conductor \
      openstack-nova-console openstack-nova-novncproxy \
      openstack-nova-scheduler
    
  1. Bearbeiten Sie die Datei /etc/nova/nova.conf und führen folgende Schritte durch:

    • Aktivieren Sie nur die Compute- und Metadaten-APIs im Abschnitt [DEFAULT]:

      [DEFAULT]
      ...
      enabled_apis = osapi_compute,metadata
      
    • Konfigurieren Sie den Datenbankzugriff in den Abschnitten [api_database] und [database]:

      [api_database]
      ...
      connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
      
      [database]
      ...
      connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
      

      Ersetzen Sie NOVA_DBPASS durch das Passwort, das Sie für die Compute-Datenbanken gewählt haben.

    • In der [DEFAULT] Sektion, konfigurieren Sie den RabbitMQ Nachrichtenwarteschlangen-Zugriff:

      [DEFAULT]
      ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

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

    • Konfigurieren Sie den Identitätsdienst-Zugriff in den Sektionen [DEFAULT] und [keystone_authtoken]:

      [DEFAULT]
      ...
      auth_strategy = keystone
      
      [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 = nova
      password = NOVA_PASS
      

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

      Bemerkung

      Alle anderen Optionen in der Sektion [keystone_authtoken] müssen auskommentiert oder gelöscht werden.

    • Konfigurieren Sie in der Sektion [DEFAULT] die Option my_ip so, dass die IP-Adresse der Management-Schnittstelle des Controller Nodes genutzt wird.

      [DEFAULT]
      ...
      my_ip = 10.0.0.11
      
    • Aktivieren Sie die Unterstützung für den Netzwerkdienst in der [DEFAULT] Sektion:

      [DEFAULT]
      ...
      use_neutron = True
      firewall_driver = nova.virt.firewall.NoopFirewallDriver
      

      Bemerkung

      Standardmäßig verwendet der Compute-Dienst einen internen Firewalltreiber. Da der Netzwerkdienst schon einen Firewalldienst beinhaltet, deaktivieren Sie diesen durch Verwendung des Firewall-Treibers nova.virt.firewall.NoopFirewallDriver.

    • Konfigurieren Sie den VNC Proxy in der [vnc] Sektion, so dass er die Management-IP-Adresse des Controllerknotens verwendet:

      [vnc]
      ...
      vncserver_listen = $my_ip
      vncserver_proxyclient_address = $my_ip
      
    • Konfigurieren Sie den Ort der Abbilddienst API in der Sektion [glance]:

      [glance]
      ...
      api_servers = http://controller:9292
      
    • Konfigurieren Sie den Sperrpfad in der Sektion [oslo_concurrency]:

      [oslo_concurrency]
      ...
      lock_path = /var/lib/nova/tmp
      
  1. Befüllen Sie die Compute-Datenbanken:

    # su -s /bin/sh -c "nova-manage api_db sync" nova
    # su -s /bin/sh -c "nova-manage db sync" nova
    

    Bemerkung

    Ignorieren Sie in dieser Ausgabe sämliche Warnungen zur Ablaufwarnung.

Installation abschließen

  • Starten Sie die Compute-Dienste und konfigurieren Sie sie so, dass sie beim Systemstart gestartet werden:

    # systemctl enable openstack-nova-api.service \
      openstack-nova-consoleauth.service openstack-nova-scheduler.service \
      openstack-nova-conductor.service openstack-nova-novncproxy.service
    # systemctl start openstack-nova-api.service \
      openstack-nova-consoleauth.service openstack-nova-scheduler.service \
      openstack-nova-conductor.service openstack-nova-novncproxy.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.