doc: Import installation guide
Import all docs from openstack-manuals. Part of bp: doc-migration Change-Id: If1fa15f5495a8a207042e7a43d34d32671c59ee1 Co-Authored-By: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
01b3ae2e70
commit
036642ce33
@ -235,6 +235,14 @@ Module Reference
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
Installation Guide
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
install/index
|
||||
|
||||
Metadata
|
||||
========
|
||||
|
||||
|
288
doc/source/install/compute-install-obs.rst
Normal file
288
doc/source/install/compute-install-obs.rst
Normal file
@ -0,0 +1,288 @@
|
||||
Install and configure a compute node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service on a
|
||||
compute node. The service supports several hypervisors to deploy instances or
|
||||
virtual machines (VMs). For simplicity, this configuration uses the Quick
|
||||
EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute
|
||||
nodes that support hardware acceleration for virtual machines. On legacy
|
||||
hardware, this configuration uses the generic QEMU hypervisor. You can follow
|
||||
these instructions with minor modifications to horizontally scale your
|
||||
environment with additional compute nodes.
|
||||
|
||||
.. note::
|
||||
|
||||
This section assumes that you are following the instructions in this guide
|
||||
step-by-step to configure the first compute node. If you want to configure
|
||||
additional compute nodes, prepare them in a similar fashion to the first
|
||||
compute node in the :ref:`example architectures
|
||||
<overview-example-architectures>` section. Each additional compute node
|
||||
requires a unique IP address.
|
||||
|
||||
Install and configure components
|
||||
--------------------------------
|
||||
|
||||
.. include:: shared/note_configuration_vary_by_distribution.rst
|
||||
|
||||
#. Install the packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# zypper install openstack-nova-compute genisoimage qemu-kvm libvirt
|
||||
|
||||
#. Edit the ``/etc/nova/nova.conf`` file and complete the following actions:
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable only the compute and metadata APIs:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
enabled_apis = osapi_compute,metadata
|
||||
|
||||
* In the ``[DEFAULT]`` section, set the ``compute_driver``:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
compute_driver = libvirt.LibvirtDriver
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
transport_url = rabbit://openstack:RABBIT_PASS@controller
|
||||
|
||||
Replace ``RABBIT_PASS`` with the password you chose for the ``openstack``
|
||||
account in ``RabbitMQ``.
|
||||
|
||||
* In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity
|
||||
service access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api]
|
||||
# ...
|
||||
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
|
||||
|
||||
Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in
|
||||
the Identity service.
|
||||
|
||||
.. note::
|
||||
|
||||
Comment out or remove any other options in the ``[keystone_authtoken]``
|
||||
section.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
|
||||
|
||||
Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address of the
|
||||
management network interface on your compute node, typically ``10.0.0.31``
|
||||
for the first node in the :ref:`example architecture
|
||||
<overview-example-architectures>`.
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable support for the Networking service:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
|
||||
.. note::
|
||||
|
||||
By default, Compute uses an internal firewall service. Since
|
||||
Networking includes a firewall service, you must disable the Compute
|
||||
firewall service by using the
|
||||
``nova.virt.firewall.NoopFirewallDriver`` firewall driver.
|
||||
|
||||
* In the ``[vnc]`` section, enable and configure remote console access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[vnc]
|
||||
# ...
|
||||
enabled = True
|
||||
vncserver_listen = 0.0.0.0
|
||||
vncserver_proxyclient_address = $my_ip
|
||||
novncproxy_base_url = http://controller:6080/vnc_auto.html
|
||||
|
||||
The server component listens on all IP addresses and the proxy
|
||||
component only listens on the management interface IP address of
|
||||
the compute node. The base URL indicates the location where you
|
||||
can use a web browser to access remote consoles of instances
|
||||
on this compute node.
|
||||
|
||||
.. note::
|
||||
|
||||
If the web browser to access remote consoles resides on
|
||||
a host that cannot resolve the ``controller`` hostname,
|
||||
you must replace ``controller`` with the management
|
||||
interface IP address of the controller node.
|
||||
|
||||
* In the ``[glance]`` section, configure the location of the Image service
|
||||
API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[glance]
|
||||
# ...
|
||||
api_servers = http://controller:9292
|
||||
|
||||
* In the ``[oslo_concurrency]`` section, configure the lock path:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[oslo_concurrency]
|
||||
# ...
|
||||
lock_path = /var/run/nova
|
||||
|
||||
* In the ``[placement]`` section, configure the Placement API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[placement]
|
||||
# ...
|
||||
os_region_name = RegionOne
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
auth_type = password
|
||||
user_domain_name = Default
|
||||
auth_url = http://controller:35357/v3
|
||||
username = placement
|
||||
password = PLACEMENT_PASS
|
||||
|
||||
Replace ``PLACEMENT_PASS`` with the password you choose for the
|
||||
``placement`` user in the Identity service. Comment out any other options
|
||||
in the ``[placement]`` section.
|
||||
|
||||
#. Ensure the kernel module ``nbd`` is loaded.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# modprobe nbd
|
||||
|
||||
#. Ensure the module loads on every boot by adding ``nbd`` to the
|
||||
``/etc/modules-load.d/nbd.conf`` file.
|
||||
|
||||
Finalize installation
|
||||
---------------------
|
||||
|
||||
#. Determine whether your compute node supports hardware acceleration for
|
||||
virtual machines:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ egrep -c '(vmx|svm)' /proc/cpuinfo
|
||||
|
||||
If this command returns a value of ``one or greater``, your compute node
|
||||
supports hardware acceleration which typically requires no additional
|
||||
configuration.
|
||||
|
||||
If this command returns a value of ``zero``, your compute node does not
|
||||
support hardware acceleration and you must configure ``libvirt`` to use QEMU
|
||||
instead of KVM.
|
||||
|
||||
* Edit the ``[libvirt]`` section in the ``/etc/nova/nova.conf`` file as
|
||||
follows:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[libvirt]
|
||||
# ...
|
||||
virt_type = qemu
|
||||
|
||||
#. Start the Compute service including its dependencies and configure them to
|
||||
start automatically when the system boots:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# systemctl enable libvirtd.service openstack-nova-compute.service
|
||||
# systemctl start libvirtd.service openstack-nova-compute.service
|
||||
|
||||
.. note::
|
||||
|
||||
If the ``nova-compute`` service fails to start, check
|
||||
``/var/log/nova/nova-compute.log``. The error message ``AMQP server on
|
||||
controller:5672 is unreachable`` likely indicates that the firewall on the
|
||||
controller node is preventing access to port 5672. Configure the firewall
|
||||
to open port 5672 on the controller node and restart ``nova-compute``
|
||||
service on the compute node.
|
||||
|
||||
Add the compute node to the cell database
|
||||
-----------------------------------------
|
||||
|
||||
.. important::
|
||||
|
||||
Run the following commands on the **controller** node.
|
||||
|
||||
#. Source the admin credentials to enable admin-only CLI commands, then confirm
|
||||
there are compute hosts in the database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
$ openstack compute service list --service nova-compute
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
| ID | Host | Binary | Zone | State | Status | Updated At |
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
| 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 |
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
|
||||
#. Discover compute hosts:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
|
||||
|
||||
Found 2 cell mappings.
|
||||
Skipping cell0 since it does not contain hosts.
|
||||
Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
|
||||
Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
|
||||
Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
|
||||
Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
|
||||
|
||||
.. note::
|
||||
|
||||
When you add new compute nodes, you must run ``nova-manage cell_v2
|
||||
discover_hosts`` on the controller node to register those new compute
|
||||
nodes. Alternatively, you can set an appropriate interval in
|
||||
``/etc/nova/nova.conf``:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[scheduler]
|
||||
discover_hosts_in_cells_interval = 300
|
270
doc/source/install/compute-install-rdo.rst
Normal file
270
doc/source/install/compute-install-rdo.rst
Normal file
@ -0,0 +1,270 @@
|
||||
Install and configure a compute node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service on a
|
||||
compute node. The service supports several hypervisors to deploy instances or
|
||||
virtual machines (VMs). For simplicity, this configuration uses the Quick
|
||||
EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute
|
||||
nodes that support hardware acceleration for virtual machines. On legacy
|
||||
hardware, this configuration uses the generic QEMU hypervisor. You can follow
|
||||
these instructions with minor modifications to horizontally scale your
|
||||
environment with additional compute nodes.
|
||||
|
||||
.. note::
|
||||
|
||||
This section assumes that you are following the instructions in this guide
|
||||
step-by-step to configure the first compute node. If you want to configure
|
||||
additional compute nodes, prepare them in a similar fashion to the first
|
||||
compute node in the :ref:`example architectures
|
||||
<overview-example-architectures>` section. Each additional compute node
|
||||
requires a unique IP address.
|
||||
|
||||
Install and configure components
|
||||
--------------------------------
|
||||
|
||||
.. include:: shared/note_configuration_vary_by_distribution.rst
|
||||
|
||||
#. Install the packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# yum install openstack-nova-compute
|
||||
|
||||
#. Edit the ``/etc/nova/nova.conf`` file and complete the following actions:
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable only the compute and
|
||||
metadata APIs:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
enabled_apis = osapi_compute,metadata
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
transport_url = rabbit://openstack:RABBIT_PASS@controller
|
||||
|
||||
Replace ``RABBIT_PASS`` with the password you chose for the ``openstack``
|
||||
account in ``RabbitMQ``.
|
||||
|
||||
* In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity
|
||||
service access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api]
|
||||
# ...
|
||||
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
|
||||
|
||||
Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in
|
||||
the Identity service.
|
||||
|
||||
.. note::
|
||||
|
||||
Comment out or remove any other options in the ``[keystone_authtoken]``
|
||||
section.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
|
||||
|
||||
Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address of the
|
||||
management network interface on your compute node, typically 10.0.0.31 for
|
||||
the first node in the :ref:`example architecture
|
||||
<overview-example-architectures>`.
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable support for the Networking service:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
|
||||
.. note::
|
||||
|
||||
By default, Compute uses an internal firewall service. Since Networking
|
||||
includes a firewall service, you must disable the Compute firewall
|
||||
service by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall
|
||||
driver.
|
||||
|
||||
* In the ``[vnc]`` section, enable and configure remote console access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[vnc]
|
||||
# ...
|
||||
enabled = True
|
||||
vncserver_listen = 0.0.0.0
|
||||
vncserver_proxyclient_address = $my_ip
|
||||
novncproxy_base_url = http://controller:6080/vnc_auto.html
|
||||
|
||||
The server component listens on all IP addresses and the proxy component
|
||||
only listens on the management interface IP address of the compute node.
|
||||
The base URL indicates the location where you can use a web browser to
|
||||
access remote consoles of instances on this compute node.
|
||||
|
||||
.. note::
|
||||
|
||||
If the web browser to access remote consoles resides on a host that
|
||||
cannot resolve the ``controller`` hostname, you must replace
|
||||
``controller`` with the management interface IP address of the
|
||||
controller node.
|
||||
|
||||
* In the ``[glance]`` section, configure the location of the Image service
|
||||
API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[glance]
|
||||
# ...
|
||||
api_servers = http://controller:9292
|
||||
|
||||
* In the ``[oslo_concurrency]`` section, configure the lock path:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[oslo_concurrency]
|
||||
# ...
|
||||
lock_path = /var/lib/nova/tmp
|
||||
|
||||
* In the ``[placement]`` section, configure the Placement API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[placement]
|
||||
# ...
|
||||
os_region_name = RegionOne
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
auth_type = password
|
||||
user_domain_name = Default
|
||||
auth_url = http://controller:35357/v3
|
||||
username = placement
|
||||
password = PLACEMENT_PASS
|
||||
|
||||
Replace ``PLACEMENT_PASS`` with the password you choose for the
|
||||
``placement`` user in the Identity service. Comment out any other options
|
||||
in the ``[placement]`` section.
|
||||
|
||||
Finalize installation
|
||||
---------------------
|
||||
|
||||
#. Determine whether your compute node supports hardware acceleration for
|
||||
virtual machines:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ egrep -c '(vmx|svm)' /proc/cpuinfo
|
||||
|
||||
If this command returns a value of ``one or greater``, your compute node
|
||||
supports hardware acceleration which typically requires no additional
|
||||
configuration.
|
||||
|
||||
If this command returns a value of ``zero``, your compute node does not
|
||||
support hardware acceleration and you must configure ``libvirt`` to use QEMU
|
||||
instead of KVM.
|
||||
|
||||
* Edit the ``[libvirt]`` section in the ``/etc/nova/nova.conf`` file as
|
||||
follows:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[libvirt]
|
||||
# ...
|
||||
virt_type = qemu
|
||||
|
||||
#. Start the Compute service including its dependencies and configure them to
|
||||
start automatically when the system boots:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# systemctl enable libvirtd.service openstack-nova-compute.service
|
||||
# systemctl start libvirtd.service openstack-nova-compute.service
|
||||
|
||||
.. note::
|
||||
|
||||
If the ``nova-compute`` service fails to start, check
|
||||
``/var/log/nova/nova-compute.log``. The error message ``AMQP server on
|
||||
controller:5672 is unreachable`` likely indicates that the firewall on the
|
||||
controller node is preventing access to port 5672. Configure the firewall
|
||||
to open port 5672 on the controller node and restart ``nova-compute``
|
||||
service on the compute node.
|
||||
|
||||
Add the compute node to the cell database
|
||||
-----------------------------------------
|
||||
|
||||
.. important::
|
||||
|
||||
Run the following commands on the **controller** node.
|
||||
|
||||
#. Source the admin credentials to enable admin-only CLI commands, then confirm
|
||||
there are compute hosts in the database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
$ openstack compute service list --service nova-compute
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
| ID | Host | Binary | Zone | State | Status | Updated At |
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
| 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 |
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
|
||||
#. Discover compute hosts:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
|
||||
|
||||
Found 2 cell mappings.
|
||||
Skipping cell0 since it does not contain hosts.
|
||||
Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
|
||||
Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
|
||||
Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
|
||||
Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
|
||||
|
||||
.. note::
|
||||
|
||||
When you add new compute nodes, you must run ``nova-manage cell_v2
|
||||
discover_hosts`` on the controller node to register those new compute
|
||||
nodes. Alternatively, you can set an appropriate interval in
|
||||
``/etc/nova/nova.conf``:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[scheduler]
|
||||
discover_hosts_in_cells_interval = 300
|
265
doc/source/install/compute-install-ubuntu.rst
Normal file
265
doc/source/install/compute-install-ubuntu.rst
Normal file
@ -0,0 +1,265 @@
|
||||
Install and configure a compute node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service on a
|
||||
compute node. The service supports several hypervisors to deploy instances or
|
||||
virtual machines (VMs). For simplicity, this configuration uses the Quick
|
||||
EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute
|
||||
nodes that support hardware acceleration for virtual machines. On legacy
|
||||
hardware, this configuration uses the generic QEMU hypervisor. You can follow
|
||||
these instructions with minor modifications to horizontally scale your
|
||||
environment with additional compute nodes.
|
||||
|
||||
.. note::
|
||||
|
||||
This section assumes that you are following the instructions in this guide
|
||||
step-by-step to configure the first compute node. If you want to configure
|
||||
additional compute nodes, prepare them in a similar fashion to the first
|
||||
compute node in the :ref:`example architectures
|
||||
<overview-example-architectures>` section. Each additional compute node
|
||||
requires a unique IP address.
|
||||
|
||||
Install and configure components
|
||||
--------------------------------
|
||||
|
||||
.. include:: shared/note_configuration_vary_by_distribution.rst
|
||||
|
||||
#. Install the packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# apt install nova-compute
|
||||
|
||||
2. Edit the ``/etc/nova/nova.conf`` file and complete the following actions:
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
transport_url = rabbit://openstack:RABBIT_PASS@controller
|
||||
|
||||
Replace ``RABBIT_PASS`` with the password you chose for the ``openstack``
|
||||
account in ``RabbitMQ``.
|
||||
|
||||
* In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity
|
||||
service access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api]
|
||||
# ...
|
||||
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
|
||||
|
||||
Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in
|
||||
the Identity service.
|
||||
|
||||
.. note::
|
||||
|
||||
Comment out or remove any other options in the
|
||||
``[keystone_authtoken]`` section.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
|
||||
|
||||
Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address of the
|
||||
management network interface on your compute node, typically 10.0.0.31 for
|
||||
the first node in the :ref:`example architecture
|
||||
<overview-example-architectures>`.
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable support for the Networking service:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
|
||||
.. note::
|
||||
|
||||
By default, Compute uses an internal firewall service. Since Networking
|
||||
includes a firewall service, you must disable the Compute firewall
|
||||
service by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall
|
||||
driver.
|
||||
|
||||
* In the ``[vnc]`` section, enable and configure remote console access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[vnc]
|
||||
# ...
|
||||
enabled = True
|
||||
vncserver_listen = 0.0.0.0
|
||||
vncserver_proxyclient_address = $my_ip
|
||||
novncproxy_base_url = http://controller:6080/vnc_auto.html
|
||||
|
||||
The server component listens on all IP addresses and the proxy component
|
||||
only listens on the management interface IP address of the compute node.
|
||||
The base URL indicates the location where you can use a web browser to
|
||||
access remote consoles of instances on this compute node.
|
||||
|
||||
.. note::
|
||||
|
||||
If the web browser to access remote consoles resides on a host that
|
||||
cannot resolve the ``controller`` hostname, you must replace
|
||||
``controller`` with the management interface IP address of the
|
||||
controller node.
|
||||
|
||||
* In the ``[glance]`` section, configure the location of the Image service
|
||||
API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[glance]
|
||||
# ...
|
||||
api_servers = http://controller:9292
|
||||
|
||||
* In the ``[oslo_concurrency]`` section, configure the lock path:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[oslo_concurrency]
|
||||
# ...
|
||||
lock_path = /var/lib/nova/tmp
|
||||
|
||||
.. todo::
|
||||
|
||||
https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1506667
|
||||
|
||||
* Due to a packaging bug, remove the ``log_dir`` option from the
|
||||
``[DEFAULT]`` section.
|
||||
|
||||
* In the ``[placement]`` section, configure the Placement API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[placement]
|
||||
# ...
|
||||
os_region_name = RegionOne
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
auth_type = password
|
||||
user_domain_name = Default
|
||||
auth_url = http://controller:35357/v3
|
||||
username = placement
|
||||
password = PLACEMENT_PASS
|
||||
|
||||
Replace ``PLACEMENT_PASS`` with the password you choose for the
|
||||
``placement`` user in the Identity service. Comment out any other options
|
||||
in the ``[placement]`` section.
|
||||
|
||||
Finalize installation
|
||||
---------------------
|
||||
|
||||
#. Determine whether your compute node supports hardware acceleration for
|
||||
virtual machines:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ egrep -c '(vmx|svm)' /proc/cpuinfo
|
||||
|
||||
If this command returns a value of ``one or greater``, your compute node
|
||||
supports hardware acceleration which typically requires no additional
|
||||
configuration.
|
||||
|
||||
If this command returns a value of ``zero``, your compute node does not
|
||||
support hardware acceleration and you must configure ``libvirt`` to use QEMU
|
||||
instead of KVM.
|
||||
|
||||
* Edit the ``[libvirt]`` section in the ``/etc/nova/nova-compute.conf`` file as
|
||||
follows:
|
||||
|
||||
.. path /etc/nova/nova-compute.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[libvirt]
|
||||
# ...
|
||||
virt_type = qemu
|
||||
|
||||
#. Restart the Compute service:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# service nova-compute restart
|
||||
|
||||
.. note::
|
||||
|
||||
If the ``nova-compute`` service fails to start, check
|
||||
``/var/log/nova/nova-compute.log``. The error message ``AMQP server on
|
||||
controller:5672 is unreachable`` likely indicates that the firewall on the
|
||||
controller node is preventing access to port 5672. Configure the firewall
|
||||
to open port 5672 on the controller node and restart ``nova-compute``
|
||||
service on the compute node.
|
||||
|
||||
Add the compute node to the cell database
|
||||
-----------------------------------------
|
||||
|
||||
.. important::
|
||||
|
||||
Run the following commands on the **controller** node.
|
||||
|
||||
#. Source the admin credentials to enable admin-only CLI commands, then confirm
|
||||
there are compute hosts in the database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
$ openstack compute service list --service nova-compute
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
| ID | Host | Binary | Zone | State | Status | Updated At |
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
| 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 |
|
||||
+----+-------+--------------+------+-------+---------+----------------------------+
|
||||
|
||||
#. Discover compute hosts:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
|
||||
|
||||
Found 2 cell mappings.
|
||||
Skipping cell0 since it does not contain hosts.
|
||||
Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc
|
||||
Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc
|
||||
Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
|
||||
Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3
|
||||
|
||||
.. note::
|
||||
|
||||
When you add new compute nodes, you must run ``nova-manage cell_v2
|
||||
discover_hosts`` on the controller node to register those new compute
|
||||
nodes. Alternatively, you can set an appropriate interval in
|
||||
``/etc/nova/nova.conf``:
|
||||
|
||||
.. code-block:: ini
|
||||
|
||||
[scheduler]
|
||||
discover_hosts_in_cells_interval = 300
|
25
doc/source/install/compute-install.rst
Normal file
25
doc/source/install/compute-install.rst
Normal file
@ -0,0 +1,25 @@
|
||||
Install and configure a compute node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service on a
|
||||
compute node. The service supports several hypervisors to deploy instances or
|
||||
virtual machines (VMs). For simplicity, this configuration uses the Quick
|
||||
EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute
|
||||
nodes that support hardware acceleration for virtual machines. On legacy
|
||||
hardware, this configuration uses the generic QEMU hypervisor. You can follow
|
||||
these instructions with minor modifications to horizontally scale your
|
||||
environment with additional compute nodes.
|
||||
|
||||
.. note::
|
||||
|
||||
This section assumes that you are following the instructions in this guide
|
||||
step-by-step to configure the first compute node. If you want to configure
|
||||
additional compute nodes, prepare them in a similar fashion to the first
|
||||
compute node in the :ref:`example architectures
|
||||
<overview-example-architectures>` section. Each additional compute node
|
||||
requires a unique IP address.
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
||||
compute-install-*
|
486
doc/source/install/controller-install-obs.rst
Normal file
486
doc/source/install/controller-install-obs.rst
Normal file
@ -0,0 +1,486 @@
|
||||
Install and configure controller node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service,
|
||||
code-named nova, on the controller node.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
Before you install and configure the Compute service, you must create
|
||||
databases, service credentials, and API endpoints.
|
||||
|
||||
#. To create the databases, complete these steps:
|
||||
|
||||
* Use the database access client to connect to the database server as the
|
||||
``root`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ mysql -u root -p
|
||||
|
||||
* Create the ``nova_api``, ``nova``, and ``nova_cell0`` databases:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MariaDB [(none)]> CREATE DATABASE nova_api;
|
||||
MariaDB [(none)]> CREATE DATABASE nova;
|
||||
MariaDB [(none)]> CREATE DATABASE nova_cell0;
|
||||
|
||||
* Grant proper access to the databases:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
Replace ``NOVA_DBPASS`` with a suitable password.
|
||||
|
||||
* Exit the database access client.
|
||||
|
||||
#. Source the ``admin`` credentials to gain access to admin-only CLI commands:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
#. Create the Compute service credentials:
|
||||
|
||||
* Create the ``nova`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack user create --domain default --password-prompt nova
|
||||
|
||||
User Password:
|
||||
Repeat User Password:
|
||||
+---------------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+---------------------+----------------------------------+
|
||||
| domain_id | default |
|
||||
| enabled | True |
|
||||
| id | 8a7dbf5279404537b1c7b86c033620fe |
|
||||
| name | nova |
|
||||
| options | {} |
|
||||
| password_expires_at | None |
|
||||
+---------------------+----------------------------------+
|
||||
|
||||
* Add the ``admin`` role to the ``nova`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack role add --project service --user nova admin
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
* Create the ``nova`` service entity:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack service create --name nova \
|
||||
--description "OpenStack Compute" compute
|
||||
|
||||
+-------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------+
|
||||
| description | OpenStack Compute |
|
||||
| enabled | True |
|
||||
| id | 060d59eac51b4594815603d75a00aba2 |
|
||||
| name | nova |
|
||||
| type | compute |
|
||||
+-------------+----------------------------------+
|
||||
|
||||
#. Create the Compute API service endpoints:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute public http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute internal http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute admin http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
#. Create a Placement service user using your chosen ``PLACEMENT_PASS``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack user create --domain default --password-prompt placement
|
||||
|
||||
User Password:
|
||||
Repeat User Password:
|
||||
+---------------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+---------------------+----------------------------------+
|
||||
| domain_id | default |
|
||||
| enabled | True |
|
||||
| id | fa742015a6494a949f67629884fc7ec8 |
|
||||
| name | placement |
|
||||
| options | {} |
|
||||
| password_expires_at | None |
|
||||
+---------------------+----------------------------------+
|
||||
|
||||
#. Add the Placement user to the service project with the admin role:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack role add --project service --user placement admin
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
#. Create the Placement API entry in the service catalog:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack service create --name placement --description "Placement API" placement
|
||||
+-------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------+
|
||||
| description | Placement API |
|
||||
| enabled | True |
|
||||
| id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| name | placement |
|
||||
| type | placement |
|
||||
+-------------+----------------------------------+
|
||||
|
||||
#. Create the Placement API service endpoints:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement public http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 2b1b2637908b4137a9c2e0470487cbc0 |
|
||||
| interface | public |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement internal http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 02bcda9a150a4bd7993ff4879df971ab |
|
||||
| interface | internal |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement admin http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 3d71177b9e0f406f98cbff198d74b182 |
|
||||
| interface | admin |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
Install and configure components
|
||||
--------------------------------
|
||||
|
||||
.. include:: shared/note_configuration_vary_by_distribution.rst
|
||||
|
||||
.. note::
|
||||
|
||||
As of the Newton release, SUSE OpenStack packages are shipped with the
|
||||
upstream default configuration files. For example, ``/etc/nova/nova.conf``
|
||||
has customizations in ``/etc/nova/nova.conf.d/010-nova.conf``. While the
|
||||
following instructions modify the default configuration file, adding a new
|
||||
file in ``/etc/nova/nova.conf.d`` achieves the same result.
|
||||
|
||||
#. Install the packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# zypper install openstack-nova-api openstack-nova-scheduler \
|
||||
openstack-nova-conductor openstack-nova-consoleauth \
|
||||
openstack-nova-novncproxy openstack-nova-placement-api \
|
||||
iptables
|
||||
|
||||
#. Edit the ``/etc/nova/nova.conf`` file and complete the following actions:
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable only the compute and metadata
|
||||
APIs:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
enabled_apis = osapi_compute,metadata
|
||||
|
||||
* In the ``[api_database]`` and ``[database]`` sections, configure database
|
||||
access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api_database]
|
||||
# ...
|
||||
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
|
||||
|
||||
[database]
|
||||
# ...
|
||||
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
|
||||
|
||||
Replace ``NOVA_DBPASS`` with the password you chose for the Compute
|
||||
databases.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
transport_url = rabbit://openstack:RABBIT_PASS@controller
|
||||
|
||||
Replace ``RABBIT_PASS`` with the password you chose for the ``openstack``
|
||||
account in ``RabbitMQ``.
|
||||
|
||||
* In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity
|
||||
service access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api]
|
||||
# ...
|
||||
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
|
||||
|
||||
Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in
|
||||
the Identity service.
|
||||
|
||||
.. note::
|
||||
|
||||
Comment out or remove any other options in the ``[keystone_authtoken]``
|
||||
section.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option to use the
|
||||
management interface IP address of the controller node:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
my_ip = 10.0.0.11
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable support for the Networking service:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
|
||||
.. note::
|
||||
|
||||
By default, Compute uses an internal firewall driver. Since the
|
||||
Networking service includes a firewall driver, you must disable the
|
||||
Compute firewall driver by using the
|
||||
``nova.virt.firewall.NoopFirewallDriver`` firewall driver.
|
||||
|
||||
* In the ``[vnc]`` section, configure the VNC proxy to use the management
|
||||
interface IP address of the controller node:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[vnc]
|
||||
enabled = true
|
||||
# ...
|
||||
vncserver_listen = $my_ip
|
||||
vncserver_proxyclient_address = $my_ip
|
||||
|
||||
* In the ``[glance]`` section, configure the location of the Image service
|
||||
API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[glance]
|
||||
# ...
|
||||
api_servers = http://controller:9292
|
||||
|
||||
* In the ``[oslo_concurrency]`` section, configure the lock path:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[oslo_concurrency]
|
||||
# ...
|
||||
lock_path = /var/run/nova
|
||||
|
||||
* In the ``[placement]`` section, configure the Placement API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[placement]
|
||||
# ...
|
||||
os_region_name = RegionOne
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
auth_type = password
|
||||
user_domain_name = Default
|
||||
auth_url = http://controller:35357/v3
|
||||
username = placement
|
||||
password = PLACEMENT_PASS
|
||||
|
||||
Replace ``PLACEMENT_PASS`` with the password you choose for the
|
||||
``placement`` user in the Identity service. Comment out any other options
|
||||
in the ``[placement]`` section.
|
||||
|
||||
#. Populate the ``nova-api`` database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage api_db sync" nova
|
||||
|
||||
.. note::
|
||||
|
||||
Ignore any deprecation messages in this output.
|
||||
|
||||
#. Register the ``cell0`` database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
|
||||
|
||||
#. Create the ``cell1`` cell:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
|
||||
109e1d4b-536a-40d0-83c6-5f121b82b650
|
||||
|
||||
#. Populate the nova database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage db sync" nova
|
||||
|
||||
#. Verify nova cell0 and cell1 are registered correctly:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# nova-manage cell_v2 list_cells
|
||||
+-------+--------------------------------------+
|
||||
| Name | UUID |
|
||||
+-------+--------------------------------------+
|
||||
| cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 |
|
||||
| cell0 | 00000000-0000-0000-0000-000000000000 |
|
||||
+-------+--------------------------------------+
|
||||
|
||||
Finalize installation
|
||||
---------------------
|
||||
|
||||
* Enable the placement API Apache vhost:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# mv /etc/apache2/vhosts.d/nova-placement-api.conf.sample /etc/apache2/vhosts.d/nova-placement-api.conf
|
||||
# systemctl reload apache2.service
|
||||
|
||||
* Start the Compute services and configure them to start when the system boots:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# 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
|
493
doc/source/install/controller-install-rdo.rst
Normal file
493
doc/source/install/controller-install-rdo.rst
Normal file
@ -0,0 +1,493 @@
|
||||
Install and configure controller node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service,
|
||||
code-named nova, on the controller node.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
Before you install and configure the Compute service, you must create
|
||||
databases, service credentials, and API endpoints.
|
||||
|
||||
#. To create the databases, complete these steps:
|
||||
|
||||
* Use the database access client to connect to the database server as the
|
||||
``root`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ mysql -u root -p
|
||||
|
||||
* Create the ``nova_api``, ``nova``, and ``nova_cell0`` databases:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MariaDB [(none)]> CREATE DATABASE nova_api;
|
||||
MariaDB [(none)]> CREATE DATABASE nova;
|
||||
MariaDB [(none)]> CREATE DATABASE nova_cell0;
|
||||
|
||||
* Grant proper access to the databases:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
Replace ``NOVA_DBPASS`` with a suitable password.
|
||||
|
||||
* Exit the database access client.
|
||||
|
||||
#. Source the ``admin`` credentials to gain access to admin-only CLI commands:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
#. Create the Compute service credentials:
|
||||
|
||||
* Create the ``nova`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack user create --domain default --password-prompt nova
|
||||
|
||||
User Password:
|
||||
Repeat User Password:
|
||||
+---------------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+---------------------+----------------------------------+
|
||||
| domain_id | default |
|
||||
| enabled | True |
|
||||
| id | 8a7dbf5279404537b1c7b86c033620fe |
|
||||
| name | nova |
|
||||
| options | {} |
|
||||
| password_expires_at | None |
|
||||
+---------------------+----------------------------------+
|
||||
|
||||
* Add the ``admin`` role to the ``nova`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack role add --project service --user nova admin
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
* Create the ``nova`` service entity:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack service create --name nova \
|
||||
--description "OpenStack Compute" compute
|
||||
|
||||
+-------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------+
|
||||
| description | OpenStack Compute |
|
||||
| enabled | True |
|
||||
| id | 060d59eac51b4594815603d75a00aba2 |
|
||||
| name | nova |
|
||||
| type | compute |
|
||||
+-------------+----------------------------------+
|
||||
|
||||
#. Create the Compute API service endpoints:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute public http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute internal http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute admin http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
#. Create a Placement service user using your chosen ``PLACEMENT_PASS``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack user create --domain default --password-prompt placement
|
||||
|
||||
User Password:
|
||||
Repeat User Password:
|
||||
+---------------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+---------------------+----------------------------------+
|
||||
| domain_id | default |
|
||||
| enabled | True |
|
||||
| id | fa742015a6494a949f67629884fc7ec8 |
|
||||
| name | placement |
|
||||
| options | {} |
|
||||
| password_expires_at | None |
|
||||
+---------------------+----------------------------------+
|
||||
|
||||
#. Add the Placement user to the service project with the admin role:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack role add --project service --user placement admin
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
#. Create the Placement API entry in the service catalog:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack service create --name placement --description "Placement API" placement
|
||||
+-------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------+
|
||||
| description | Placement API |
|
||||
| enabled | True |
|
||||
| id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| name | placement |
|
||||
| type | placement |
|
||||
+-------------+----------------------------------+
|
||||
|
||||
#. Create the Placement API service endpoints:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement public http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 2b1b2637908b4137a9c2e0470487cbc0 |
|
||||
| interface | public |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement internal http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 02bcda9a150a4bd7993ff4879df971ab |
|
||||
| interface | internal |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement admin http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 3d71177b9e0f406f98cbff198d74b182 |
|
||||
| interface | admin |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
Install and configure components
|
||||
--------------------------------
|
||||
|
||||
.. include:: shared/note_configuration_vary_by_distribution.rst
|
||||
|
||||
#. Install the packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# yum install openstack-nova-api openstack-nova-conductor \
|
||||
openstack-nova-console openstack-nova-novncproxy \
|
||||
openstack-nova-scheduler openstack-nova-placement-api
|
||||
|
||||
#. Edit the ``/etc/nova/nova.conf`` file and complete the following actions:
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable only the compute and metadata APIs:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
enabled_apis = osapi_compute,metadata
|
||||
|
||||
* In the ``[api_database]`` and ``[database]`` sections, configure database
|
||||
access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api_database]
|
||||
# ...
|
||||
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
|
||||
|
||||
[database]
|
||||
# ...
|
||||
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
|
||||
|
||||
Replace ``NOVA_DBPASS`` with the password you chose for the Compute
|
||||
databases.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
transport_url = rabbit://openstack:RABBIT_PASS@controller
|
||||
|
||||
Replace ``RABBIT_PASS`` with the password you chose for the ``openstack``
|
||||
account in ``RabbitMQ``.
|
||||
|
||||
* In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity
|
||||
service access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api]
|
||||
# ...
|
||||
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
|
||||
|
||||
Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in
|
||||
the Identity service.
|
||||
|
||||
.. note::
|
||||
|
||||
Comment out or remove any other options in the ``[keystone_authtoken]``
|
||||
section.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option to use the
|
||||
management interface IP address of the controller node:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
my_ip = 10.0.0.11
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable support for the Networking service:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
|
||||
.. note::
|
||||
|
||||
By default, Compute uses an internal firewall driver. Since the
|
||||
Networking service includes a firewall driver, you must disable the
|
||||
Compute firewall driver by using the
|
||||
``nova.virt.firewall.NoopFirewallDriver`` firewall driver.
|
||||
|
||||
* In the ``[vnc]`` section, configure the VNC proxy to use the management
|
||||
interface IP address of the controller node:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[vnc]
|
||||
enabled = true
|
||||
# ...
|
||||
vncserver_listen = $my_ip
|
||||
vncserver_proxyclient_address = $my_ip
|
||||
|
||||
* In the ``[glance]`` section, configure the location of the Image service
|
||||
API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[glance]
|
||||
# ...
|
||||
api_servers = http://controller:9292
|
||||
|
||||
* In the ``[oslo_concurrency]`` section, configure the lock path:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[oslo_concurrency]
|
||||
# ...
|
||||
lock_path = /var/lib/nova/tmp
|
||||
|
||||
* In the ``[placement]`` section, configure the Placement API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[placement]
|
||||
# ...
|
||||
os_region_name = RegionOne
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
auth_type = password
|
||||
user_domain_name = Default
|
||||
auth_url = http://controller:35357/v3
|
||||
username = placement
|
||||
password = PLACEMENT_PASS
|
||||
|
||||
Replace ``PLACEMENT_PASS`` with the password you choose for the
|
||||
``placement`` user in the Identity service. Comment out any other options
|
||||
in the ``[placement]`` section.
|
||||
|
||||
* Due to a `packaging bug
|
||||
<https://bugzilla.redhat.com/show_bug.cgi?id=1430540>`_, you must enable
|
||||
access to the Placement API by adding the following configuration to
|
||||
``/etc/httpd/conf.d/00-nova-placement-api.conf``:
|
||||
|
||||
.. path /etc/httpd/conf.d/00-nova-placement-api.conf
|
||||
.. code-block:: ini
|
||||
|
||||
<Directory /usr/bin>
|
||||
<IfVersion >= 2.4>
|
||||
Require all granted
|
||||
</IfVersion>
|
||||
<IfVersion < 2.4>
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</IfVersion>
|
||||
</Directory>
|
||||
|
||||
* Restart the httpd service:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# systemctl restart httpd
|
||||
|
||||
#. Populate the ``nova-api`` database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage api_db sync" nova
|
||||
|
||||
.. note::
|
||||
|
||||
Ignore any deprecation messages in this output.
|
||||
|
||||
4. Register the ``cell0`` database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
|
||||
|
||||
5. Create the ``cell1`` cell:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
|
||||
109e1d4b-536a-40d0-83c6-5f121b82b650
|
||||
|
||||
6. Populate the nova database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage db sync" nova
|
||||
|
||||
7. Verify nova cell0 and cell1 are registered correctly:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# nova-manage cell_v2 list_cells
|
||||
+-------+--------------------------------------+
|
||||
| Name | UUID |
|
||||
+-------+--------------------------------------+
|
||||
| cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 |
|
||||
| cell0 | 00000000-0000-0000-0000-000000000000 |
|
||||
+-------+--------------------------------------+
|
||||
|
||||
Finalize installation
|
||||
---------------------
|
||||
|
||||
* Start the Compute services and configure them to start when the system boots:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# 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
|
465
doc/source/install/controller-install-ubuntu.rst
Normal file
465
doc/source/install/controller-install-ubuntu.rst
Normal file
@ -0,0 +1,465 @@
|
||||
Install and configure controller node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service,
|
||||
code-named nova, on the controller node.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
Before you install and configure the Compute service, you must create
|
||||
databases, service credentials, and API endpoints.
|
||||
|
||||
#. To create the databases, complete these steps:
|
||||
|
||||
* Use the database access client to connect to the database
|
||||
server as the ``root`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# mysql
|
||||
|
||||
* Create the ``nova_api``, ``nova``, and ``nova_cell0`` databases:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MariaDB [(none)]> CREATE DATABASE nova_api;
|
||||
MariaDB [(none)]> CREATE DATABASE nova;
|
||||
MariaDB [(none)]> CREATE DATABASE nova_cell0;
|
||||
|
||||
* Grant proper access to the databases:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
|
||||
IDENTIFIED BY 'NOVA_DBPASS';
|
||||
|
||||
Replace ``NOVA_DBPASS`` with a suitable password.
|
||||
|
||||
* Exit the database access client.
|
||||
|
||||
#. Source the ``admin`` credentials to gain access to admin-only CLI commands:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
#. Create the Compute service credentials:
|
||||
|
||||
* Create the ``nova`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack user create --domain default --password-prompt nova
|
||||
|
||||
User Password:
|
||||
Repeat User Password:
|
||||
+---------------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+---------------------+----------------------------------+
|
||||
| domain_id | default |
|
||||
| enabled | True |
|
||||
| id | 8a7dbf5279404537b1c7b86c033620fe |
|
||||
| name | nova |
|
||||
| options | {} |
|
||||
| password_expires_at | None |
|
||||
+---------------------+----------------------------------+
|
||||
|
||||
* Add the ``admin`` role to the ``nova`` user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack role add --project service --user nova admin
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
* Create the ``nova`` service entity:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack service create --name nova \
|
||||
--description "OpenStack Compute" compute
|
||||
|
||||
+-------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------+
|
||||
| description | OpenStack Compute |
|
||||
| enabled | True |
|
||||
| id | 060d59eac51b4594815603d75a00aba2 |
|
||||
| name | nova |
|
||||
| type | compute |
|
||||
+-------------+----------------------------------+
|
||||
|
||||
#. Create the Compute API service endpoints:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute public http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute internal http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne \
|
||||
compute admin http://controller:8774/v2.1
|
||||
|
||||
+--------------+-------------------------------------------+
|
||||
| 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 |
|
||||
+--------------+-------------------------------------------+
|
||||
|
||||
#. Create a Placement service user using your chosen ``PLACEMENT_PASS``:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack user create --domain default --password-prompt placement
|
||||
|
||||
User Password:
|
||||
Repeat User Password:
|
||||
+---------------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+---------------------+----------------------------------+
|
||||
| domain_id | default |
|
||||
| enabled | True |
|
||||
| id | fa742015a6494a949f67629884fc7ec8 |
|
||||
| name | placement |
|
||||
| options | {} |
|
||||
| password_expires_at | None |
|
||||
+---------------------+----------------------------------+
|
||||
|
||||
#. Add the Placement user to the service project with the admin role:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack role add --project service --user placement admin
|
||||
|
||||
.. note::
|
||||
|
||||
This command provides no output.
|
||||
|
||||
#. Create the Placement API entry in the service catalog:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack service create --name placement --description "Placement API" placement
|
||||
+-------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+-------------+----------------------------------+
|
||||
| description | Placement API |
|
||||
| enabled | True |
|
||||
| id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| name | placement |
|
||||
| type | placement |
|
||||
+-------------+----------------------------------+
|
||||
|
||||
#. Create the Placement API service endpoints:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement public http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 2b1b2637908b4137a9c2e0470487cbc0 |
|
||||
| interface | public |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement internal http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 02bcda9a150a4bd7993ff4879df971ab |
|
||||
| interface | internal |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
$ openstack endpoint create --region RegionOne placement admin http://controller:8778
|
||||
+--------------+----------------------------------+
|
||||
| Field | Value |
|
||||
+--------------+----------------------------------+
|
||||
| enabled | True |
|
||||
| id | 3d71177b9e0f406f98cbff198d74b182 |
|
||||
| interface | admin |
|
||||
| region | RegionOne |
|
||||
| region_id | RegionOne |
|
||||
| service_id | 2d1a27022e6e4185b86adac4444c495f |
|
||||
| service_name | placement |
|
||||
| service_type | placement |
|
||||
| url | http://controller:8778 |
|
||||
+--------------+----------------------------------+
|
||||
|
||||
Install and configure components
|
||||
--------------------------------
|
||||
|
||||
.. include:: shared/note_configuration_vary_by_distribution.rst
|
||||
|
||||
#. Install the packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# apt install nova-api nova-conductor nova-consoleauth \
|
||||
nova-novncproxy nova-scheduler nova-placement-api
|
||||
|
||||
#. Edit the ``/etc/nova/nova.conf`` file and complete the following actions:
|
||||
|
||||
* In the ``[api_database]`` and ``[database]`` sections, configure database
|
||||
access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api_database]
|
||||
# ...
|
||||
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
|
||||
|
||||
[database]
|
||||
# ...
|
||||
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
|
||||
|
||||
Replace ``NOVA_DBPASS`` with the password you chose for the Compute
|
||||
databases.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
transport_url = rabbit://openstack:RABBIT_PASS@controller
|
||||
|
||||
Replace ``RABBIT_PASS`` with the password you chose for the ``openstack``
|
||||
account in ``RabbitMQ``.
|
||||
|
||||
* In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity
|
||||
service access:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[api]
|
||||
# ...
|
||||
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
|
||||
|
||||
Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in
|
||||
the Identity service.
|
||||
|
||||
.. note::
|
||||
|
||||
Comment out or remove any other options in the ``[keystone_authtoken]``
|
||||
section.
|
||||
|
||||
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option to use the
|
||||
management interface IP address of the controller node:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
my_ip = 10.0.0.11
|
||||
|
||||
* In the ``[DEFAULT]`` section, enable support for the Networking service:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[DEFAULT]
|
||||
# ...
|
||||
use_neutron = True
|
||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||
|
||||
.. note::
|
||||
|
||||
By default, Compute uses an internal firewall driver. Since the
|
||||
Networking service includes a firewall driver, you must disable the
|
||||
Compute firewall driver by using the
|
||||
``nova.virt.firewall.NoopFirewallDriver`` firewall driver.
|
||||
|
||||
* In the ``[vnc]`` section, configure the VNC proxy to use the management
|
||||
interface IP address of the controller node:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[vnc]
|
||||
enabled = true
|
||||
# ...
|
||||
vncserver_listen = $my_ip
|
||||
vncserver_proxyclient_address = $my_ip
|
||||
|
||||
* In the ``[glance]`` section, configure the location of the Image service
|
||||
API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[glance]
|
||||
# ...
|
||||
api_servers = http://controller:9292
|
||||
|
||||
* In the ``[oslo_concurrency]`` section, configure the lock path:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[oslo_concurrency]
|
||||
# ...
|
||||
lock_path = /var/lib/nova/tmp
|
||||
|
||||
.. todo::
|
||||
|
||||
https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1506667
|
||||
|
||||
* Due to a packaging bug, remove the ``log_dir`` option from the
|
||||
``[DEFAULT]`` section.
|
||||
|
||||
* In the ``[placement]`` section, configure the Placement API:
|
||||
|
||||
.. path /etc/nova/nova.conf
|
||||
.. code-block:: ini
|
||||
|
||||
[placement]
|
||||
# ...
|
||||
os_region_name = RegionOne
|
||||
project_domain_name = Default
|
||||
project_name = service
|
||||
auth_type = password
|
||||
user_domain_name = Default
|
||||
auth_url = http://controller:35357/v3
|
||||
username = placement
|
||||
password = PLACEMENT_PASS
|
||||
|
||||
Replace ``PLACEMENT_PASS`` with the password you choose for the
|
||||
``placement`` user in the Identity service. Comment out any other options
|
||||
in the ``[placement]`` section.
|
||||
|
||||
#. Populate the nova-api database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage api_db sync" nova
|
||||
|
||||
.. note::
|
||||
|
||||
Ignore any deprecation messages in this output.
|
||||
|
||||
#. Register the ``cell0`` database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
|
||||
|
||||
#. Create the ``cell1`` cell:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
|
||||
109e1d4b-536a-40d0-83c6-5f121b82b650
|
||||
|
||||
#. Populate the nova database:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# su -s /bin/sh -c "nova-manage db sync" nova
|
||||
|
||||
#. Verify nova cell0 and cell1 are registered correctly:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# nova-manage cell_v2 list_cells
|
||||
+-------+--------------------------------------+
|
||||
| Name | UUID |
|
||||
+-------+--------------------------------------+
|
||||
| cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 |
|
||||
| cell0 | 00000000-0000-0000-0000-000000000000 |
|
||||
+-------+--------------------------------------+
|
||||
|
||||
Finalize installation
|
||||
---------------------
|
||||
|
||||
* Restart the Compute services:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# service nova-api restart
|
||||
# service nova-consoleauth restart
|
||||
# service nova-scheduler restart
|
||||
# service nova-conductor restart
|
||||
# service nova-novncproxy restart
|
10
doc/source/install/controller-install.rst
Normal file
10
doc/source/install/controller-install.rst
Normal file
@ -0,0 +1,10 @@
|
||||
Install and configure controller node
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This section describes how to install and configure the Compute service,
|
||||
code-named nova, on the controller node.
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
||||
controller-install-*
|
BIN
doc/source/install/figures/hwreqs.graffle
Normal file
BIN
doc/source/install/figures/hwreqs.graffle
Normal file
Binary file not shown.
BIN
doc/source/install/figures/hwreqs.png
Normal file
BIN
doc/source/install/figures/hwreqs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 89 KiB |
3
doc/source/install/figures/hwreqs.svg
Normal file
3
doc/source/install/figures/hwreqs.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 41 KiB |
BIN
doc/source/install/figures/network1-services.graffle
Normal file
BIN
doc/source/install/figures/network1-services.graffle
Normal file
Binary file not shown.
BIN
doc/source/install/figures/network1-services.png
Normal file
BIN
doc/source/install/figures/network1-services.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 167 KiB |
3
doc/source/install/figures/network1-services.svg
Normal file
3
doc/source/install/figures/network1-services.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 48 KiB |
BIN
doc/source/install/figures/network2-services.graffle
Normal file
BIN
doc/source/install/figures/network2-services.graffle
Normal file
Binary file not shown.
BIN
doc/source/install/figures/network2-services.png
Normal file
BIN
doc/source/install/figures/network2-services.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 170 KiB |
3
doc/source/install/figures/network2-services.svg
Normal file
3
doc/source/install/figures/network2-services.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 49 KiB |
102
doc/source/install/get-started-compute.rst
Normal file
102
doc/source/install/get-started-compute.rst
Normal file
@ -0,0 +1,102 @@
|
||||
========================
|
||||
Compute service overview
|
||||
========================
|
||||
|
||||
.. todo:: Update a lot of the links in here.
|
||||
|
||||
Use OpenStack Compute to host and manage cloud computing systems. OpenStack
|
||||
Compute is a major part of an Infrastructure-as-a-Service (IaaS) system. The
|
||||
main modules are implemented in Python.
|
||||
|
||||
OpenStack Compute interacts with OpenStack Identity for authentication;
|
||||
OpenStack Image service for disk and server images; and OpenStack Dashboard for
|
||||
the user and administrative interface. Image access is limited by projects, and
|
||||
by users; quotas are limited per project (the number of instances, for
|
||||
example). OpenStack Compute can scale horizontally on standard hardware, and
|
||||
download images to launch instances.
|
||||
|
||||
OpenStack Compute consists of the following areas and their components:
|
||||
|
||||
``nova-api`` service
|
||||
Accepts and responds to end user compute API calls. The service supports the
|
||||
OpenStack Compute API, the Amazon EC2 API, and a special Admin API for
|
||||
privileged users to perform administrative actions. It enforces some policies
|
||||
and initiates most orchestration activities, such as running an instance.
|
||||
|
||||
``nova-api-metadata`` service
|
||||
Accepts metadata requests from instances. The ``nova-api-metadata`` service
|
||||
is generally used when you run in multi-host mode with ``nova-network``
|
||||
installations. For details, see `Metadata service
|
||||
<https://docs.openstack.org/admin-guide/compute-networking-nova.html#metadata-service>`__
|
||||
in the OpenStack Administrator Guide.
|
||||
|
||||
``nova-compute`` service
|
||||
A worker daemon that creates and terminates virtual machine instances through
|
||||
hypervisor APIs. For example:
|
||||
|
||||
- XenAPI for XenServer/XCP
|
||||
|
||||
- libvirt for KVM or QEMU
|
||||
|
||||
- VMwareAPI for VMware
|
||||
|
||||
Processing is fairly complex. Basically, the daemon accepts actions from the
|
||||
queue and performs a series of system commands such as launching a KVM
|
||||
instance and updating its state in the database.
|
||||
|
||||
``nova-placement-api`` service
|
||||
Tracks the inventory and usage of each provider. For details, see `Placement
|
||||
API <https://docs.openstack.org/developer/nova/placement.html>`__.
|
||||
|
||||
``nova-scheduler`` service
|
||||
Takes a virtual machine instance request from the queue and determines on
|
||||
which compute server host it runs.
|
||||
|
||||
``nova-conductor`` module
|
||||
Mediates interactions between the ``nova-compute`` service and the database.
|
||||
It eliminates direct accesses to the cloud database made by the
|
||||
``nova-compute`` service. The ``nova-conductor`` module scales horizontally.
|
||||
However, do not deploy it on nodes where the ``nova-compute`` service runs.
|
||||
For more information, see `Configuration Reference Guide
|
||||
<https://docs.openstack.org/ocata/config-reference/compute/config-options.html#nova-conductor>`__.
|
||||
|
||||
``nova-consoleauth`` daemon
|
||||
Authorizes tokens for users that console proxies provide. See
|
||||
``nova-novncproxy`` and ``nova-xvpvncproxy``. This service must be running
|
||||
for console proxies to work. You can run proxies of either type against a
|
||||
single nova-consoleauth service in a cluster configuration. For information,
|
||||
see `About nova-consoleauth
|
||||
<https://docs.openstack.org/admin-guide/compute-remote-console-access.html#about-nova-consoleauth>`__.
|
||||
|
||||
``nova-novncproxy`` daemon
|
||||
Provides a proxy for accessing running instances through a VNC connection.
|
||||
Supports browser-based novnc clients.
|
||||
|
||||
``nova-spicehtml5proxy`` daemon
|
||||
Provides a proxy for accessing running instances through a SPICE connection.
|
||||
Supports browser-based HTML5 client.
|
||||
|
||||
``nova-xvpvncproxy`` daemon
|
||||
Provides a proxy for accessing running instances through a VNC connection.
|
||||
Supports an OpenStack-specific Java client.
|
||||
|
||||
The queue
|
||||
A central hub for passing messages between daemons. Usually implemented with
|
||||
`RabbitMQ <https://www.rabbitmq.com/>`__, also can be implemented with
|
||||
another AMQP message queue, such as `ZeroMQ <http://www.zeromq.org/>`__.
|
||||
|
||||
SQL database
|
||||
Stores most build-time and run-time states for a cloud infrastructure,
|
||||
including:
|
||||
|
||||
- Available instance types
|
||||
|
||||
- Instances in use
|
||||
|
||||
- Available networks
|
||||
|
||||
- Projects
|
||||
|
||||
Theoretically, OpenStack Compute can support any database that SQLAlchemy
|
||||
supports. Common databases are SQLite3 for test and development work, MySQL,
|
||||
MariaDB, and PostgreSQL.
|
11
doc/source/install/index.rst
Normal file
11
doc/source/install/index.rst
Normal file
@ -0,0 +1,11 @@
|
||||
===============
|
||||
Compute service
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
||||
overview.rst
|
||||
get-started-compute.rst
|
||||
controller-install.rst
|
||||
compute-install.rst
|
||||
verify.rst
|
174
doc/source/install/overview.rst
Normal file
174
doc/source/install/overview.rst
Normal file
@ -0,0 +1,174 @@
|
||||
========
|
||||
Overview
|
||||
========
|
||||
|
||||
The OpenStack project is an open source cloud computing platform that supports
|
||||
all types of cloud environments. The project aims for simple implementation,
|
||||
massive scalability, and a rich set of features. Cloud computing experts from
|
||||
around the world contribute to the project.
|
||||
|
||||
OpenStack provides an Infrastructure-as-a-Service (IaaS) solution through a
|
||||
variety of complementary services. Each service offers an Application
|
||||
Programming Interface (API) that facilitates this integration.
|
||||
|
||||
This guide covers step-by-step deployment of the major OpenStack services using
|
||||
a functional example architecture suitable for new users of OpenStack with
|
||||
sufficient Linux experience. This guide is not intended to be used for
|
||||
production system installations, but to create a minimum proof-of-concept for
|
||||
the purpose of learning about OpenStack.
|
||||
|
||||
After becoming familiar with basic installation, configuration, operation, and
|
||||
troubleshooting of these OpenStack services, you should consider the following
|
||||
steps toward deployment using a production architecture:
|
||||
|
||||
* Determine and implement the necessary core and optional services to meet
|
||||
performance and redundancy requirements.
|
||||
|
||||
* Increase security using methods such as firewalls, encryption, and service
|
||||
policies.
|
||||
|
||||
* Implement a deployment tool such as Ansible, Chef, Puppet, or Salt to
|
||||
automate deployment and management of the production environment.
|
||||
|
||||
.. _overview-example-architectures:
|
||||
|
||||
Example architecture
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The example architecture requires at least two nodes (hosts) to launch a basic
|
||||
virtual machine (VM) or instance. Optional services such as Block Storage and
|
||||
Object Storage require additional nodes.
|
||||
|
||||
.. important::
|
||||
|
||||
The example architecture used in this guide is a minimum configuration, and
|
||||
is not intended for production system installations. It is designed to
|
||||
provide a minimum proof-of-concept for the purpose of learning about
|
||||
OpenStack. For information on creating architectures for specific use cases,
|
||||
or how to determine which architecture is required, see the `Architecture
|
||||
Design Guide <https://docs.openstack.org/arch-design/>`_.
|
||||
|
||||
This example architecture differs from a minimal production architecture as
|
||||
follows:
|
||||
|
||||
* Networking agents reside on the controller node instead of one or more
|
||||
dedicated network nodes.
|
||||
|
||||
* Overlay (tunnel) traffic for self-service networks traverses the management
|
||||
network instead of a dedicated network.
|
||||
|
||||
For more information on production architectures, see the `Architecture Design
|
||||
Guide <https://docs.openstack.org/arch-design/>`_, `OpenStack Operations Guide
|
||||
<https://docs.openstack.org/ops-guide/>`_, and `OpenStack Networking Guide
|
||||
<https://docs.openstack.org/ocata/networking-guide/>`_.
|
||||
|
||||
.. _figure-hwreqs:
|
||||
|
||||
.. figure:: figures/hwreqs.png
|
||||
:alt: Hardware requirements
|
||||
|
||||
**Hardware requirements**
|
||||
|
||||
Controller
|
||||
----------
|
||||
|
||||
The controller node runs the Identity service, Image service, management
|
||||
portions of Compute, management portion of Networking, various Networking
|
||||
agents, and the Dashboard. It also includes supporting services such as an SQL
|
||||
database, message queue, and Network Time Protocol (NTP).
|
||||
|
||||
Optionally, the controller node runs portions of the Block Storage, Object
|
||||
Storage, Orchestration, and Telemetry services.
|
||||
|
||||
The controller node requires a minimum of two network interfaces.
|
||||
|
||||
Compute
|
||||
-------
|
||||
|
||||
The compute node runs the hypervisor portion of Compute that operates
|
||||
instances. By default, Compute uses the kernel-based VM (KVM) hypervisor. The
|
||||
compute node also runs a Networking service agent that connects instances to
|
||||
virtual networks and provides firewalling services to instances via security
|
||||
groups.
|
||||
|
||||
You can deploy more than one compute node. Each node requires a minimum of two
|
||||
network interfaces.
|
||||
|
||||
Block Storage
|
||||
-------------
|
||||
|
||||
The optional Block Storage node contains the disks that the Block Storage and
|
||||
Shared File System services provision for instances.
|
||||
|
||||
For simplicity, service traffic between compute nodes and this node uses the
|
||||
management network. Production environments should implement a separate storage
|
||||
network to increase performance and security.
|
||||
|
||||
You can deploy more than one block storage node. Each node requires a minimum
|
||||
of one network interface.
|
||||
|
||||
Object Storage
|
||||
--------------
|
||||
|
||||
The optional Object Storage node contain the disks that the Object Storage
|
||||
service uses for storing accounts, containers, and objects.
|
||||
|
||||
For simplicity, service traffic between compute nodes and this node uses the
|
||||
management network. Production environments should implement a separate storage
|
||||
network to increase performance and security.
|
||||
|
||||
This service requires two nodes. Each node requires a minimum of one network
|
||||
interface. You can deploy more than two object storage nodes.
|
||||
|
||||
Networking
|
||||
~~~~~~~~~~
|
||||
|
||||
Choose one of the following virtual networking options.
|
||||
|
||||
.. _network1:
|
||||
|
||||
Networking Option 1: Provider networks
|
||||
--------------------------------------
|
||||
|
||||
The provider networks option deploys the OpenStack Networking service in the
|
||||
simplest way possible with primarily layer-2 (bridging/switching) services and
|
||||
VLAN segmentation of networks. Essentially, it bridges virtual networks to
|
||||
physical networks and relies on physical network infrastructure for layer-3
|
||||
(routing) services. Additionally, a DHCP<Dynamic Host Configuration Protocol
|
||||
(DHCP) service provides IP address information to instances.
|
||||
|
||||
The OpenStack user requires more information about the underlying network
|
||||
infrastructure to create a virtual network to exactly match the infrastructure.
|
||||
|
||||
.. warning::
|
||||
|
||||
This option lacks support for self-service (private) networks, layer-3
|
||||
(routing) services, and advanced services such as Load-Balancer-as-a-Service
|
||||
(LBaaS) and FireWall-as-a-Service (FWaaS). Consider the self-service
|
||||
networks option below if you desire these features.
|
||||
|
||||
.. _figure-network1-services:
|
||||
|
||||
.. figure:: figures/network1-services.png
|
||||
:alt: Networking Option 1: Provider networks - Service layout
|
||||
|
||||
.. _network2:
|
||||
|
||||
Networking Option 2: Self-service networks
|
||||
------------------------------------------
|
||||
|
||||
The self-service networks option augments the provider networks option with
|
||||
layer-3 (routing) services that enable self-service networks using overlay
|
||||
segmentation methods such as Virtual Extensible LAN (VXLAN). Essentially, it
|
||||
routes virtual networks to physical networks using Network Address Translation
|
||||
(NAT). Additionally, this option provides the foundation for advanced services
|
||||
such as LBaaS and FWaaS.
|
||||
|
||||
The OpenStack user can create virtual networks without the knowledge of
|
||||
underlying infrastructure on the data network. This can also include VLAN
|
||||
networks if the layer-2 plug-in is configured accordingly.
|
||||
|
||||
.. _figure-network2-services:
|
||||
|
||||
.. figure:: figures/network2-services.png
|
||||
:alt: Networking Option 2: Self-service networks - Service layout
|
@ -0,0 +1,6 @@
|
||||
.. note::
|
||||
|
||||
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.
|
119
doc/source/install/verify.rst
Normal file
119
doc/source/install/verify.rst
Normal file
@ -0,0 +1,119 @@
|
||||
Verify operation
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Verify operation of the Compute service.
|
||||
|
||||
.. note::
|
||||
|
||||
Perform these commands on the controller node.
|
||||
|
||||
#. Source the ``admin`` credentials to gain access to admin-only CLI commands:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ . admin-openrc
|
||||
|
||||
#. List service components to verify successful launch and registration of each
|
||||
process:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack compute service list
|
||||
|
||||
+----+--------------------+------------+----------+---------+-------+----------------------------+
|
||||
| Id | Binary | Host | Zone | Status | State | Updated At |
|
||||
+----+--------------------+------------+----------+---------+-------+----------------------------+
|
||||
| 1 | nova-consoleauth | controller | internal | enabled | up | 2016-02-09T23:11:15.000000 |
|
||||
| 2 | nova-scheduler | controller | internal | enabled | up | 2016-02-09T23:11:15.000000 |
|
||||
| 3 | nova-conductor | controller | internal | enabled | up | 2016-02-09T23:11:16.000000 |
|
||||
| 4 | nova-compute | compute1 | nova | enabled | up | 2016-02-09T23:11:20.000000 |
|
||||
+----+--------------------+------------+----------+---------+-------+----------------------------+
|
||||
|
||||
.. note::
|
||||
|
||||
This output should indicate three service components enabled on the
|
||||
controller node and one service component enabled on the compute node.
|
||||
|
||||
#. List API endpoints in the Identity service to verify connectivity with the
|
||||
Identity service:
|
||||
|
||||
.. note::
|
||||
|
||||
Below endpoints list may differ depending on the installation of
|
||||
OpenStack components.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack catalog list
|
||||
|
||||
+-----------+-----------+-----------------------------------------+
|
||||
| Name | Type | Endpoints |
|
||||
+-----------+-----------+-----------------------------------------+
|
||||
| keystone | identity | RegionOne |
|
||||
| | | public: http://controller:5000/v3/ |
|
||||
| | | RegionOne |
|
||||
| | | internal: http://controller:5000/v3/ |
|
||||
| | | RegionOne |
|
||||
| | | admin: http://controller:35357/v3/ |
|
||||
| | | |
|
||||
| glance | image | RegionOne |
|
||||
| | | admin: http://controller:9292 |
|
||||
| | | RegionOne |
|
||||
| | | public: http://controller:9292 |
|
||||
| | | RegionOne |
|
||||
| | | internal: http://controller:9292 |
|
||||
| | | |
|
||||
| nova | compute | RegionOne |
|
||||
| | | admin: http://controller:8774/v2.1 |
|
||||
| | | RegionOne |
|
||||
| | | internal: http://controller:8774/v2.1 |
|
||||
| | | RegionOne |
|
||||
| | | public: http://controller:8774/v2.1 |
|
||||
| | | |
|
||||
| placement | placement | RegionOne |
|
||||
| | | public: http://controller:8778 |
|
||||
| | | RegionOne |
|
||||
| | | admin: http://controller:8778 |
|
||||
| | | RegionOne |
|
||||
| | | internal: http://controller:8778 |
|
||||
| | | |
|
||||
+-----------+-----------+-----------------------------------------+
|
||||
|
||||
.. note::
|
||||
|
||||
Ignore any warnings in this output.
|
||||
|
||||
#. List images in the Image service to verify connectivity with the Image
|
||||
service:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack image list
|
||||
|
||||
+--------------------------------------+-------------+-------------+
|
||||
| ID | Name | Status |
|
||||
+--------------------------------------+-------------+-------------+
|
||||
| 9a76d9f9-9620-4f2e-8c69-6c5691fae163 | cirros | active |
|
||||
+--------------------------------------+-------------+-------------+
|
||||
|
||||
#. Check the cells and placement API are working successfully:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# nova-status upgrade check
|
||||
|
||||
+---------------------------+
|
||||
| Upgrade Check Results |
|
||||
+---------------------------+
|
||||
| Check: Cells v2 |
|
||||
| Result: Success |
|
||||
| Details: None |
|
||||
+---------------------------+
|
||||
| Check: Placement API |
|
||||
| Result: Success |
|
||||
| Details: None |
|
||||
+---------------------------+
|
||||
| Check: Resource Providers |
|
||||
| Result: Success |
|
||||
| Details: None |
|
||||
+---------------------------+
|
Loading…
x
Reference in New Issue
Block a user