Updated nearly all RST files to:

* Fix formatting issues.
* Simplify coding for code blocks.
* Fix typos.

Also adding links from "openstack_installing_bundles" to next-step topics.
This commit is contained in:
Tullis, Michael L
2015-11-02 19:18:24 -07:00
parent 22b64d3850
commit c9c84c5414
16 changed files with 499 additions and 919 deletions
+13 -22
View File
@@ -1,9 +1,8 @@
.. _bootable_usb:
Creating a bootable USB to install the OS
=========================================
Here's how to create a USB drive that initiates the process for
:ref:`clr_as_host`. Alternatively, you can test the OS by :ref:`clr_in_virtual_env`.
`installing Clear Linux OS for Intel Architecture as host <gs_installing_clr_as_host.html>`_.
Alternatively, you can test the OS by `running in a virtualized environment <gs_running_clr_virtual.html>`_.
What you need
@@ -13,6 +12,7 @@ What you need
``dd`` with caution.
* A ClearLinux OS image; the most current version can be found here:
`https://download.clearlinux.org/image <https://download.clearlinux.org/image>`_
.. tip::
For older versions, see our `downloads page <https://download.clearlinux.org/>`_.
@@ -26,37 +26,29 @@ Download and checksum
$ wget https://download.clearlinux.org/image/clear-[release_number]-installer.img.xz
$ sha512sum clear-[release_number]-installer.img.xz`
Confirm the mount point on the USB drive
----------------------------------------
Using :command:`$ lsblk` is helpful to show the block-level devices; a USB drive
Using ``$ lsblk`` is helpful to show the block-level devices; a USB drive
usually shows up under ``/sdb`` or ``/sdc`` (almost never ``/sda``), and should
indicate disk space approximately the size of the USB drive:
indicate disk space approximately the size of the USB drive::
::
$ lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
?? sdb 8:16 1 14.9G 0
?? sdb1 8:17 1 14.9G 0 part
$ lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
?? sdb 8:16 1 14.9G 0
?? sdb1 8:17 1 14.9G 0 part
and make sure the drive isn't already mounted. The easiest way is with
:command:`# df`.
and make sure the drive isn't already mounted. The easiest way is with::
# df
Flash the image to the USB
--------------------------
Flash the image with the following command, adding the ``-v`` option for verbose mode
(recommended), as the image file may be large, and the process can take a while. This
may need to be done as root.
::
may need to be done as root::
$ xzcat -v clear-[release_number]-installer.img.xz | dd of=/dev/sdb bs=4M
Wait for the final confirmation
-------------------------------
This example shows ``clear-2190-installer.img.xz`` flashed to a 16GB USB drive
@@ -66,6 +58,5 @@ mounted on ``/sdc``.
:align: center
:alt: confirmation
Success! Your USB stick is now ready to boot and initiate the process for
:ref:`clr_as_host`.
`installing Clear Linux OS for Intel Architecture as host <gs_installing_clr_as_host.html>`_.
+64 -126
View File
@@ -1,4 +1,4 @@
OpenStack block storage
OpenStack* Block Storage
############################################################
Clear Linux* OS for Intel® Architecture can be used with the
@@ -27,22 +27,16 @@ database, complete these steps:
**Create a database:**
#. Use the database access client to connect to the database server as
the root user:
.. code:: text
the root user::
$ mysql -u root -p
#. Create the cinder database.
#. Create the cinder database::
.. code:: text
CREATE DATABASE cinder;
#. Grant proper access to the cinder database. Replace ``CINDER_DBPASS``
with a suitable password.
.. code:: text
with a suitable password::
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'CINDER_DBPASS';
@@ -54,18 +48,14 @@ database, complete these steps:
**Create service credentials:**
#. Now source the admin credentials to gain access to admin-only CLI
commands:
.. code:: text
commands::
$ source admin-openrc.sh
#. To create the service credentials, complete these steps:
#. Create a cinder user:
* Create a cinder user::
.. code:: text
$ openstack user create --password-prompt cinder
User Password:
Repeat User Password:
@@ -79,10 +69,8 @@ database, complete these steps:
| username | cinder |
+----------+----------------------------------+
#. Add the admin role to the cinder user:
* Add the admin role to the cinder user::
.. code:: text
$ openstack role add --project service --user cinder admin
+-------+----------------------------------+
| Field | Value |
@@ -91,11 +79,9 @@ database, complete these steps:
| name | admin |
+-------+----------------------------------+
#. Now create the cinder service entities:
* Now create the cinder service entities::
.. code:: text
$ openstack service create --name cinder \
$ openstack service create --name cinder \
--description "OpenStack Block Storage" volume
| Field | Value |
+-------------+----------------------------------+
@@ -119,9 +105,7 @@ database, complete these steps:
**Create service endpoints:**
The last prerequisite is to create the Block Storage service API endpoints:
.. code:: text
The last prerequisite is to create the Block Storage service API endpoints::
$ openstack endpoint create \
--publicurl http://controller:8776/v2/%\(tenant_id\)s \
@@ -166,46 +150,36 @@ Installing and configuring Block Storage controller components
Once your prerequisites are finished, you can install and configure
Block Storage controller components:
#. Install OpenStack Block Storage Controller bundle:
#. Install OpenStack Block Storage Controller bundle::
.. code:: text
# clr_bundle_add openstack-block-storage-controller
#. Custom configurations will be located at ``/etc/cinder``.
#. Create ``/etc/cinder`` directory.
* Create ``/etc/cinder`` directory::
.. code:: text
mkdir /etc/cinder
#. Create empty cinder configuration file in
``/etc/cinder/cinder.conf``
.. code:: text
* Create empty cinder configuration file in
``/etc/cinder/cinder.conf``::
touch /etc/cinder/cinder.conf
#. Edit the ``/etc/cinder/cinder.conf`` file and complete the following
actions:
#. In the ``[database]`` section, configure database access. Replace
``CINDER_DBPASS`` with the password you chose for the
database.
.. code:: text
* In the ``[database]`` section, configure database access. Replace
``CINDER_DBPASS`` with the password you chose for the
database::
[database]
...
connection=mysql://cinder:CINDER_DBPASS@controller/cinder
#. In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` section,
configure RabbitMQ message queue access. Replace ``RABBIT_PASS``
with the password you chose for the account in
RabbitMQ.
.. code:: text
* In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` section,
configure RabbitMQ message queue access. Replace ``RABBIT_PASS``
with the password you chose for the account in
RabbitMQ::
[DEFAULT]
...
@@ -216,12 +190,10 @@ Block Storage controller components:
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
#. In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace ``CINDER_PASS`` with the
password you chose for the cinder user in the Identity
service.
.. code:: text
* In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace ``CINDER_PASS`` with the
password you chose for the cinder user in the Identity
service::
[DEFAULT]
...
@@ -233,31 +205,23 @@ Block Storage controller components:
admin_user = cinder
admin_password = CINDER_PASS
#. In the ``[DEFAULT]`` section, configure the ``my_ip`` option to
use the management interface IP address of the controller node:
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option to
use the management interface IP address of the controller node::
.. code:: text
[DEFAULT] ... my_ip = 10.0.0.11
[DEFAULT] ... my_ip = 10.0.0.11
#. Let ``systemd`` set the correct permissions for files in ``/etc/cinder``.
#. Let ``systemd`` set the correct permissions for files in ``/etc/cinder``::
.. code:: text
# systemctl restart update-triggers.target
#. Populate the Block Storage database:
#. Populate the Block Storage database::
.. code:: text
# su -s /bin/sh -c "cinder-manage db sync" cinder
Finalizing installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To finalize installation, enable and start the Block Storage services:
.. code:: text
To finalize installation, enable and start the Block Storage services::
# systemctl enable cinder-api cinder-scheduler
# systemctl start cinder-api cinder-scheduler
@@ -279,9 +243,7 @@ storage nodes.
Install Block Storage volume components
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Install the packages:
.. code:: text
Install the packages::
# clr_bundle_add openstack-block-storage
@@ -294,24 +256,20 @@ storage node also needs an empty block storage device of suitable size
for your environment.
#. Create the LVM physical volume: ``/dev/sdb1`` If your system uses a
different device name, adjust these steps accordingly.
.. code:: text
different device name, adjust these steps accordingly::
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
#. Create the LVM volume group ``cinder-volumes``:
#. Create the LVM volume group ``cinder-volumes``::
.. code:: text
# vgcreate cinder-volumes /dev/sdb1
Volume group "cinder-volumes" successfully created
The Block Storage service creates logical volumes in this volume
group.
#. Only instances can access Block Storage volumes. However, the
Only instances can access Block Storage volumes. However, the
underlying operating system manages the devices associated with the
volumes. By default, the LVM volume scanning tool scans the ``/dev``
directory for block storage devices that contain volumes. If projects
@@ -319,13 +277,13 @@ for your environment.
attempts to cache them which can cause a variety of problems with
both the underlying operating system and project volumes. You must
reconfigure LVM to scan only the devices that contain the
``cinder-volume`` volume group. Edit the ``/etc/lvm/lvm.conf`` file
``cinder-volume`` volume group.
#. Edit the ``/etc/lvm/lvm.conf`` file
and complete the following action:
#. In the ``devices`` section, add a filter that accepts the
``/dev/sdb`` device and rejects all other devices:
.. code:: text
* In the ``devices`` section, add a filter that accepts the
``/dev/sdb`` device and rejects all other devices::
devices {
filter = [ "a/sdb/", "r/.*/"]
@@ -336,22 +294,18 @@ for your environment.
#. Edit the ``/etc/cinder/cinder.conf`` file and complete the following
actions:
#. In the ``[database]`` section, configure database access. Replace
``CINDER_DBPASS`` with the password you chose for the Block Storage
database.
.. code:: text
* In the ``[database]`` section, configure database access. Replace
``CINDER_DBPASS`` with the password you chose for the Block Storage
database::
[database]
...
connection = mysql://cinder:CINDER_DBPASS@controller/cinder
#. In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure *RabbitMQ* message queue access. Replace ``RABBIT_PASS``
with the password you chose for the openstack account in
*RabbitMQ*.
.. code:: text
* In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure *RabbitMQ* message queue access. Replace ``RABBIT_PASS``
with the password you chose for the openstack account in
*RabbitMQ*::
[DEFAULT]
...
@@ -362,11 +316,9 @@ for your environment.
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
#. In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace ``CINDER_PASS`` with the
password you chose for the cinder user in the Identity service.
.. code:: text
* In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace ``CINDER_PASS`` with the
password you chose for the cinder user in the Identity service::
[DEFAULT]
...
@@ -379,23 +331,19 @@ for your environment.
admin_user = cinder
admin_password = CINDER_PASS
#. In the ``[DEFAULT]`` section, configure the ``my_ip`` option.
Replace *MANAGEMENT_INTERFACE_IP_ADDRESS* with the IP address
of the management network interface on your storage node,
typically 10.0.0.41 for the first node in the example
architecture.
.. code:: text
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option.
Replace *MANAGEMENT_INTERFACE_IP_ADDRESS* with the IP address
of the management network interface on your storage node,
typically 10.0.0.41 for the first node in the example
architecture::
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
#. In the ``[lvm]`` section, configure the LVM back end with the LVM
driver, ``cinder-volumes`` volume group, iSCSI protocol, and
appropriate iSCSI service.
.. code:: text
* In the ``[lvm]`` section, configure the LVM back end with the LVM
driver, ``cinder-volumes`` volume group, iSCSI protocol, and
appropriate iSCSI service::
[lvm]
...
@@ -404,35 +352,27 @@ for your environment.
iscsi_protocol = iscsi
iscsi_helper = tgtadm
#. In the ``[DEFAULT]`` section, enable the LVM back end:
* In the ``[DEFAULT]`` section, enable the LVM back end::
.. code:: text
[DEFAULT]
...
enabled_backends = lvm
#. In the ``[DEFAULT]`` section, configure the location of the Image
service:
.. code:: text
* In the ``[DEFAULT]`` section, configure the location of the Image
service::
[DEFAULT]
...
glance_host = controller
#. Let systemd set the correct permissions for files in /etc/cinder
#. Let systemd set the correct permissions for files in ``/etc/cinder``::
.. code:: text
# systemctl restart update-triggers.target
Finalizing installation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Restart the Block Storage volume service including its dependencies:
.. code:: text
Restart the Block Storage volume service including its dependencies::
# systemctl enable iscsid tgtd cinder-volume
# systemctl start iscsid tgtd cinder-volume
@@ -441,9 +381,7 @@ Configuring a compute node to use Block Storage
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Perform the following steps to enable a compute node to work with block
storage:
.. code:: text
storage::
# systemctl enable iscsid
# systemctl start iscsi-gen-initiatorname
@@ -1,4 +1,4 @@
OpenStack* Bundle and service summary
OpenStack* bundle and service summary
############################################################
OpenStack provides an Infrastructure-as-a-Service (IaaS) solution
+49 -130
View File
@@ -1,13 +1,13 @@
OpenStack Compute
#################
OpenStack* Compute
##################
Use OpenStack Compute to host and manage cloud computing systems.
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
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
horizontally on standard hardware and download images to launch
instances.
Install and configure controller node
@@ -24,44 +24,34 @@ create a database, service credentials, and API endpoints.
#. To create the database, complete these steps:
#. Use the database access client to connect to the database server
as the root user:
.. code-block:: console
* Use the database access client to connect to the database server
as the root user::
$ mysql -u root -p
#. Create the ``nova`` database:
.. code-block:: console
* Create the ``nova`` database::
CREATE DATABASE nova;
#. Grant proper access to the nova database. Replace ``NOVA_DBPASS``
with a suitable password.
.. code-block:: console
* Grant proper access to the nova database. Replace ``NOVA_DBPASS``
with a suitable password::
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
#. Exit the database access client.
* Exit the database access client.
#. Source the admin credentials to gain access to admin-only CLI
commands:
.. code-block:: console
commands::
$ source admin-openrc.sh
#. To create the service credentials, complete these steps:
* Create the ``nova`` user. Replace ``NOVA_PASS`` with a suitable
password.
.. code-block:: console
password::
$ openstack user create --domain default --password NOVA_PASS nova
+-----------+----------------------------------+
@@ -73,15 +63,11 @@ create a database, service credentials, and API endpoints.
| name | nova |
+-----------+----------------------------------+
* Add the ``admin`` role to the ``nova`` user:
.. code-block:: console
* Add the ``admin`` role to the ``nova`` user::
$ openstack role add --project service --user nova admin
#. Create the ``nova`` service entity:
.. code-block:: console
* Create the ``nova`` service entity::
$ openstack service create --name nova \
--description "OpenStack Compute" compute
@@ -95,9 +81,7 @@ create a database, service credentials, and API endpoints.
| type | compute |
+-------------+----------------------------------+
#. Create the Compute service API endpoints:
.. code-block:: console
#. Create the Compute service API endpoints::
$ openstack endpoint create --region RegionOne \
compute public http://controller:8774/v2/%\(tenant_id\)s
@@ -152,23 +136,17 @@ Installing and configuring the Compute controller components
To install and configure the Compute controller components:
#. Install OpenStack Compute Controller bundle:
.. code-block:: console
#. Install OpenStack Compute Controller bundle::
# clr_bundle_add openstack-compute-controller
#. Custom configurations will be located at ``/etc/nova``.
* Create ``/etc/nova directory``.
.. code-block:: console
* Create ``/etc/nova directory``::
# mkdir /etc/nova
* Create empty nova configuration file ``/etc/nova/nova.conf``.
.. code-block:: console
* Create empty nova configuration file ``/etc/nova/nova.conf``::
# touch /etc/nova/nova.conf
@@ -176,27 +154,20 @@ To install and configure the Compute controller components:
actions:
* In the ``[database]`` section, configure database access. Replace
``NOVA_DBPASS`` with the password you chose for the Compute
database.
.. code-block:: ini
``NOVA_DBPASS`` with the password you chose for the Compute database::
[database]
...
connection=mysql://nova:NOVA_DBPASS@controller/nova
* In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure ``RabbitMQ`` message queue access. Replace ``RABBIT_PASS``
with the password you chose for the guest account in RabbitMQ.
.. code-block:: ini
configure ``RabbitMQ`` message queue access. Replace ``RABBIT_PASS``
with the password you chose for the guest account in RabbitMQ::
[DEFAULT]
...
rpc_backend = rabbit
.. code-block:: console
[oslo_messaging_rabbit]
...
rabbit_host = controller
@@ -204,10 +175,8 @@ To install and configure the Compute controller components:
rabbit_password = RABBIT_PASS
* In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace ``NOVA_PASS`` with the
password you chose for the nova user in the Identity service.
.. code-block:: ini
configure Identity service access. Replace ``NOVA_PASS`` with the
password you chose for the nova user in the Identity service::
[DEFAULT]
...
@@ -226,17 +195,13 @@ To install and configure the Compute controller components:
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option to
use the management interface IP address of the controller node:
.. code-block:: ini
use the management interface IP address of the controller node::
[DEFAULT]
...
my_ip = 10.0.0.11
* In the ``[DEFAULT]`` section, enable support for the Networking service:
.. code-block:: ini
* In the ``[DEFAULT]`` section, enable support for the Networking service::
[DEFAULT]
...
@@ -246,9 +211,7 @@ To install and configure the Compute controller components:
firewall_driver = nova.virt.firewall.NoopFirewallDriver
* In the ``[vnc]`` section, configure the VNC proxy to use the
management interface IP address of the controller node:
.. code-block:: ini
management interface IP address of the controller node::
[vnc]
...
@@ -256,23 +219,17 @@ To install and configure the Compute controller components:
vncserver_proxyclient_address = 10.0.0.11
* In the ``[glance]`` section, configure the location of the
Image Service:
.. code-block:: ini
Image Service::
[glance]
...
host = controller
#. Let systemd set the correct permissions for files in ``/etc/nova``.
.. code-block:: console
#. Let systemd set the correct permissions for files in ``/etc/nova``::
# systemctl restart update-triggers.target
#. Populate the Compute database:
.. code-block:: console
#. Populate the Compute database::
su -s /bin/sh -c "nova-manage db sync" nova
@@ -282,9 +239,7 @@ Finalizing Compute installation
Complete the following steps to finalize Compute installation:
#. Start the Compute Service services and configure them to start
when the system boots:
.. code-block:: console
when the system boots::
# systemctl enable uwsgi@nova-api.socket \
nova-cert.service nova-consoleauth.service \
@@ -306,23 +261,17 @@ virtual machines.
Install and configure components
--------------------------------
#. Install OpenStack Compute bundle:
.. code-block:: console
#. Install OpenStack Compute bundle::
# clr_bundle_add openstack-compute
#. Custom configurations will be located at ``/etc/nova``.
* Create ``/etc/nova`` directory.
.. code-block:: console
* Create ``/etc/nova`` directory::
# mkdir /etc/nova
* Create empty nova configuration file ``/etc/nova/nova.conf``.
.. code-block:: console
* Create empty nova configuration file ``/etc/nova/nova.conf``::
# touch /etc/nova/nova.conf
@@ -331,16 +280,12 @@ Install and configure components
* In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure RabbitMQ message broker access. Replace ``RABBIT_PASS``
with the password you chose for the ``openstack`` account in ``RabbitMQ``.
.. code-block:: ini
with the password you chose for the ``openstack`` account in ``RabbitMQ``::
[DEFAULT]
...
rpc_backend = rabbit
.. code-block:: ini
[oslo_messaging_rabbit]
...
rabbit_host = controller
@@ -349,9 +294,7 @@ Install and configure components
* In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace ``NOVA_PASS`` with the
password you chose for the nova user in the Identity service.
.. code-block:: console
password you chose for the nova user in the Identity service::
[DEFAULT]
...
@@ -371,17 +314,13 @@ Install and configure components
* In the ``[DEFAULT]`` section, configure the ``my_ip`` option.
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 example architecture.
.. code-block:: ini
``10.0.0.31`` for the first node in the example architecture::
[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
* In the ``[DEFAULT]`` section, enable support for the Networking service:
.. code-block:: ini
* In the ``[DEFAULT]`` section, enable support for the Networking service::
[DEFAULT]
...
@@ -390,8 +329,7 @@ Install and configure components
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
* In the ``[vnc]`` section, enable and configure remote console access:
.. code-block:: ini
* In the ``[vnc]`` section, enable and configure remote console access::
[vnc]
...
@@ -407,9 +345,7 @@ Install and configure components
this compute node.
* In the ``[glance]`` section, configure the location of the
Image Service:
.. code-block:: ini
Image Service::
[glance]
...
@@ -419,9 +355,7 @@ Finalize compute node installation
----------------------------------
#. Determine whether your compute node supports hardware acceleration
for virtual machines:
.. code-block:: console
for virtual machines::
$ egrep -c '(vmx|svm)' /proc/cpuinfo
@@ -434,18 +368,14 @@ Finalize compute node installation
to use QEMU instead of KVM.
* Edit the ``[libvirt]`` section in the ``/etc/nova/nova.conf`` file
as follows:
.. code-block:: ini
as follows::
[libvirt]
...
virt_type = qemu
#. Start the Compute service including its dependencies and configure
them to start automatically when the system boots:
.. code-block:: console
them to start automatically when the system boots::
# systemctl enable libvirtd.service \
nova-compute.service
@@ -456,21 +386,15 @@ Verify operation
~~~~~~~~~~~~~~~~
Verify operation of the Compute service.
.. note::
Perform these commands on the controller node.
*Note:* Perform these commands on the controller node.
#. Source the ``admin`` credentials to gain access to
admin-only CLI commands:
.. code-block:: console
admin-only CLI commands::
$ source admin-openrc.sh
#. List service components to verify successful launch and
registration of each process:
.. code-block:: console
registration of each process::
$ nova service-list
+----+------------------+------------+----------+---------+-------+--------------+-----------------+
@@ -482,10 +406,9 @@ Verify operation of the Compute service.
| 4 | nova-cert | controller | internal | enabled | up | 2014-09-16.. | - |
| 5 | nova-compute | compute1 | nova | enabled | up | 2014-09-16.. | - |
+----+------------------+------------+----------+---------+-------+--------------+-----------------+
#. List API endpoints in the Identity service to verify connectivity
with the Identity service:
.. code-block:: console
#. List API endpoints in the Identity service to verify connectivity
with the Identity service::
$ nova endpoints
+-----------+------------------------------------------------------------+
@@ -572,14 +495,10 @@ Verify operation of the Compute service.
| url | http://controller:35357/v2.0 |
+-----------+----------------------------------+
.. note::
Ignore any warnings in this output.
*Note:* Ignore any warnings in this output.
#. List images in the Image service catalog to verify connectivity
with the Image service:
.. code-block:: console
with the Image service::
$ nova image-list
+--------------------------------------+--------+--------+--------+
+5 -9
View File
@@ -1,7 +1,7 @@
OpenStack* dashboard
OpenStack* Dashboard
############################################################
The OpenStack dashboard, also known as Horizon, is a web-based interface
The OpenStack Dashboard, also known as Horizon, is a web-based interface
for cloud administrators to manage various OpenStack resources and
services. This dashboard enables interaction with the OpenStack Compute
cloud controller via OpenStack APIs.
@@ -17,17 +17,13 @@ including identity, image service, compute, and either networking
Environments with stand-alone services, such as Object Storage, cannot
use the dashboard.
To get started with OpenStack dashboard services:
To get started with OpenStack Dashboard services:
#. Install the OpenStack dashboard bundle:
#. Install the OpenStack Dashboard bundle::
.. code:: text
# clr_bundle_add openstack-dashboard
#. Enable and start the memcached service and the httpd server:
#. Enable and start the memcached service and the httpd server::
.. code:: text
# systemctl enable httpd memcached
# systemctl restart httpd memcached
+8 -17
View File
@@ -1,21 +1,18 @@
Database
########
Most OpenStack services use an SQL database to store information. The
Most OpenStack* services use an SQL database to store information. The
database typically runs on the controller node. The procedures in this
guide use MariaDB.
Install and configure the database server
-----------------------------------------
#. Install MariaDB bundle:
.. code-block:: console
#. Install MariaDB bundle::
# clr_bundle_add database-mariadb
#. Create the ``/etc/mariadb/`` folder and the ``/etc/mariadb/openstack.cnf`` file.
.. code-block:: console
#. Create the ``/etc/mariadb/`` folder and the ``/etc/mariadb/openstack.cnf`` file::
# mkdir /etc/mariadb
# touch /etc/mariadb/openstack.cnf
@@ -23,9 +20,7 @@ Install and configure the database server
#. Add the ``[mysqld]`` section, set the bind-address key to the
management IP address of the controller node to enable access by
other nodes via the management network and enable useful options for
UTF-8 character set:
.. code:: console
UTF-8 character set::
[mysqld]
bind-address = 10.0.0.11
@@ -41,16 +36,12 @@ Finalizing database installation
Complete the following steps to finalize database installation:
#. Start the database service and configure it to start when the system
boots:
.. code:: console
boots::
# systemctl enable mariadb.service
# systemctl start mariadb.service
2. Secure the database service including choosing a suitable password
for the root account:
.. code:: console
#. Secure the database service including choosing a suitable password
for the root account::
# mysql_secure_installation
+8 -18
View File
@@ -1,7 +1,7 @@
Message queue
#############
OpenStack uses a `message queue` to coordinate operations and
OpenStack* uses a `message queue` to coordinate operations and
status information among services. The message queue service typically
runs on the controller node. OpenStack supports several message queue
services. This guide implements the RabbitMQ message queue service.
@@ -9,11 +9,9 @@ services. This guide implements the RabbitMQ message queue service.
Install the message queue service
---------------------------------
#. Install the message queue bundle:
#. Install the message queue bundle::
.. code-block:: console
# clr_bundle_add message-broker-rabbitmq
# clr_bundle_add message-broker-rabbitmq
Configuring the message broker service
--------------------------------------
@@ -21,33 +19,25 @@ Configuring the message broker service
Complete the following steps to configure the message broker service:
#. Message broker service needs to be able to resolve to itself. Add the
following line to ``/etc/hosts``
.. code:: console
following line to ``/etc/hosts``::
127.0.0.1 controller
#. Start the message broker service and configure it to start when the
system boots:
.. code:: console
system boots::
# systemctl enable rabbitmq-server.service
# systemctl start rabbitmq-server.service
#. Add the OpenStack user:
.. code:: console
#. Add the OpenStack user::
# rabbitmqctl add_user openstack RABBIT_PASS
Creating user openstack ...
...done.
Replace ``RABBIT_PASS`` with a suitable password.
Replace ``RABBIT_PASS`` with a suitable password.
#. Permit configuration, write, and read access for the OpenStack user:
.. code:: console
#. Permit configuration, write, and read access for the OpenStack user::
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
+7 -15
View File
@@ -1,12 +1,12 @@
Create OpenStack client environment scripts
###########################################
Create OpenStack* client environment scripts
############################################
The previous section used a combination of environment variables and
command options to interact with the Identity service via the
``openstack`` client. To increase efficiency of client operations,
OpenStack supports simple client environment scripts also known as
OpenRC files. These scripts typically contain common options for
all clients, but also support unique options. For more information, see the
all clients but also support unique options. For more information, see the
`OpenStack User Guide <http://docs.openstack.org/user-guide/common/
cli_set_environment_variables_using_openstack_rc.html>`__.
@@ -17,9 +17,7 @@ Create client environment scripts for the ``admin`` and ``demo``
projects and users. Future portions of this guide reference these
scripts to load appropriate credentials for client operations.
#. Edit the ``admin-openrc.sh`` file and add the following content:
.. code-block:: bash
#. Edit the ``admin-openrc.sh`` file and add the following content::
export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
@@ -33,9 +31,7 @@ scripts to load appropriate credentials for client operations.
Replace ``ADMIN_PASS`` with the password you chose
for the ``admin`` user in the Identity service.
#. Edit the ``demo-openrc.sh`` file and add the following content:
.. code-block:: bash
#. Edit the ``demo-openrc.sh`` file and add the following content::
export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
@@ -58,15 +54,11 @@ For example:
#. Load the ``admin-openrc.sh`` file to populate
environment variables with the location of the Identity service
and the ``admin`` project and user credentials:
.. code-block:: console
and the ``admin`` project and user credentials::
$ source admin-openrc.sh
#. Request an authentication token:
.. code-block:: console
#. Request an authentication token::
$ openstack token issue
+------------+----------------------------------+
+100 -164
View File
@@ -1,5 +1,5 @@
OpenStack Identity
############################################################
OpenStack* Identity
###################
The OpenStack Identity service provides a single point of
integration for managing authentication, authorization, and service catalog
@@ -31,12 +31,12 @@ The Identity service contains these components:
component that is using the Identity service. These modules
intercept service requests, extract user credentials, and send them
to the centralized server for authorization. The integration between
the middleware modules and OpenStack components uses the Python Web
the middleware modules and OpenStack components uses the Python* Web
Server Gateway Interface.
When installing OpenStack Identity service, you must register each
service in your OpenStack installation. Identity service can then track
which OpenStack services are installed, and where they are located on
which OpenStack services are installed and where they are located on
the network.
Install and configure
@@ -44,7 +44,7 @@ Install and configure
This section describes how to install and configure the OpenStack
Identity service, code-named keystone, on the controller node. For
performance, this configuration deploys the Nginx HTTP server to handle
performance, this configuration deploys the Nginx* HTTP server to handle
requests.
Prerequisites
@@ -56,21 +56,15 @@ database and an administration token.
#. To create the database, complete the following actions:
* Use the database access client to connect to the database server as the
``root`` user:
``root`` user::
.. code-block:: console
$ mysql -u root -p
$ mysql -u root -p
* Create the ``keystone`` database:
.. code-block:: console
* Create the ``keystone`` database::
CREATE DATABASE keystone;
* Grant proper access to the ``keystone`` database:
.. code-block:: console
* Grant proper access to the ``keystone`` database::
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
@@ -82,34 +76,24 @@ database and an administration token.
* Exit the database access client.
#. Generate a random value to use as the administration token during
initial configuration:
.. code-block:: console
initial configuration::
$ openssl rand -hex 10
Install and configure components
--------------------------------
#. Run the following command to install the packages:
.. code-block:: console
#. Run the following command to install the packages::
# clr_bundle_add openstack-identity
#. Custom configurations will be located at /etc/keystone/
#. Custom configurations will be located at ``/etc/keystone/``.
* Create the /etc/keystone directory:
.. code-block:: console
* Create the ``/etc/keystone`` directory::
# mkdir /etc/keystone
* Create empty keystone configuration file /etc/keystone/keystone.conf:
.. code-block:: console
* Create empty keystone configuration file ``/etc/keystone/keystone.conf``::
# touch /etc/keystone/keystone.conf
@@ -117,9 +101,7 @@ Install and configure components
actions:
* In the ``[DEFAULT]`` section, define the value of the initial
administration token:
.. code-block:: ini
administration token::
[DEFAULT]
...
@@ -128,9 +110,7 @@ Install and configure components
Replace ``ADMIN_TOKEN`` with the random value that you generated in a
previous step.
* In the ``[database]`` section, configure database access:
.. code-block:: ini
* In the ``[database]`` section, configure database access::
[database]
...
@@ -138,15 +118,11 @@ Install and configure components
Replace ``KEYSTONE_DBPASS`` with the password you chose for the database.
#. Enter the following command:
.. code:: console
#. Enter the following command::
# systemctl restart update-triggers.target
#. Populate the Identity service database:
.. code-block:: console
#. Populate the Identity service database::
# su -s /bin/sh -c "keystone-manage db_sync" keystone
@@ -154,9 +130,7 @@ Finalize the installation
-------------------------
#. Keystone is deployed as a uwsgi module. To start the Identity
service, you should enable and start the nginx service
.. code-block:: console
service, you should enable and start the nginx service::
# systemctl enable nginx uwsgi@keystone-admin.socket \
uwsgi@keystone-public.socket
@@ -182,61 +156,49 @@ Identity service URL to the `openstack` command with the ``--os-url``
parameter or set the OS_URL environment variable. This guide uses
environment variables to reduce command length.
#. Configure the authentication token:
.. code-block:: console
#. Configure the authentication token::
$ export OS_TOKEN=ADMIN_TOKEN
Replace ``ADMIN_TOKEN`` with the authentication token that you
generated before. For example:
.. code-block:: console
Replace ``ADMIN_TOKEN`` with the authentication token that you
generated before. For example::
$ export OS_TOKEN=294a4c8a8a475f9b9836
#. Configure the endpoint:
.. code:: text
#. Configure the endpoint::
$ export OS_URL=http://controller:35357/v3
#. Configure the Identity API version:
.. code-block:: console
#. Configure the Identity API version::
$ export OS_IDENTITY_API_VERSION=3
#. Install the OpenStack Python clients bundle:
.. code-block:: console
#. Install the OpenStack Python clients bundle::
# clr_bundle_add openstack-python-clients
Create the service entity and API endpoints
-------------------------------------------
#. The Identity service manages a catalog of services in your OpenStack
environment. Services use this catalog to determine the other services
available in your environment.
The Identity service manages a catalog of services in your OpenStack
environment. Services use this catalog to determine the other services
available in your environment.
Create the service entity for the Identity service:
#. Create the service entity for the Identity service::
.. code-block:: console
$ openstack service create \
--name keystone --description "OpenStack Identity" identity
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Identity |
| enabled | True |
| id | 4ddaae90388b4ebc9d252ec2252d8d10 |
| name | keystone |
| type | identity |
+-------------+----------------------------------+
$ openstack service create \
--name keystone --description "OpenStack Identity" identity
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Identity |
| enabled | True |
| id | 4ddaae90388b4ebc9d252ec2252d8d10 |
| name | keystone |
| type | identity |
+-------------+----------------------------------+
#. The Identity service manages a catalog of API endpoints associated with
The Identity service manages a catalog of API endpoints associated with
the services in your OpenStack environment. Services use this catalog to
determine how to communicate with other services in your environment.
@@ -254,57 +216,55 @@ Create the service entity and API endpoints
management network for all endpoint variations and the default
``RegionOne`` region.
Create the Identity service API endpoints:
#. Create the Identity service API endpoints::
.. code-block:: console
$ openstack endpoint create --region RegionOne \
identity public http://controller:5000/v3
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 30fff543e7dc4b7d9a0fb13791b78bf4 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 8c8c0927262a45ad9066cfe70d46892c |
| service_name | keystone |
| service_type | identity |
| url | http://controller:5000/v3 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
identity public http://controller:5000/v3
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 30fff543e7dc4b7d9a0fb13791b78bf4 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 8c8c0927262a45ad9066cfe70d46892c |
| service_name | keystone |
| service_type | identity |
| url | http://controller:5000/v3 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
identity internal http://controller:5000/v3
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 57cfa543e7dc4b712c0ab137911bc4fe |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 6f8de927262ac12f6066cfe70d99ac51 |
| service_name | keystone |
| service_type | identity |
| url | http://controller:5000/v3 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
identity internal http://controller:5000/v3
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 57cfa543e7dc4b712c0ab137911bc4fe |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 6f8de927262ac12f6066cfe70d99ac51 |
| service_name | keystone |
| service_type | identity |
| url | http://controller:5000/v3 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
identity admin http://controller:35357/v3
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 78c3dfa3e7dc44c98ab1b1379122ecb1 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 34ab3d27262ac449cba6cfe704dbc11f |
| service_name | keystone |
| service_type | identity |
| url | http://controller:35357/v3 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne \
identity admin http://controller:35357/v3
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 78c3dfa3e7dc44c98ab1b1379122ecb1 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 34ab3d27262ac449cba6cfe704dbc11f |
| service_name | keystone |
| service_type | identity |
| url | http://controller:35357/v3 |
+--------------+----------------------------------+
Creating projects, users and roles
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -314,9 +274,7 @@ Complete the following steps to create projects, users and roles:
#. Create an administrative project, user, and role for administrative
operations in your environment:
* Create the ``admin`` project:
.. code-block:: console
* Create the ``admin`` project::
$ openstack project create --domain default \
--description "Admin Project" admin
@@ -333,9 +291,7 @@ Complete the following steps to create projects, users and roles:
+-------------+----------------------------------+
* Create the ``admin`` user. Replace ``ADMIN_PASS`` with a suitable
password and ``EMAIL_ADDRESS`` with a suitable e-mail address:
.. code-block:: console
password and ``EMAIL_ADDRESS`` with a suitable e-mail address::
$ openstack user create --domain default \
--password ADMIN_PASS --email EMAIL_ADDRESS admin
@@ -349,9 +305,7 @@ Complete the following steps to create projects, users and roles:
| name | admin |
+-----------+----------------------------------+
* Create the ``admin`` role:
.. code-block:: console
* Create the ``admin`` role::
$ openstack role create admin
+-------+----------------------------------+
@@ -361,17 +315,13 @@ Complete the following steps to create projects, users and roles:
| name | admin |
+-------+----------------------------------+
* Add the ``admin`` role to the ``admin`` project and user:
.. code-block:: console
* Add the ``admin`` role to the ``admin`` project and user::
$ openstack role add --project admin --user admin admin
#. This guide uses a service project that contains a unique user for each
service that you add to your environment. Create the ``service``
project:
.. code-block:: console
project::
$ openstack project create --domain default \
--description "Service Project" service
@@ -390,9 +340,7 @@ Complete the following steps to create projects, users and roles:
#. Regular (non-admin) tasks should use an unprivileged project and user.
As an example, this guide creates the ``demo`` project and user.
* Create the ``demo`` project:
.. code-block:: console
* Create the ``demo`` project::
$ openstack project create --domain default \
--description "Demo Project" demo
@@ -410,9 +358,7 @@ Complete the following steps to create projects, users and roles:
* Create the ``demo`` user. Replace ``DEMO_PASS``
with a suitable password and ``EMAIL_ADDRESS`` with a suitable
e-mail address:
.. code-block:: console
e-mail address::
$ openstack user create --domain default \
--password DEMO_PASS --email EMAIL_ADDRESS demo
@@ -426,9 +372,7 @@ Complete the following steps to create projects, users and roles:
| name | demo |
+-----------+----------------------------------+
* Create the ``user`` role:
.. code-block:: console
* Create the ``user`` role::
$ openstack role create user
+-------+----------------------------------+
@@ -438,9 +382,7 @@ Complete the following steps to create projects, users and roles:
| name | user |
+-------+----------------------------------+
* Add the ``user`` role to the ``demo`` project and user:
.. code-block:: console
* Add the ``user`` role to the ``demo`` project and user::
$ openstack role add --project demo --user demo user
@@ -451,19 +393,15 @@ Verify operation of the Identity service before installing other
services.
#. For security reasons, remove the admin_token value in
/etc/keystone/keystone.conf:
``/etc/keystone/keystone.conf``:
Edit the ``[DEFAULT]`` section and remove ``admin_token``.
#. Unset the temporary ``OS_TOKEN`` and ``OS_URL`` environment variables:
.. code-block:: console
#. Unset the temporary ``OS_TOKEN`` and ``OS_URL`` environment variables::
$ unset OS_TOKEN OS_URL
#. As the ``admin`` user, request an authentication token:
.. code-block:: console
#. As the ``admin`` user, request an authentication token::
$ openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-id default --os-user-domain-id default \
@@ -479,9 +417,7 @@ services.
| user_id | 4d411f2291f34941b30eef9bd797505a |
+------------+----------------------------------+
#. As the ``demo`` user, request an authentication token:
.. code-block:: console
#. As the ``demo`` user, request an authentication token::
$ openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-id default --os-user-domain-id default \
+52 -100
View File
@@ -1,5 +1,5 @@
OpenStack Image
###############
OpenStack* Image
################
The OpenStack Image service (glance) enables users to discover,
register, and retrieve virtual machine images. It offers a
@@ -9,20 +9,18 @@ You can store virtual machine images made available through
the Image service in a variety of locations, from simple file
systems to object-storage systems like OpenStack Object Storage.
.. important::
**Important:** For simplicity, this guide describes configuring the Image service to
use the ``file`` back end, which uploads and stores in a
directory on the controller node hosting the Image service. By
default, this directory is ``/var/lib/glance/images/``.
For simplicity, this guide describes configuring the Image service to
use the ``file`` back end, which uploads and stores in a
directory on the controller node hosting the Image service. By
default, this directory is ``/var/lib/glance/images/``.
Before you proceed, ensure that the controller node has at least
several gigabytes of space available in this directory.
Before you proceed, ensure that the controller node has at least
several gigabytes of space available in this directory.
For information on requirements for other back ends, see
`Configuration Reference <http://docs.openstack.org/liberty/
config-reference/content/
ch_configuring-openstack-image-service.html>`__.
For information on requirements for other back ends, see
`Configuration Reference <http://docs.openstack.org/liberty/
config-reference/content/
ch_configuring-openstack-image-service.html>`_.
Install and configure the Image Service
---------------------------------------
@@ -39,44 +37,34 @@ create a database, service credentials, and API endpoints.
#. To create the database, complete these steps:
* Use the database access client to connect to the database
server as the ``root`` user:
.. code-block:: console
* Use the database access client to connect to the database
server as the ``root`` user::
$ mysql -u root -p
* Create the ``glance`` database:
.. code-block:: console
* Create the ``glance`` database::
CREATE DATABASE glance;
* Grant proper access to the ``glance`` database:
.. code-block:: console
* Grant proper access to the ``glance`` database::
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'GLANCE_DBPASS';
Replace ``GLANCE_DBPASS`` with a suitable password.
Replace ``GLANCE_DBPASS`` with a suitable password.
* Exit the database access client.
* Exit the database access client.
#. Source the ``admin`` credentials to gain access to
admin-only CLI commands:
.. code-block:: console
admin-only CLI commands::
$ source admin-openrc.sh
#. To create the service credentials, complete these steps:
* Create the ``glance`` user. Replace ``GLANCE_PASS`` with a suitable
password.
.. code-block:: console
* Create the ``glance`` user. Replace ``GLANCE_PASS`` with a suitable
password::
$ openstack user create --domain default --password GLANCE_PASS glance
+-----------+----------------------------------+
@@ -88,16 +76,12 @@ create a database, service credentials, and API endpoints.
| name | glance |
+-----------+----------------------------------+
* Add the ``admin`` role to the ``glance`` user and
``service`` project:
.. code-block:: console
* Add the ``admin`` role to the ``glance`` user and
``service`` project::
$ openstack role add --project service --user glance admin
* Create the ``glance`` service entity:
.. code-block:: console
* Create the ``glance`` service entity::
$ openstack service create --name glance \
--description "OpenStack Image service" image
@@ -111,9 +95,7 @@ create a database, service credentials, and API endpoints.
| type | image |
+-------------+----------------------------------+
#. Create the Image service API endpoints:
.. code-block:: console
#. Create the Image service API endpoints::
$ openstack endpoint create --region RegionOne \
image public http://controller:9292
@@ -166,45 +148,35 @@ create a database, service credentials, and API endpoints.
Install and configure components
--------------------------------
#. Install OpenStack Image bundle:
.. code:: console
#. Install OpenStack Image bundle::
# clr_bundle_add openstack-image
#. configurations will be located at ``/etc/glance``
#. configurations will be located at ``/etc/glance``.
* Create ``/etc/glance`` directory:
.. code:: console
* Create ``/etc/glance`` directory::
# mkdir /etc/glance
* Create empty configuration files ``/etc/glance/glance-api.conf``
and ``/etc/glance/glance-registry.conf``:
.. code:: console
* Create empty configuration files ``/etc/glance/glance-api.conf``
and ``/etc/glance/glance-registry.conf``::
# touch /etc/glance/glance-{api,registry}.conf
#. Edit the ``/etc/glance/glance-api.conf`` file and complete
the following actions:
* In the ``[database]`` section, configure database access:
.. code-block:: ini
* In the ``[database]`` section, configure database access::
[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance
Replace ``GLANCE_DBPASS`` with the password you chose for the
Image service database.
Replace ``GLANCE_DBPASS`` with the password you chose for the
Image service database.
* In the ``[keystone_authtoken]`` section, configure Identity
service access:
.. code-block:: ini
* In the ``[keystone_authtoken]`` section, configure Identity
service access::
[keystone_authtoken]
...
@@ -217,27 +189,23 @@ Install and configure components
username = glance
password = GLANCE_PASS
Replace ``GLANCE_PASS`` with the password you chose for the
``glance`` user in the Identity service.
Replace ``GLANCE_PASS`` with the password you chose for the
``glance`` user in the Identity service.
#. Edit the ``/etc/glance/glance-registry.conf`` file and
complete the following actions:
* In the ``[database]`` section, configure database access:
.. code-block:: ini
* In the ``[database]`` section, configure database access::
[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance
Replace ``GLANCE_DBPASS`` with the password you chose for the
Image service database.
Replace ``GLANCE_DBPASS`` with the password you chose for the
Image service database.
* In the ``[keystone_authtoken]`` section,configure Identity
service access:
.. code-block:: ini
* In the ``[keystone_authtoken]`` section, configure Identity
service access::
[keystone_authtoken]
...
@@ -250,18 +218,14 @@ Install and configure components
username = glance
password = GLANCE_PASS
Replace ``GLANCE_PASS`` with the password you chose for the
``glance`` user in the Identity service.
Replace ``GLANCE_PASS`` with the password you chose for the
``glance`` user in the Identity service.
#. Let systemd set the correct permissions for files in ``/etc/glance``.
.. code:: console
#. Let systemd set the correct permissions for files in ``/etc/glance``::
# systemctl restart update-triggers.target
#. Populate the Image Service database:
.. code:: console
#. Populate the Image Service database::
# su -s /bin/sh -c "glance-manage db_sync" glance
@@ -269,9 +233,7 @@ Finalize installation
---------------------
#. Start the Image Service services and configure them to start when the
system boots:
.. code:: console
system boots::
# systemctl enable glance-api.service glance-registry.service
# systemctl start glance-api.service glance-registry.service
@@ -291,31 +253,23 @@ For information about how to manage images, see the
<http://docs.openstack.org/user-guide/common/cli_manage_images.html>`__.
#. In each client environment script, configure the Image service
client to use API version 2.0:
.. code-block:: console
client to use API version 2.0::
$ echo "export OS_IMAGE_API_VERSION=2" \
| tee -a admin-openrc.sh demo-openrc.sh
#. Source the ``admin`` credentials to gain access to
admin-only CLI commands:
.. code-block:: console
admin-only CLI commands::
$ source admin-openrc.sh
#. Download the source image:
.. code-block:: console
#. Download the source image::
$ curl -Ok http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
#. Upload the image to the Image service using the
`QCOW2` disk format, `bare` container format, and
public visibility so all projects can access it:
.. code-block:: console
public visibility so all projects can access it::
$ openstack image create cirros --file cirros-0.3.4-x86_64-disk.img \
--disk-format qcow2 --container-format bare --public
@@ -342,9 +296,7 @@ For information about how to manage images, see the
| visibility | public |
+------------------+------------------------------------------------------+
#. Confirm upload of the image and validate attributes:
.. code-block:: console
#. Confirm upload of the image and validate attributes::
$ openstack image list
+--------------------------------------+--------+
+15
View File
@@ -5,3 +5,18 @@ Note: This article walks through an OpenStack MVP installation by using
bundles available for Clear Linux* OS for Intel® Architecture. The sample
configuration files that are included would likely require modification
for your environment.
To install, continue with the following topics:
* `Database <openstack_environment-database.html>`_
* `Message queue <openstack_environment-messaging.html>`_
* `OpenStack Identity <openstack_identity.html>`_
* `Create OpenStack client environment scripts <openstack_identity-openrc.html>`_
* `OpenStack Image <openstack_image.html>`_
* `OpenStack Compute <openstack_compute.html>`_
* `OpenStack Block Storage <openstack_block_storage.html>`_
* `OpenStack Dashboard <openstack_dashboard.html>`_
* `OpenStack Networking <openstack_networking.html>`_
* `OpenStack Orchestration <openstack_orchestration.html>`_
* `OpenStack Telemetry <openstack_telemetry.html>`_
* `OpenStack Object Storage <openstack_object_storage.html>`_
+39 -93
View File
@@ -1,4 +1,4 @@
OpenStack networking
OpenStack* Networking
############################################################
OpenStack* Networking allows you to create and attach interface devices
@@ -17,44 +17,34 @@ database, service credentials, and an API endpoint.
#. Create the database:
#. Use the database access client to connect to the database server
as the ``root`` user:
.. code:: text
* Use the database access client to connect to the database server
as the ``root`` user::
$ mysql -u root -p
#. Create the ``neutron`` database:
* Create the ``neutron`` database::
.. code:: text
CREATE DATABASE neutron;
#. Grant proper access to the ``neutron`` database. Replace
*``NEUTRON_DBPASS``* with a suitable password.
.. code:: text
* Grant proper access to the ``neutron`` database. Replace
*``NEUTRON_DBPASS``* with a suitable password::
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
IDENTIFIED BY 'NEUTRON_DBPASS';
#. Exit the database access client.
* Exit the database access client.
#. Source the ``admin`` credentials to gain access to admin-only CLI
commands:
.. code:: text
commands::
$ source admin-openrc.sh
#. To create the service credentials, complete these steps:
#. Create the ``neutron`` user:
* Create the ``neutron`` user::
.. code:: text
$ openstack user create --password-prompt neutron
User Password:
Repeat User Password:
@@ -68,10 +58,8 @@ database, service credentials, and an API endpoint.
| username | neutron |
+----------+----------------------------------+
#. Add the ``admin`` role to the ``neutron`` user:
* Add the ``admin`` role to the ``neutron`` user::
.. code:: text
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
@@ -79,10 +67,8 @@ database, service credentials, and an API endpoint.
| name | admin |
+-------+----------------------------------+
#. Create the ``neutron`` service entity:
* Create the ``neutron`` service entity::
.. code:: text
$ openstack service create --name neutron \
--description "OpenStack Networking" network
+-------------+----------------------------------+
@@ -95,10 +81,8 @@ database, service credentials, and an API endpoint.
| type | network |
+-------------+----------------------------------+
#. Create the Networking service API endpoint:
#. Create the Networking service API endpoint::
.. code:: text
--publicurl http://controller:9696 \
--adminurl http://controller:9696 \
--internalurl http://controller:9696 \
@@ -122,10 +106,8 @@ Installing the Networking components
Complete the following step to install the Networking components:
- Install OpenStack networking bundle:
- Install OpenStack networking bundle::
.. code:: text
# clr_bundle_add openstack-network
Configuring the Networking server component
@@ -137,27 +119,21 @@ The Networking server component configuration includes the database,
authentication mechanism, message queue, topology change notifications,
and plug-in.
Edit the ``/etc/neutron/neutron.conf ``file:
Edit the ``/etc/neutron/neutron.conf `` file:
#. Custom configurations will be located at ``/etc/neutron``.
#. Create /etc/neutron directory:
* Create /etc/neutron directory::
.. code:: text
$ mkdir /etc/neutron
#. Create empty neutron configuration
file:
.. code:: text
* Create empty neutron configuration
file::
$ touch /etc/neutron/neutron.conf
#. In the ``[database]`` section, configure database access. Replace
*``NEUTRON_DBPASS``* with the password you chose for the database.
.. code:: text
*NEUTRON_DBPASS* with the password you chose for the database::
[database]
...
@@ -166,9 +142,7 @@ Edit the ``/etc/neutron/neutron.conf ``file:
#. In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure RabbitMQ message queue access. Replace *``RABBIT_PASS``*
with the password you chose for the ``openstack`` account in
RabbitMQ.
.. code:: text
RabbitMQ::
[DEFAULT]
...
@@ -181,9 +155,7 @@ Edit the ``/etc/neutron/neutron.conf ``file:
#. In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections, configure
Identity service access. Replace *``NEUTRON_PASS``* with the password
you chose for the ``neutron`` user in the Identity service.
.. code:: text
you chose for the ``neutron`` user in the Identity service::
[DEFAULT]
...
@@ -200,9 +172,7 @@ Edit the ``/etc/neutron/neutron.conf ``file:
password = NEUTRON_PASS
#. In the ``[DEFAULT]`` section, enable the Modular Layer 2 (ML2)
plug-in, router service, and overlapping IP addresses:
.. code:: text
plug-in, router service, and overlapping IP addresses::
[DEFAULT]
...
@@ -213,9 +183,7 @@ Edit the ``/etc/neutron/neutron.conf ``file:
#. In the ``[DEFAULT]`` and ``[nova]`` sections, configure Networking to
notify Compute of network topology changes. Replace ``NOVA_PASS``
with the password you chose for the ``nova`` user in the Identity
service.
.. code:: text
service::
[DEFAULT]
...
@@ -241,20 +209,16 @@ the virtual networking framework for instances. However, the controller
node does not need the OVS components because it does not handle
instance network traffic.
#. Custom configuration for ML2 plug-in will be stored in ``/etc/neutron/plugins/ml2``.
#. Custom configuration for ML2 plug-in will be stored in ``/etc/neutron/plugins/ml2``::
.. code:: text
mkdir -p /etc/neutron/plugins/ml2
touch /etc/neutron.plugins/ml2/ml2_conf.ini
#. Edit the ``/etc/neutron/plugins/ml2/ml2_conf.ini`` file as follows:
#. In the ``[ml2]`` section, enable the flat, VLAN, generic routing
encapsulation (GRE), and virtual extensible LAN (VXLAN) network
type drivers, GRE tenant networks, and the OVS mechanism driver:
.. code:: text
* In the ``[ml2]`` section, enable the flat, VLAN, generic routing
encapsulation (GRE), and virtual extensible LAN (VXLAN) network
type drivers, GRE tenant networks, and the OVS mechanism driver::
[ml2]
...
@@ -262,19 +226,15 @@ instance network traffic.
tenant_network_types = gre
mechanism_drivers = openvswitch
#. In the ``[ml2_type_gre]`` section, configure the tunnel identifier
(id) range:
* In the ``[ml2_type_gre]`` section, configure the tunnel identifier
(id) range::
.. code:: text
[ml2_type_gre]
...
tunnel_id_ranges = 1:1000
#. In the ``[securitygroup]`` section, enable security groups, enable
ipset, and configure the OVS iptables firewall driver:
.. code:: text
* In the ``[securitygroup]`` section, enable security groups, enable
ipset, and configure the OVS iptables firewall driver::
[securitygroup]
...
@@ -292,10 +252,8 @@ Networking.
#. Edit the ``/etc/nova/nova.conf`` file on the controller node as
follows:
#. In the ``[DEFAULT]`` section, configure the APIs and drivers:
* In the ``[DEFAULT]`` section, configure the APIs and drivers::
.. code:: text
[DEFAULT]
...
network_api_class = nova.network.neutronv2.api.API
@@ -303,11 +261,9 @@ Networking.
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
#. In the ``[neutron]`` section, configure access
parameters. Replace *NEUTRON_PASS* with the password you
chose for the ``neutron`` user in the Identity service.
.. code:: text
* In the ``[neutron]`` section, configure access
parameters. Replace *NEUTRON_PASS* with the password you
chose for the ``neutron`` user in the Identity service::
[neutron]
...
@@ -324,36 +280,26 @@ Finalizing installation
#. The Networking service initialization scripts expect a symbolic link
``/etc/neutron/plugin.ini`` pointing to the ML2 plug-in configuration
file, ``/etc/neutron/plugins/ml2/ml2_conf.ini``. If this symbolic
link does not exist, create it using the following command:
.. code:: text
link does not exist, create it using the following command::
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
2. Populate the database:
#. Populate the database::
.. code:: text
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
3. Let ``systemd`` set the correct permissions for files in ``/etc/neutron``.
.. code:: text
#. Let ``systemd`` set the correct permissions for files in ``/etc/neutron``::
# systemctl restart update-triggers.target
#. Restart the Compute services:
#. Restart the Compute services::
.. code:: text
# systemctl restart nova-api.service nova-scheduler.service \
nova-conductor.service
#. Start the Networking service and configure it to start when the
system boots:
.. code:: text
system boots::
# systemctl enable neutron-server.service
# systemctl start neutron-server.service
+48 -49
View File
@@ -1,4 +1,4 @@
OpenStack* object storage
OpenStack* Object Storage
#########################
Install and configure the controller node
@@ -30,7 +30,7 @@ credentials and an API endpoint.
#. To create the Identity service credentials, complete these steps:
#. Create the swift user::
* Create the swift user::
$ openstack user create --password-prompt swift
User Password:
@@ -45,7 +45,7 @@ credentials and an API endpoint.
| username | swift                            | 
+----------+----------------------------------+
#. Add the admin role to the swift user::
* Add the admin role to the swift user::
$ openstack role add --project service --user swift admin
+-------+----------------------------------+
@@ -55,7 +55,7 @@ credentials and an API endpoint.
| name  | admin                            |
+-------+----------------------------------+
#. Create the swift service entity::
* Create the swift service entity::
$ openstack service create --name swift \
--description "OpenStack Object Storage" object-store
@@ -109,30 +109,30 @@ To install and configure the controller node components
#. Edit the ``/etc/swift/proxy-server.conf`` file and complete the
following actions:
#. In the ``[pipeline:main]`` section, enable the appropriate
modules::
* In the ``[pipeline:main]`` section, enable the appropriate
modules::
[pipeline:main]
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo proxy-logging proxy-server
#. In the ``[app:proxy-server]`` section, enable automatic account
creation::
* In the ``[app:proxy-server]`` section, enable automatic account
creation::
[app:proxy-server]
...
account_autocreate = true
#. In the ``[filter:keystoneauth]`` section, configure the operator
roles::
* In the ``[filter:keystoneauth]`` section, configure the operator
roles::
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user
#. In the ``[filter:authtoken]`` section, configure Identity service
access. Replace SWIFT\_PASS with the password you chose for the
swift user in the Identity service::
* In the ``[filter:authtoken]`` section, configure Identity service
access. Replace SWIFT\_PASS with the password you chose for the
swift user in the Identity service::
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
@@ -147,8 +147,8 @@ To install and configure the controller node components
password = SWIFT_PASS
delay_auth_decision = true
#. In the ``[filter:cache]`` section, configure the memcached
location::
* In the ``[filter:cache]`` section, configure the memcached
location::
[filter:cache]
...
@@ -177,56 +177,56 @@ a separate network for replication.
#. Configure unique items on the first storage node:
#. Configure the management interface::
* Configure the management interface::
IP address: 10.0.0.51
Network mask: 255.255.255.0 (or /24)
Default gateway: 10.0.0.1
#. Set the hostname of the node to ``object1``.
* Set the hostname of the node to ``object1``.
#. Configure unique items on the second storage node:
#. Configure the management interface::
* Configure the management interface::
IP address: 10.0.0.52
Network mask: 255.255.255.0 (or /24)
Default gateway: 10.0.0.1
#. Set the hostname of the node to ``object2``.
* Set the hostname of the node to ``object2``.
#. Configure shared items on both storage nodes:
#. Copy the contents of the ``/etc/hosts`` file from the controller
node and add the following to it::
* Copy the contents of the ``/etc/hosts`` file from the controller
node and add the following to it::
# object1
10.0.0.51 object1
# object2
10.0.0.52 object2
Also add this content to the ``/etc/hosts`` file on all other nodes in your environment.
Also add this content to the ``/etc/hosts`` file on all other nodes in your environment.
#. Install the OpenStack Object Storage bundle::
* Install the OpenStack Object Storage bundle::
# clr\_bundle\_add openstack-object-storage
#. Format the ``/dev/sdb1`` and ``/dev/sdc1`` partitions as XFS::
* Format the ``/dev/sdb1`` and ``/dev/sdc1`` partitions as XFS::
# mkfs.xfs /dev/sdb1
# mkfs.xfs /dev/sdc1
#. Create the mount point directory structure::
* Create the mount point directory structure::
# mkdir -p /srv/node/sdb1
# mkdir -p /srv/node/sdc1
#. Edit the ``/etc/fstab`` file and add the following to it::
* Edit the ``/etc/fstab`` file and add the following to it::
/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
/dev/sdc1 /srv/node/sdc1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
#. Mount the devices::
* Mount the devices::
# mount /srv/node/sdb1
# mount /srv/node/sdc1
@@ -282,8 +282,8 @@ Install and configure storage node components
#. Edit the ``/etc/swift/account-server.conf`` file and complete the
following actions:
#. In the ``[DEFAULT]`` section, configure the bind IP address and
mount point directory::
* In the ``[DEFAULT]`` section, configure the bind IP address and
mount point directory::
[DEFAULT]
...
@@ -293,14 +293,14 @@ Install and configure storage node components
Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP
address of the management network on the storage node.
#. In the ``[pipeline:main]`` section, enable the appropriate
modules::
* In the ``[pipeline:main]`` section, enable the appropriate
modules::
[pipeline:main]
pipeline = healthcheck recon account-server
#. In the ``[filter:recon]`` section, configure the recon (metrics)
cache directory::
* In the ``[filter:recon]`` section, configure the recon (metrics)
cache directory::
[filter:recon]
...
@@ -309,8 +309,8 @@ Install and configure storage node components
#. Edit the ``/etc/swift/container-server.conf`` file and complete the
following actions:
#. In the ``[DEFAULT]`` section, configure the bind IP address and
mount point directory::
* In the ``[DEFAULT]`` section, configure the bind IP address and
mount point directory::
[DEFAULT]
...
@@ -320,14 +320,13 @@ Install and configure storage node components
Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP
address of the management network on the storage node.
#. In the ``[pipeline:main]`` section, enable the appropriate
modules::
* modules::
[pipeline:main]
pipeline = healthcheck recon container-server
#. In the ``[filter:recon]`` section, configure the recon (metrics)
cache directory::
* In the ``[filter:recon]`` section, configure the recon (metrics)
cache directory::
[filter:recon]
...
@@ -336,8 +335,8 @@ Install and configure storage node components
#. Edit the ``/etc/swift/object-server.conf`` file and complete the
following actions:
#. In the ``[DEFAULT]`` section, configure the bind IP address and
mount point directory::
* In the ``[DEFAULT]`` section, configure the bind IP address and
mount point directory::
[DEFAULT]
...
@@ -347,14 +346,14 @@ Install and configure storage node components
Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP
address of the management network on the storage node.
#. In the ``[pipeline:main]`` section, enable the appropriate
modules::
* In the ``[pipeline:main]`` section, enable the appropriate
modules::
[pipeline:main]
pipeline = healthcheck recon object-server
#. In the ``[filter:recon]`` section, configure the recon (metrics)
cache and lock directories::
* In the ``[filter:recon]`` section, configure the recon (metrics)
cache and lock directories::
[filter:recon]
...
@@ -567,16 +566,16 @@ Configure hashes and default storage policy
#. Edit the ``/etc/swift/swift.conf`` file and complete the following
actions:
#. In the ``[swift-hash]`` section, configure the hash path prefix and
suffix for your environment::
* In the ``[swift-hash]`` section, configure the hash path prefix and
suffix for your environment::
[swift-hash]
...
swift_hash_path_suffix = HASH_PATH_PREFIX
swift_hash_path_prefix = HASH_PATH_SUFFIX
#. In the ``[storage-policy:0]`` section, configure the default storage
policy::
* In the ``[storage-policy:0]`` section, configure the default storage
policy::
[storage-policy:0]
...
+54 -97
View File
@@ -1,4 +1,4 @@
OpenStack orchestration
OpenStack* Orchestration
############################################################
The Orchestration module provides template-based OpenStack* API calls
@@ -27,44 +27,34 @@ database, service credentials, and API endpoints.
#. To create the database, complete these steps:
#. Use the database access client to connect to the database server
as the ``root`` user:
.. code:: text
* Use the database access client to connect to the database server
as the ``root`` user::
$ mysql -u root -p
#. Create the ``heat`` database:
* Create the ``heat`` database::
.. code:: text
CREATE DATABASE heat;
#. Grant proper access to the ``heat`` database.
Replace *HEAT_DBPASS*  with a suitable password.
.. code:: text
* Grant proper access to the ``heat`` database.
Replace *HEAT_DBPASS*  with a suitable password::
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' \
IDENTIFIED BY 'HEAT_DBPASS';
GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' \
IDENTIFIED BY 'HEAT_DBPASS';
#. Exit the database access client.
* Exit the database access client.
#. Source the ``admin`` credentials to gain access to admin-only CLI
commands:
.. code:: text
commands::
$ source admin-openrc.sh
#. To create the service credentials, complete these steps:
#. Create the ``heat`` user:
* Create the ``heat`` user::
.. code:: text
$ openstack user create --password-prompt heat
User Password:
Repeat User Password:
@@ -78,10 +68,8 @@ database, service credentials, and API endpoints.
| username | heat |
+----------+----------------------------------+
#. Add the ``admin`` role to the ``heat`` user:
* Add the ``admin`` role to the ``heat`` user::
.. code:: text
$ openstack role add --project service --user heat admin
+-------+----------------------------------+
| Field | Value |
@@ -90,10 +78,8 @@ database, service credentials, and API endpoints.
| name | admin |
+-------+----------------------------------+
#. Create the ``heat_stack_owner`` role:
* Create the ``heat_stack_owner`` role::
.. code:: text
$ openstack role create heat_stack_owner
+-------+----------------------------------+
| Field | Value |
@@ -102,13 +88,11 @@ database, service credentials, and API endpoints.
| name | heat_stack_owner |
+-------+----------------------------------+
#. Add the ``heat_stack_owner`` role to the ``demo`` tenant and
user.
* Add the ``heat_stack_owner`` role to the ``demo`` tenant and
user.
Note: You must add the ``heat_stack_owner`` role to users that
manage stacks.
.. code:: text
Note: You must add the ``heat_stack_owner`` role to users that
manage stacks::
$ openstack role add --project demo --user demo heat_stack_owner
+-------+----------------------------------+
@@ -118,24 +102,23 @@ database, service credentials, and API endpoints.
| name | heat_stack_owner |
+-------+----------------------------------+
#. Create the ``heat_stack_user`` role.
* Create the ``heat_stack_user`` role.
Note: The Orchestration service automatically assigns the ``heat_stack_user`` role to users that it creates during stack deployment. By default, this role restricts API operations. To avoid conflicts, do not add this role to users with the heat_stack_owner role.
Note: The Orchestration service automatically assigns the ``heat_stack_user`` role
to users that it creates during stack deployment. By default, this role restricts 
API operations. To avoid conflicts, do not add this role to users with the 
heat_stack_owner role::
.. code:: text
$ openstack role create heat_stack_user
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | e01546b1a81c4e32a6d14a9259e60154 |
| name | heat_stack_user |
+-------+----------------------------------+
$ openstack role create heat_stack_user
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | e01546b1a81c4e32a6d14a9259e60154 |
| name | heat_stack_user |
+-------+----------------------------------+
#. Create the ``heat`` and ``heat-cfn`` service entities:
* Create the ``heat`` and ``heat-cfn`` service entities::
.. code:: text
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
@@ -157,10 +140,8 @@ database, service credentials, and API endpoints.
| type | cloudformation |
+-------------+----------------------------------+
#. Create the Orchestration service API endpoints:
#. Create the Orchestration service API endpoints::
.. code:: text
$ openstack endpoint create \
--publicurl http://controller:8004/v1/%\(tenant_id\)s \
--internalurl http://controller:8004/v1/%\(tenant_id\)s \
@@ -203,37 +184,29 @@ Installing and configuring the Orchestration components
To install and configure the Orchestration components:
#. Install OpenStack Orchestration bundle:
#. Install OpenStack Orchestration bundle::
.. code:: text
# clr_bundle_add openstack-orchestration
#. Create the ``/etc/heat/heat.conf file``.
#. Create the ``/etc/heat/heat.conf file``::
.. code:: text
# mkdir /etc/heat # touch /etc/heat/heat.conf
#. Edit the ``/etc/heat/heat.conf`` file and complete the following
actions:
#. In the ``[database]`` section, configure database access.
Replace *HEAT_DBPASS*  with the password you chose for the
Orchestration database.
.. code:: text
* In the ``[database]`` section, configure database access.
Replace *HEAT_DBPASS*  with the password you chose for the
Orchestration database::
[database]
...
connection = mysql://heat:HEAT_DBPASS@controller/heat
#. In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure RabbitMQ message queue access.
Replace *``RABBIT_PASS``*  with the password you chose for
the ``openstack`` account in RabbitMQ.
.. code:: text
* In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure RabbitMQ message queue access.
Replace *``RABBIT_PASS``*  with the password you chose for
the ``openstack`` account in RabbitMQ::
[DEFAULT]
...
@@ -244,12 +217,10 @@ To install and configure the Orchestration components:
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
#. In the ``[keystone_authtoken]`` and ``[ec2authtoken]`` sections,
configure Identity service access. Replace *HEAT_PASS*  with
the password you chose for the ``heat`` user in the Identity
service.
.. code:: text
* In the ``[keystone_authtoken]`` and ``[ec2authtoken]`` sections,
configure Identity service access. Replace *HEAT_PASS*  with
the password you chose for the ``heat`` user in the Identity
service::
[keystone_authtoken]
...
@@ -262,22 +233,18 @@ To install and configure the Orchestration components:
...
auth_uri = http://controller:5000/v2.0
#. In the ``[DEFAULT]`` section, configure the metadata and wait
condition URLs:
.. code:: text
* In the ``[DEFAULT]`` section, configure the metadata and wait
condition URLs::
[DEFAULT]
...
heat_metadata_server_url = http://controller:8000
heat_waitcondition_server_url = http://controller:8000/v1/waitcondition
#. In the ``[DEFAULT]`` section, configure information about the
heat Identity service domain. Replace  *``HEAT_DOMAIN_PASS``*
 with the password you chose for the admin user of
