Dieser Abschnitt beschreibt, wie der Compute-Dienst auf dem Controller-Node zu installieren und zu konfigurieren ist, der Codename lautet Nova.
Bevor Sie den Compute-Dienst installieren und konfigurieren, müssen Sie Datenbanken, Diensteanmeldeinformationen und API-Endpunkte erstellen.
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.
Sourcen Sie die admin
Anmeldeinformationen, um Zugriff auf die Admin-Kommandos zu bekommen:
$ . admin-openrc
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 |
+-------------+----------------------------------+
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 |
+--------------+-------------------------------------------+
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.
Installieren Sie die Pakete:
# apt install nova-api nova-conductor nova-consoleauth \
nova-consoleproxy nova-scheduler
Bemerkung
nova-api-metadata
ist im nova-api
Paket enthalten und kann über debconf ausgewählt werden.
Bemerkung
Ein einzelnes nova-consoleproxy
Pakete stellt die nova-novncproxy
, nova-spicehtml5proxy
und nova-xvpvncproxy
Pakete bereit. Um Pakete auszuwählen, bearbeiten Sie die /etc/default/nova-consoleproxy
Datei oder verwenden Sie das debconf Interface. Sie können die Datei /etc/default/nova-consoleproxy
auch manuell bearbeiten und die Konsolean-daemons stoppen und starten.
Bearbeiten Sie die Datei /etc/nova/nova.conf
und führen folgende Schritte durch:
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
Die .config
und .postinst
Maintainer Skripte des nova-common
Paketes erkennen automatisch die IP-Adresse und fügen sie in der my_ip
Direktive der [DEFAULT]
Sektion ein. Dieser Wert wird normalerweise dennoch erfragt and Sie können überprüfen, ob er in nova.conf korrekt ist, nachdem nova-common
installiert wurde:
[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
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.
Restart des Compute Servcies:
# service nova-api restart
# service nova-consoleauth restart
# service nova-scheduler restart
# service nova-conductor restart
# service nova-novncproxy restart
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.