From c9c84c54143d7eb28ca9178379a860e22556d884 Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Mon, 2 Nov 2015 19:18:24 -0700 Subject: [PATCH] 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. --- source/gs_creating_bootable_usb.rst | 35 +-- source/openstack_block_storage.rst | 190 +++++-------- .../openstack_bundle_and_service_summary.rst | 2 +- source/openstack_compute.rst | 179 ++++-------- source/openstack_dashboard.rst | 14 +- source/openstack_environment-database.rst | 25 +- source/openstack_environment-messaging.rst | 26 +- source/openstack_identity-openrc.rst | 22 +- source/openstack_identity.rst | 264 +++++++----------- source/openstack_image.rst | 152 ++++------ source/openstack_installing_bundles.rst | 15 + source/openstack_networking.rst | 132 +++------ source/openstack_object_storage.rst | 97 ++++--- source/openstack_orchestration.rst | 151 ++++------ source/openstack_sys_req_and_pw_summary.rst | 8 +- source/openstack_telemetry.rst | 106 +++---- 16 files changed, 499 insertions(+), 919 deletions(-) diff --git a/source/gs_creating_bootable_usb.rst b/source/gs_creating_bootable_usb.rst index ba379d20..90f4bc74 100644 --- a/source/gs_creating_bootable_usb.rst +++ b/source/gs_creating_bootable_usb.rst @@ -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 `_. +Alternatively, you can test the OS by `running in a virtualized environment `_. 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 `_ + .. tip:: For older versions, see our `downloads page `_. @@ -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`. \ No newline at end of file +`installing Clear Linux OS for Intel Architecture as host `_. \ No newline at end of file diff --git a/source/openstack_block_storage.rst b/source/openstack_block_storage.rst index c3774a0c..d29dadea 100644 --- a/source/openstack_block_storage.rst +++ b/source/openstack_block_storage.rst @@ -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 diff --git a/source/openstack_bundle_and_service_summary.rst b/source/openstack_bundle_and_service_summary.rst index 9bac6bca..6ae67400 100644 --- a/source/openstack_bundle_and_service_summary.rst +++ b/source/openstack_bundle_and_service_summary.rst @@ -1,4 +1,4 @@ -OpenStack* Bundle and service summary +OpenStack* bundle and service summary ############################################################ OpenStack provides an Infrastructure-as-a-Service (IaaS) solution diff --git a/source/openstack_compute.rst b/source/openstack_compute.rst index bf83aa25..4e1273d2 100644 --- a/source/openstack_compute.rst +++ b/source/openstack_compute.rst @@ -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 +--------------------------------------+--------+--------+--------+ diff --git a/source/openstack_dashboard.rst b/source/openstack_dashboard.rst index 1195befb..dcdfcba9 100644 --- a/source/openstack_dashboard.rst +++ b/source/openstack_dashboard.rst @@ -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 diff --git a/source/openstack_environment-database.rst b/source/openstack_environment-database.rst index 7326e35a..84b9e017 100644 --- a/source/openstack_environment-database.rst +++ b/source/openstack_environment-database.rst @@ -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 diff --git a/source/openstack_environment-messaging.rst b/source/openstack_environment-messaging.rst index fdd24359..9f78c556 100644 --- a/source/openstack_environment-messaging.rst +++ b/source/openstack_environment-messaging.rst @@ -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 "/" ... diff --git a/source/openstack_identity-openrc.rst b/source/openstack_identity-openrc.rst index 1982779c..cea3d01e 100644 --- a/source/openstack_identity-openrc.rst +++ b/source/openstack_identity-openrc.rst @@ -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 `__. @@ -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 +------------+----------------------------------+ diff --git a/source/openstack_identity.rst b/source/openstack_identity.rst index 36f38b71..e46d7770 100644 --- a/source/openstack_identity.rst +++ b/source/openstack_identity.rst @@ -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 \ diff --git a/source/openstack_image.rst b/source/openstack_image.rst index b508e235..62fdfd99 100644 --- a/source/openstack_image.rst +++ b/source/openstack_image.rst @@ -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 `__. + For information on requirements for other back ends, see + `Configuration Reference `_. 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 `__. #. 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 +--------------------------------------+--------+ diff --git a/source/openstack_installing_bundles.rst b/source/openstack_installing_bundles.rst index 79f15b6c..2201098f 100644 --- a/source/openstack_installing_bundles.rst +++ b/source/openstack_installing_bundles.rst @@ -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 `_ +* `Message queue `_ +* `OpenStack Identity `_ +* `Create OpenStack client environment scripts `_ +* `OpenStack Image `_ +* `OpenStack Compute `_ +* `OpenStack Block Storage `_ +* `OpenStack Dashboard `_ +* `OpenStack Networking `_ +* `OpenStack Orchestration `_ +* `OpenStack Telemetry `_ +* `OpenStack Object Storage `_ \ No newline at end of file diff --git a/source/openstack_networking.rst b/source/openstack_networking.rst index 7546027b..c4c1fe97 100644 --- a/source/openstack_networking.rst +++ b/source/openstack_networking.rst @@ -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 diff --git a/source/openstack_object_storage.rst b/source/openstack_object_storage.rst index 3dd5d9e7..0c7a8ea5 100644 --- a/source/openstack_object_storage.rst +++ b/source/openstack_object_storage.rst @@ -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] ... diff --git a/source/openstack_orchestration.rst b/source/openstack_orchestration.rst index 1052e666..dc0db916 100644 --- a/source/openstack_orchestration.rst +++ b/source/openstack_orchestration.rst @@ -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`` diff --git a/source/openstack_sys_req_and_pw_summary.rst b/source/openstack_sys_req_and_pw_summary.rst index cd28ecd6..37833b14 100644 --- a/source/openstack_sys_req_and_pw_summary.rst +++ b/source/openstack_sys_req_and_pw_summary.rst @@ -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 diff --git a/source/openstack_telemetry.rst b/source/openstack_telemetry.rst index 0fb68985..39e9cd1e 100644 --- a/source/openstack_telemetry.rst +++ b/source/openstack_telemetry.rst @@ -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 \