the ``heat`` user domain in the Identity service.
.. code:: text
* In the ``[DEFAULT]`` section, configure information about the
heat Identity service domain. Replace  *``HEAT_DOMAIN_PASS``*
 with the password you chose for the admin user of
the ``heat`` user domain in the Identity service::
[DEFAULT]
...
@@ -286,33 +253,25 @@ To install and configure the Orchestration components:
stack_user_domain_name = heat_user_domain
#. Source the ``admin`` credentials to gain access to admin-only CLI
commands:
.. code:: text
commands::
$ source admin-openrc.sh
#. Create the heat domain in Identity service.
Replace *``HEAT_DOMAIN_PASS``*  with a suitable
password.
.. code:: text
password::
$ heat-keystone-setup-domain \
--stack-user-domain-name heat_user_domain \
--stack-domain-admin heat_domain_admin \
--stack-domain-admin-password HEAT_DOMAIN_PASS
#. Let systemd set the correct permissions for files in ``/etc/heat``.
.. code:: text
#. Let systemd set the correct permissions for files in ``/etc/heat``::
# systemctl restart update-triggers.target
#. Populate the Orchestration database:
#. Populate the Orchestration database::
.. code:: text
# su -s /bin/sh -c "heat-manage db_sync" heat``
Finalizing installation
@@ -320,10 +279,8 @@ Finalizing installation
Complete this step to finalize the installation:
- Start the Orchestration services and configure them to start when the
system boots:
.. code:: text
* Start the Orchestration services and configure them to start when the
system boots::
# systemctl enable heat-api.service heat-api-cfn.service heat-engine.service
# systemctl start heat-api.service heat-api-cfn.service heat-engine.service``
+2 -6
View File
@@ -30,15 +30,11 @@ management interface on the controller node.
To configure name resolution:
#. Set the hostname of the node to ``controller``:
::
#. Set the hostname of the node to ``controller``::
# hostnamectl set-hostname controller
#. Edit the ``/etc/hosts`` file to contain the following:
::
#. Edit the ``/etc/hosts`` file to contain the following::
# controller 10.0.0.11 controller
# compute1 10.0.0.31 compute1
+34 -72
View File
@@ -1,4 +1,4 @@
OpenStack telemetry service
OpenStack* Telemetry
############################################################
Overview
@@ -28,33 +28,25 @@ Before installing and configuring the ``telemetry`` module, install
MongoDB* and create a MongoDB database, service credentials, and API
endpoint.
#. Install the MongoDB bundle:
#. Install the MongoDB bundle::
.. code:: text
# clr_bundle_add database-mongodb
#. Create the ``/etc/mongodb/`` folder and the
``/etc/mongodb/openstack.cnf`` file.
#. Configure the ``bind_ip`` key to use the management interface IP
address of the controller node.
.. code:: text
address of the controller node::
bind_ip = 10.0.0.11
#. Start the database service and configure it to start when the system
boots with the following commands:
.. code:: text
boots with the following commands::
# systemctl enable mongodb.service
# systemctl start mongodb.service
#. Create the ``ceilometer`` database. Replace *CEILOMETER_DBPASS*
with a suitable password.
.. code:: text
with a suitable password::
# mongo --host controller --eval '
db = db.getSiblingDB("ceilometer");
@@ -67,18 +59,14 @@ endpoint.
Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] }
#. Source the ``admin`` credentials to gain access to admin-only CLI
commands:
.. code:: text
commands::
$ source admin-openrc.sh
#. To create the service credentials, complete these steps:
#. Create the ``ceilometer`` user:
* Create the ``ceilometer`` user::
.. code:: text
$ openstack user create --password-prompt ceilometer
User Password:
Repeat User Password:
@@ -92,10 +80,8 @@ endpoint.
| username | ceilometer |
+----------+----------------------------------+
#. Add the ``admin`` role to the ``ceilometer`` user.
* Add the ``admin`` role to the ``ceilometer`` user::
.. code:: text
$ openstack role add --project service --user ceilometer admin
+-------+----------------------------------+
| Field | Value |
@@ -104,10 +90,8 @@ endpoint.
| name | admin |
+-------+----------------------------------+
#. Create the ``ceilometer`` service entity:
* Create the ``ceilometer`` service entity::
.. code:: text
$ openstack service create --name ceilometer \
--description "Telemetry" metering
+-------------+----------------------------------+
@@ -120,10 +104,8 @@ endpoint.
| type | metering |
+-------------+----------------------------------+
#. Create the Telemetry module API endpoint:
#. Create the Telemetry module API endpoint::
.. code:: text
$ openstack endpoint create \
--publicurl http://controller:8777 \
--internalurl http://controller:8777 \
@@ -146,54 +128,42 @@ endpoint.
Installing and configuring the Telemetry module components
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Install the OpenStack Telemetry Controller bundle:
#. Install the OpenStack Telemetry Controller bundle::
.. code:: text
# clr_bundle_add openstack-telemetry-controller
#. Generate a random value to use as the telemetry secret:
#. Generate a random value to use as the telemetry secret::
.. code:: text
$ openssl rand -hex 10
#. Custom configurations will be located at ``/etc/ceilometer``.
#. Create ``/etc/ceilometer`` directory.
* Create ``/etc/ceilometer`` directory::
.. code:: text
mkdir /etc/ceilometer
#. Create the empty ceilometer configuration file
* Create the empty ceilometer configuration file::
.. code:: text
/etc/ceilometer/ceilometer.conf
touch /etc/ceilometer/ceilometer.conf
#. Edit the following file:\ ``/etc/ceilometer/ceilometer.conf``\ Then
complete the following actions:
#. In the ``[database]`` section, configure database access. Replace
*``CEILOMETER_DBPASS``* with the password you chose for the
Telemetry module database. You must escape special characters such
as ':', '/', '+', and '@' in the connection string in accordance
with RFC2396.
.. code:: text
* In the ``[database]`` section, configure database access. Replace
*``CEILOMETER_DBPASS``* with the password you chose for the
Telemetry module database. You must escape special characters such
as ':', '/', '+', and '@' in the connection string in accordance
with RFC2396::
[database]
...
connection = mongodb://ceilometer:CEILOMETER_DBPASS@controller:27017/ceilometer
#. In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure RabbitMQ message queue access. Replace *``RABBIT_PASS``*
with the password you chose for the ``openstack`` account in
RabbitMQ.
.. code:: text
* In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections,
configure RabbitMQ message queue access. Replace *``RABBIT_PASS``*
with the password you chose for the ``openstack`` account in
RabbitMQ::
[DEFAULT]
...
@@ -203,12 +173,10 @@ Installing and configuring the Telemetry module components
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
#. In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace *``CEILOMETER_PASS``*
with the password you chose for the ``celiometer`` user in the
Identity service.
.. code:: text
* In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections,
configure Identity service access. Replace *``CEILOMETER_PASS``*
with the password you chose for the ``celiometer`` user in the
Identity service::
[DEFAULT]
...
@@ -220,11 +188,9 @@ Installing and configuring the Telemetry module components
admin_user = ceilometer
admin_password = CEILOMETER_PASS
#. In the ``[service_credentials]`` section, configure service
credentials. Replace *``CEILOMETER_PASS``* with the password you
chose for the ``ceilometer`` user in the Identity service.
.. code:: text
* In the ``[service_credentials]`` section, configure service
credentials. Replace *``CEILOMETER_PASS``* with the password you
chose for the ``ceilometer`` user in the Identity service::
[service_credentials]
...
@@ -235,11 +201,9 @@ Installing and configuring the Telemetry module components
os_endpoint_type = internalURL
os_region_name = RegionOne
#. In the ``[publisher]`` section, configure the telemetry secret.
Replace *``TELEMETRY_SECRET``* with the telemetry secret that you
generated in a previous step.
.. code:: text
* In the ``[publisher]`` section, configure the telemetry secret.
Replace *``TELEMETRY_SECRET``* with the telemetry secret that you
generated in a previous step::
[publisher]
...
@@ -248,10 +212,8 @@ Installing and configuring the Telemetry module components
Finalizing installation
~~~~~~~~~~~~~~~~~~~~~~~~
* Start the Telemetry services and configure them to start when the system boots:
* Start the Telemetry services and configure them to start when the system boots::
.. code:: text
# systemctl enable ceilometer-api.service ceilometer-agent-notification.service ceilometer-agent-central.service ceilometer-collector.service \
ceilometer-alarm-evaluator.service ceilometer-alarm-notifier.service
# systemctl start ceilometer-api.service ceilometer-agent-notification.service ceilometer-agent-central.service ceilometer-collector.service \