From 2caa18bc2a1a939a88439b9d3956c54b9df54ef6 Mon Sep 17 00:00:00 2001 From: Alberto Murillo Date: Wed, 18 Nov 2015 15:38:56 -0600 Subject: [PATCH 01/15] Prefix # to commands --- source/openstack_block_storage.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/openstack_block_storage.rst b/source/openstack_block_storage.rst index 75f66027..77de7c25 100644 --- a/source/openstack_block_storage.rst +++ b/source/openstack_block_storage.rst @@ -214,12 +214,12 @@ Install and configure components * Create ``/etc/cinder`` directory:: - mkdir /etc/cinder + # mkdir /etc/cinder * Create empty cinder configuration file in ``/etc/cinder/cinder.conf``:: - touch /etc/cinder/cinder.conf + # touch /etc/cinder/cinder.conf #. Edit the ``/etc/cinder/cinder.conf`` file and complete the following actions: @@ -316,7 +316,7 @@ horizontally scale your environment with additional storage nodes. Prerequisites ------------- -#. Install the openstack block storage bundle:: +#. Install the Openstack Block Storage bundle:: # swupd bundle-add openstack-block-storage # swupd verify --fix @@ -350,8 +350,8 @@ Prerequisites ``/dev/sdb`` device and rejects all other devices:: devices { + ... filter = [ "a/sdb/", "r/.*/"] - } Install and configure components -------------------------------- @@ -435,7 +435,7 @@ Install and configure components ... glance_host = controller -#. Let systemd set the correct permissions for files in ``/etc/cinder``:: +#. Ensure files have proper ownership by running the following command:: # systemctl restart update-triggers.target From e96f671daad95b3b557aac661ff5ba3e9ad5b1c6 Mon Sep 17 00:00:00 2001 From: "Simental Magana, Marcos" Date: Wed, 18 Nov 2015 15:55:22 -0600 Subject: [PATCH 02/15] Add missing line in prerequisites section --- source/openstack_block_storage.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/source/openstack_block_storage.rst b/source/openstack_block_storage.rst index 77de7c25..1f0f2f96 100644 --- a/source/openstack_block_storage.rst +++ b/source/openstack_block_storage.rst @@ -21,6 +21,7 @@ Prerequisites: -------------- Before you install and configure the Block Storage service, you +must create a database, service credentials, and API endpoints. #. To create the database, complete these steps: From 42fbaf2d4fec156ed5427a625a5133f6d4963b1e Mon Sep 17 00:00:00 2001 From: "Munoz, Obed N" Date: Thu, 19 Nov 2015 10:32:36 -0600 Subject: [PATCH 03/15] Disable swift from official docs, it needs more testing Signed-off-by: Munoz, Obed N --- source/index.rst | 1 - source/openstack_installing_bundles.rst | 3 +-- source/openstack_telemetry.rst | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/source/index.rst b/source/index.rst index 01ffa2da..2ca3f39f 100644 --- a/source/index.rst +++ b/source/index.rst @@ -70,7 +70,6 @@ OpenStack``*`` implementation openstack_networking openstack_orchestration openstack_telemetry - openstack_object_storage openstack_supporting-database openstack_supporting-messaging diff --git a/source/openstack_installing_bundles.rst b/source/openstack_installing_bundles.rst index b19a1296..04237729 100644 --- a/source/openstack_installing_bundles.rst +++ b/source/openstack_installing_bundles.rst @@ -21,6 +21,5 @@ To install, continue with the following topics: * `OpenStack Networking `_ * `OpenStack Orchestration `_ * `OpenStack Telemetry `_ -* `OpenStack Object Storage `_ -Next topic: :ref:`openstack_supporting-database`. \ No newline at end of file +Next topic: :ref:`openstack_supporting-database`. diff --git a/source/openstack_telemetry.rst b/source/openstack_telemetry.rst index 51b6e257..4a3ad6c3 100644 --- a/source/openstack_telemetry.rst +++ b/source/openstack_telemetry.rst @@ -220,5 +220,3 @@ Finalizing installation ceilometer-alarm-evaluator.service ceilometer-alarm-notifier.service # systemctl start ceilometer-api.service ceilometer-agent-notification.service ceilometer-agent-central.service ceilometer-collector.service \ ceilometer-alarm-evaluator.service ceilometer-alarm-notifier.service - -Next topic: :ref:`openstack_object_storage`. \ No newline at end of file From 559917bd3664d5bb796a4cb6487ec2938252fda8 Mon Sep 17 00:00:00 2001 From: Alberto Murillo Date: Thu, 19 Nov 2015 10:32:56 -0600 Subject: [PATCH 04/15] Update neutron documentation --- source/openstack_networking.rst | 771 +++++++++++++++++++++++--------- 1 file changed, 568 insertions(+), 203 deletions(-) diff --git a/source/openstack_networking.rst b/source/openstack_networking.rst index 673001fa..ccce340d 100644 --- a/source/openstack_networking.rst +++ b/source/openstack_networking.rst @@ -9,7 +9,7 @@ implemented to accommodate different networking equipment and software, providing flexibility to OpenStack architecture and deployment. Installing and configuring the controller node -------------------------------------------------- +---------------------------------------------- Prerequisites ~~~~~~~~~~~~~ @@ -25,256 +25,444 @@ database, service credentials, and an API endpoint. $ mysql -u root -p * Create the ``neutron`` database:: - + CREATE DATABASE neutron; * Grant proper access to the ``neutron`` database. Replace - *``NEUTRON_DBPASS``* with a suitable password:: + *'NEUTRON_DBPASS'* with a suitable password:: GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \ - IDENTIFIED BY 'NEUTRON_DBPASS'; + IDENTIFIED BY 'NEUTRON_DBPASS'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \ - IDENTIFIED BY 'NEUTRON_DBPASS'; + IDENTIFIED BY 'NEUTRON_DBPASS'; * Exit the database access client. -#. Source the ``admin`` credentials to gain access to admin-only CLI - commands:: +#. Source the ``admin`` credentials to gain access to admin-only CLI commands:: - $ source admin-openrc.sh + $ source admin-openrc.sh #. To create the service credentials, complete these steps: * Create the ``neutron`` user:: - - $ openstack user create --password-prompt neutron - User Password: - Repeat User Password: - +----------+----------------------------------+ - | Field | Value | - +----------+----------------------------------+ - | email | None | - | enabled | True | - | id | ab67f043d9304017aaa73d692eeb4945 | - | name | neutron | - | username | neutron | - +----------+----------------------------------+ + + $ openstack user create --domain default --password-prompt neutron + User Password: + Repeat User Password: + +-----------+----------------------------------+ + | Field | Value | + +-----------+----------------------------------+ + | domain_id | default | + | enabled | True | + | id | e51ef98012974e5287d857bc709f89d0 | + | name | neutron | + +-----------+----------------------------------+ * Add the ``admin`` role to the ``neutron`` user:: - - +-------+----------------------------------+ - | Field | Value | - +-------+----------------------------------+ - | id | cd2cb9a39e874ea69e5d4b896eb16128 | - | name | admin | - +-------+----------------------------------+ + + $ openstack role add --project service --user neutron admin + + Note: This command provides no output. * Create the ``neutron`` service entity:: - - $ openstack service create --name neutron \ - --description "OpenStack Networking" network - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | OpenStack Networking | - | enabled | True | - | id | f71529314dab4a4d8eca427e701d209e | - | name | neutron | - | type | network | - +-------------+----------------------------------+ - -#. Create the Networking service API endpoint:: - - --publicurl http://controller:9696 \ - --adminurl http://controller:9696 \ - --internalurl http://controller:9696 \ - --region RegionOne \ - network - +--------------+----------------------------------+ - | Field | Value | - +--------------+----------------------------------+ - | adminurl | http://controller:9696 | - | id | 04a7d3c1de784099aaba83a8a74100b3 | - | internalurl | http://controller:9696 | - | publicurl | http://controller:9696 | - | region | RegionOne | - | service_id | f71529314dab4a4d8eca427e701d209e | - | service_name | neutron | - | service_type | network | - +--------------+----------------------------------+ + + $ openstack service create --name neutron \ + --description "OpenStack Networking" network + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | OpenStack Networking | + | enabled | True | + | id | a56bcd5695b943afba528192acceff01 | + | name | neutron | + | type | network | + +-------------+----------------------------------+ + +#. Create the Networking service API endpoints: + + * :: + + $ openstack endpoint create --region RegionOne \ + network public http://controller:9696 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 61a8b881c8654026be84c12b943e4ee3 | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | a56bcd5695b943afba528192acceff01 | + | service_name | neutron | + | service_type | network | + | url | http://controller:9696 | + +--------------+----------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + network internal http://controller:9696 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 83bf338752984e1cb5305b9a6a4b4e67 | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | a56bcd5695b943afba528192acceff01 | + | service_name | neutron | + | service_type | network | + | url | http://controller:9696 | + +--------------+----------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + network admin http://controller:9696 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 19cfff5a2e9a43298182f8785ea90414 | + | interface | admin | + | region | RegionOne | + | region_id | RegionOne | + | service_id | a56bcd5695b943afba528192acceff01 | + | service_name | neutron | + | service_type | network | + | url | http://controller:9696 | + +--------------+----------------------------------+ Installing the Networking components -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Complete the following step to install the Networking components: -- Install OpenStack networking bundle:: - - # clr_bundle_add openstack-network +#. Install OpenStack networking bundle:: + + # swupd bundle-add openstack-network + # swupd verify --fix Configuring the Networking server component -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Complete the following steps to configure the Networking server component: -The Networking server component configuration includes the database, -authentication mechanism, message queue, topology change notifications, -and plug-in. +#. Custom configurations will be located at ``/etc/neutron/``. -Edit the ``/etc/neutron/neutron.conf `` file: + * Create the ``/etc/neutron`` directory:: -#. Custom configurations will be located at ``/etc/neutron``. + # mkdir /etc/neutron - * Create /etc/neutron directory:: - - $ mkdir /etc/neutron + * Create empty neutron configuration file ``/etc/neutron/neutron.conf``:: - * Create empty neutron configuration - file:: + # touch /etc/neutron/neutron.conf - $ touch /etc/neutron/neutron.conf +#. Edit the ``/etc/neutron/neutron.conf`` file: -#. In the ``[database]`` section, configure database access. Replace - *NEUTRON_DBPASS* with the password you chose for the database:: + * In the ``[database]`` section, configure database access. Replace + *NEUTRON_DBPASS* with the password you chose for the database.:: - [database] - ... - connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron + [database] + ... + connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron -#. 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:: + * In the ``[DEFAULT]`` section, enable the Modular Layer 2 (ML2) plug-in, + router service, and overlapping IP addresses:: - [DEFAULT] - ... - rpc_backend = rabbit - [oslo_messaging_rabbit] - ... - rabbit_host = controller - rabbit_userid = openstack - rabbit_password = RABBIT_PASS - -#. 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:: + [DEFAULT] + ... + core_plugin = ml2 + service_plugins = router + allow_overlapping_ips = True - [DEFAULT] - ... - auth_strategy = keystone - [keystone_authtoken] - ... - auth_uri = http://controller:5000 - auth_url = http://controller:35357 - auth_plugin = password - project_domain_id = default - user_domain_id = default - project_name = service - username = neutron - password = NEUTRON_PASS - -#. In the ``[DEFAULT]`` section, enable the Modular Layer 2 (ML2) - plug-in, router service, and overlapping IP addresses:: + * 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] - ... - core_plugin = ml2 - service_plugins = router - allow_overlapping_ips = True + [DEFAULT] + ... + rpc_backend = rabbit -#. 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:: + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS - [DEFAULT] - ... - notify_nova_on_port_status_changes = True - notify_nova_on_port_data_changes = True - nova_url = http://controller:8774/v2 - [nova] - ... - auth_url = http://controller:35357 - auth_plugin = password - project_domain_id = default - user_domain_id = default - region_name = RegionOne - project_name = service - username = nova - password = NOVA_PASS + * 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:: + + [DEFAULT] + ... + auth_strategy = keystone + + [keystone_authtoken] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = neutron + password = NEUTRON_PASS + + * 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:: + + [DEFAULT] + ... + notify_nova_on_port_status_changes = True + notify_nova_on_port_data_changes = True + nova_url = http://controller:8774/v2 + + [nova] + ... + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + region_name = RegionOne + project_name = service + username = nova + password = NOVA_PASS Configuring the Modular Layer 2 (ML2) plug-in ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The ML2 plug-in uses the Open vSwitch (OVS) mechanism (agent) to build -the virtual networking framework for instances. However, the controller -node does not need the OVS components because it does not handle -instance network traffic. +The ML2 plug-in uses the Linux bridge mechanism to build layer-2 (bridging and +switching) virtual networking infrastructure for instances. -#. Custom configuration for ML2 plug-in will be stored in ``/etc/neutron/plugins/ml2``:: - - mkdir -p /etc/neutron/plugins/ml2 - touch /etc/neutron.plugins/ml2/ml2_conf.ini +#. Custom configuration will be located at ``/etc/neutron/plugins/ml2``. -#. Edit the ``/etc/neutron/plugins/ml2/ml2_conf.ini`` file as follows: + * Create the ``/etc/neutron/plugins/ml2`` directory:: - * 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:: + # mkdir -p /etc/neutron/plugins/ml2 - [ml2] - ... - type_drivers = flat,vlan,gre,vxlan - tenant_network_types = gre - mechanism_drivers = openvswitch + * Create empty ML2 configuration file + ``/etc/neutron/plugins/ml2/ml2_conf.ini``:: - * In the ``[ml2_type_gre]`` section, configure the tunnel identifier - (id) range:: - - [ml2_type_gre] - ... - tunnel_id_ranges = 1:1000 + # touch /etc/neutron/plugins/ml2/ml2_conf.ini - * In the ``[securitygroup]`` section, enable security groups, enable - ipset, and configure the OVS iptables firewall driver:: +#. Edit the ``/etc/neutron/plugins/ml2/ml2_conf.ini`` file and complete the + following actions: + + * In the ``[ml2]`` section, enable flat, VLAN and VXLAN networks:: + + [ml2] + ... + type_drivers = flat,vlan,vxlan + + * In the ``[ml2]`` section, enable VXLAN project (private) networks:: + + [ml2] + ... + tenant_network_types = vxlan + + * In the ``[ml2]`` section, enable the Linux bridge and layer-2 population + mechanisms:: + + [ml2] + ... + mechanism_drivers = linuxbridge,l2population + + * In the ``[ml2]`` section, enable the port security extension driver:: + + [ml2] + ... + extension_drivers = port_security + + * In the ``[ml2_type_flat]`` section, configure the public flat provider + network:: + + [ml2_type_flat] + ... + flat_networks = public + + * In the [ml2_type_vxlan] section, configure the VXLAN network identifier + range for private networks:: + + [ml2_type_vxlan] + ... + vni_ranges = 1:1000 + + * In the [securitygroup] section, enable ipset to increase efficiency of + security group rules:: + + [securitygroup] + ... + enable_ipset = True + +Configure the Linux bridge agent +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Linux bridge agent builds layer-2 (bridging and switching) virtual +networking infrastructure for instances including VXLAN tunnels for private +networks and handles security groups. + +#. Custom configuration for Linux bridge agent will be stored in + ``/etc/neutron/plugins/ml2/linuxbridge_agent.ini``:: + + # touch /etc/neutron/plugins/ml2/linuxbridge_agent.ini + +#. Edit the ``/etc/neutron/plugins/ml2/linuxbridge_agent.ini`` file and + complete the following actions: + + * In the ``[linux_bridge]`` section, map the public virtual network to the + public physical network interface. Replace *PUBLIC_INTERFACE_NAME* with + the name of the underlying physical public network interface:: + + [linux_bridge] + physical_interface_mappings = public:PUBLIC_INTERFACE_NAME + + * In the ``[vxlan]`` section, enable VXLAN overlay networks, configure the + IP address of the physical network interface that handles overlay networks, + and enable layer-2 population. Replace *OVERLAY_INTERFACE_IP_ADDRESS* + with the IP address of the underlying physical network interface that + handles overlay networks:: + + [vxlan] + enable_vxlan = True + local_ip = OVERLAY_INTERFACE_IP_ADDRESS + l2_population = True + + * In the ``[agent]`` section, enable ARP spoofing protection:: + + [agent] + ... + prevent_arp_spoofing = True + + * In the ``[securitygroup]`` section, enable security groups and configure + the Linux bridge iptables firewall driver:: + + [securitygroup] + ... + enable_security_group = True + firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver + + +Configure the layer-3 agent +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Layer-3 (L3) agent provides routing and NAT services for virtual networks. + +#. Custom configuration for the Layer-3 agent will be stored in + ``/etc/neutron/l3_agent.ini``:: + + # touch /etc/neutron/l3_agent.ini + +#. Edit the ``/etc/neutron/l3_agent.ini`` file and complete the following + actions: + + * In the ``[DEFAULT]`` section, configure the Linux bridge interface driver + and external network bridge:: + + [DEFAULT] + ... + interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver + external_network_bridge = + + Note: The ``external_network_bridge`` option intentionally lacks a value to + enable multiple external networks on a single agent. + +Configure the DHCP agent +~~~~~~~~~~~~~~~~~~~~~~~~ + +The DHCP agent provides DHCP services for virtual networks. + +#. Custom configuration for Linux bridge agent will be stored in + ``/etc/neutron/dhcp_agent.ini``:: + + # touch /etc/neutron/dhcp_agent.ini + +#. Edit the /etc/neutron/dhcp_agent.ini file and complete the following actions: + + * In the ``[DEFAULT]`` section, configure the Linux bridge interface driver, + Dnsmasq DHCP driver, and enable isolated metadata so instances on public + networks can access metadata over the network:: + + [DEFAULT] + ... + interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver + dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq + enable_isolated_metadata = True + +Configure the metadata agent +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The metadata agent provides configuration information such as credentials to +instances. + +#. Custom configuration for the metadata agent will be stored in + ``/etc/neutron/metadata_agent.ini``:: + + # touch /etc/neutron/metadata_agent.ini + +#. Edit the ``/etc/neutron/metadata_agent.ini`` file and complete the + following actions: + + * In the ``[DEFAULT]`` section, configure access parameters. Replace + *NEUTRON_PASS* with the password you chose for the ``neutron`` user + in the Identity service:: + + [DEFAULT] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_region = RegionOne + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = neutron + password = NEUTRON_PASS + + * In the ``[DEFAULT]`` section, configure the metadata host:: + + [DEFAULT] + ... + nova_metadata_ip = controller + + * In the ``[DEFAULT]`` section, configure the metadata proxy shared secret + Replace *METADATA_SECRET* with a suitable secret for the metadata proxy:: + + [DEFAULT] + ... + metadata_proxy_shared_secret = METADATA_SECRET - [securitygroup] - ... - enable_security_group = True - enable_ipset = True - firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver Configuring Compute to use Networking ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -By default, distribution packages configure Compute to use legacy -networking. You must reconfigure Compute to manage networks through -Networking. +#. Edit the ``/etc/nova/nova.conf`` file on the controller node as follows: -#. Edit the ``/etc/nova/nova.conf`` file on the controller node as - follows: + * In the ``[neutron]`` section, configure access parameters, enable the + metadata proxy, and configure the secret. - * In the ``[DEFAULT]`` section, configure the APIs and drivers:: - - [DEFAULT] - ... - network_api_class = nova.network.neutronv2.api.API - security_group_api = neutron - linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver - firewall_driver = nova.virt.firewall.NoopFirewallDriver + Replace *NEUTRON_PASS* with the password you chose for the ``neutron`` + user in the Identity service. - * In the ``[neutron]`` section, configure access - parameters. Replace *NEUTRON_PASS* with the password you - chose for the ``neutron`` user in the Identity service:: + Replace *METADATA_SECRET* with the secret you chose for the metadata + proxy:: - [neutron] - ... - url = http://controller:9696 - auth_strategy = keystone - admin_auth_url = http://controller:35357/v2.0 - admin_tenant_name = service - admin_username = neutron - admin_password = NEUTRON_PASS + [neutron] + ... + url = http://controller:9696 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + region_name = RegionOne + project_name = service + username = neutron + password = NEUTRON_PASS + + service_metadata_proxy = True + metadata_proxy_shared_secret = METADATA_SECRET Finalizing installation ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -286,24 +474,201 @@ Finalizing installation # ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini -#. Populate the database:: - - # 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 - -#. Let ``systemd`` set the correct permissions for files in ``/etc/neutron``:: +#. Ensure files have proper ownership by running the following command:: # systemctl restart update-triggers.target +#. Populate the database:: + + # 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 + #. Restart the Compute services:: - - # systemctl restart nova-api.service nova-scheduler.service \ - nova-conductor.service + + # systemctl restart uwsgi@nova-api.service nova-scheduler.service nova-conductor.service #. Start the Networking service and configure it to start when the system boots:: - # systemctl enable neutron-server.service - # systemctl start neutron-server.service + # systemctl enable neutron-server.service \ + neutron-linuxbridge-agent.service \ + neutron-dhcp-agent.service \ + neutron-metadata-agent.service \ + neutron-l3-agent.service + # systemctl start neutron-server.service \ + neutron-linuxbridge-agent.service \ + neutron-dhcp-agent.service \ + neutron-metadata-agent.service \ + neutron-l3-agent.service -Next topic: :ref:`openstack_orchestration`. \ No newline at end of file +Install and configure compute node +---------------------------------- + +Install the components +~~~~~~~~~~~~~~~~~~~~~~ + +* Install OpenStack networking bundle:: + + # swupd bundle-add openstack-network + # swupd verify --fix + +Configure the common component +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. Edit the ``/etc/neutron/neutron.conf`` file and complete the following + actions: + + * 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] + ... + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS + + * 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:: + + [DEFAULT] + ... + auth_strategy = keystone + + [keystone_authtoken] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = neutron + password = NEUTRON_PASS + +Configure the Linux bridge agent +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. Edit the ``/etc/neutron/plugins/ml2/linuxbridge_agent.ini`` file and complete + the following actions: + + * In the ``[linux_bridge]`` section, map the public virtual network to the + public physical network interface:: + + [linux_bridge] + physical_interface_mappings = public:PUBLIC_INTERFACE_NAME + + * In the ``[vxlan]`` section, enable VXLAN overlay networks, configure the + IP address of the physical network interface that handles overlay + networks, and enable layer-2 population:: + + [vxlan] + enable_vxlan = True + local_ip = OVERLAY_INTERFACE_IP_ADDRESS + l2_population = True + + * In the ``[agent]`` section, enable ARP spoofing protection:: + + [agent] + ... + prevent_arp_spoofing = True + + * In the ``[securitygroup]`` section, enable security groups and configure + the Linux bridge iptables firewall driver:: + + [securitygroup] + ... + enable_security_group = True + firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver + +Configure Compute to use Networking +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: + + * In the ``[neutron]`` section, configure access parameters. Replace + *NEUTRON_PASS* with the password you chose for the ``neutron`` user in + the Identity service.:: + + [neutron] + ... + url = http://controller:9696 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + region_name = RegionOne + project_name = service + username = neutron + password = NEUTRON_PASS + +Finalize installation +~~~~~~~~~~~~~~~~~~~~~ + +#. Restart the Compute service:: + + # systemctl restart nova-compute.service + +#. Restart the Linux bridge agent:: + + # systemctl enable neutron-linuxbridge-agent.service + # systemctl restart neutron-linuxbridge-agent.service + +Verify Operation +---------------- + +#. Source the ``admin`` credentials to gain access to admin-only CLI commands:: + + $ source admin-openrc.sh + +#. List loaded extensions to verify successful launch of the neutron-server + process:: + + $ neutron ext-list + +-----------------------+-----------------------------------------------+ + | alias | name | + +-----------------------+-----------------------------------------------+ + | dns-integration | DNS Integration | + | address-scope | Address scope | + | ext-gw-mode | Neutron L3 Configurable external gateway mode | + | binding | Port Binding | + | agent | agent | + | subnet_allocation | Subnet Allocation | + | l3_agent_scheduler | L3 Agent Scheduler | + | external-net | Neutron external network | + | flavors | Neutron Service Flavors | + | net-mtu | Network MTU | + | quotas | Quota management support | + | l3-ha | HA Router extension | + | provider | Provider Network | + | multi-provider | Multi Provider Network | + | extraroute | Neutron Extra Route | + | router | Neutron L3 Router | + | extra_dhcp_opt | Neutron Extra DHCP opts | + | security-group | security-group | + | dhcp_agent_scheduler | DHCP Agent Scheduler | + | rbac-policies | RBAC Policies | + | port-security | Port Security | + | allowed-address-pairs | Allowed Address Pairs | + | dvr | Distributed Virtual Router | + +-----------------------+-----------------------------------------------+ + +#. List agents to verify successful launch of the neutron agents:: + + $ neutron agent-list + +--------------------------------------+--------------------+------------+-------+----------------+---------------------------+ + | id | agent_type | host | alive | admin_state_up | binary | + +--------------------------------------+--------------------+------------+-------+----------------+---------------------------+ + | 08905043-5010-4b87-bba5-aedb1956e27a | Linux bridge agent | compute1 | :-) | True | neutron-linuxbridge-agent | + | 27eee952-a748-467b-bf71-941e89846a92 | Linux bridge agent | controller | :-) | True | neutron-linuxbridge-agent | + | 830344ff-dc36-4956-84f4-067af667a0dc | L3 agent | controller | :-) | True | neutron-l3-agent | + | dd3644c9-1a3a-435a-9282-eb306b4b0391 | DHCP agent | controller | :-) | True | neutron-dhcp-agent | + | f49a4b81-afd6-4b3d-b923-66c8f0517099 | Metadata agent | controller | :-) | True | neutron-metadata-agent | + +--------------------------------------+--------------------+------------+-------+----------------+---------------------------+ + +Next topic: :ref:`openstack_orchestration`. From 706ee9f71a5d528036e9713d1113a9f64d6ee045 Mon Sep 17 00:00:00 2001 From: "Munoz, Obed N" Date: Thu, 19 Nov 2015 10:47:18 -0600 Subject: [PATCH 05/15] Update heat docs to Liberty Release Signed-off-by: Munoz, Obed N --- source/openstack_orchestration.rst | 551 +++++++++++++++++------------ 1 file changed, 333 insertions(+), 218 deletions(-) diff --git a/source/openstack_orchestration.rst b/source/openstack_orchestration.rst index b3af8090..19b3fafc 100644 --- a/source/openstack_orchestration.rst +++ b/source/openstack_orchestration.rst @@ -1,198 +1,289 @@ -.. _openstack_orchestration: - -Orchestration +OpenStack* Orchestration ############################################################ -The Orchestration module provides template-based OpenStack* API calls -on a cloud application. It integrates core components of OpenStack into -a one-file template system that allows you to create most OpenStack -resource types, including: instances, floating IPs, volumes, security -groups, and users. The module also provides advanced functionality: -instance high availability, instance auto-scaling, and nested stacks, -all of which allow OpenStack core projects to accommodate a larger user -base.   - -The service enables deployers to integrate with the Orchestration module -directly, or through custom plugins. +The Orchestration service provides a template-based orchestration for +describing a cloud application by running OpenStack* API calls to generate +running cloud applications. The software integrates other core components of +OpenStack* into a one-file template system. +The templates allow you to create most OpenStack* resource types, such as +instances, floating IPs, volumes, security groups and users. It also provides +advanced functionality, such as instance high availability, instance +auto-scaling, and nested stacks. This enables OpenStack* core projects to +receive a larger user base. Installing and configuring controller node ------------------------------------------------ +------------------------------------------ This section describes how to install and configure the Orchestration -module, codenamed heat, on the controller node. +service, codenamed heat, on the controller node. Configuring prerequisites -~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~ Before you install and configure Orchestration, you must 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:: + * Use the database access client to connect to the database server as + the ``root`` user:: - $ mysql -u root -p + $ mysql -u root -p * Create the ``heat`` database:: - - CREATE DATABASE heat; - * Grant proper access to the ``heat`` database. - Replace *HEAT_DBPASS*  with a suitable password:: + CREATE DATABASE heat; + + * 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'; - 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. #. Source the ``admin`` credentials to gain access to admin-only CLI commands:: - $ source admin-openrc.sh + $ source admin-openrc.sh #. To create the service credentials, complete these steps: * Create the ``heat`` user:: - - $ openstack user create --password-prompt heat - User Password: - Repeat User Password: - +----------+----------------------------------+ - | Field | Value | - +----------+----------------------------------+ - | email | None | - | enabled | True | - | id | 7fd67878dcd04d0393469ef825a7e005 | - | name | heat | - | username | heat | - +----------+----------------------------------+ - + + $ openstack user create --domain default --password-prompt heat + User Password: + Repeat User Password: + +-----------+----------------------------------+ + | Field | Value | + +-----------+----------------------------------+ + | domain_id | default | + | enabled | True | + | id | ca2e175b851943349be29a328cc5e360 | + | name | heat | + +-----------+----------------------------------+ + * Add the ``admin`` role to the ``heat`` user:: - - $ openstack role add --project service --user heat admin - +-------+----------------------------------+ - | Field | Value | - +-------+----------------------------------+ - | id | cd2cb9a39e874ea69e5d4b896eb16128 | - | name | admin | - +-------+----------------------------------+ + + $ openstack role add --project service --user heat admin + + * Create the ``heat`` and ``heat-cfn`` service entities: + + * :: + + $ openstack service create --name heat \ + --description "Orchestration" orchestration + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Orchestration | + | enabled | True | + | id | 727841c6f5df4773baa4e8a5ae7d72eb | + | name | heat | + | type | orchestration | + +-------------+----------------------------------+ + + * :: + + $ openstack service create --name heat-cfn \ + --description "Orchestration" cloudformation + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Orchestration | + | enabled | True | + | id | c42cede91a4e47c3b10c8aedc8d890c6 | + | name | heat-cfn | + | type | cloudformation | + +-------------+----------------------------------+ + +#. Create the Orchestration service API endpoints: + + * :: + + $ openstack endpoint create --region RegionOne \ + orchestration public http://controller:8004/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 3f4dab34624e4be7b000265f25049609 | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | + | service_name | heat | + | service_type | orchestration | + | url | http://controller:8004/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + orchestration internal http://controller:8004/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 9489f78e958e45cc85570fec7e836d98 | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | + | service_name | heat | + | service_type | orchestration | + | url | http://controller:8004/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + orchestration admin http://controller:8004/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 76091559514b40c6b7b38dde790efe99 | + | interface | admin | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | + | service_name | heat | + | service_type | orchestration | + | url | http://controller:8004/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + cloudformation public http://controller:8000/v1 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | b3ea082e019c4024842bf0a80555052c | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | + | service_name | heat-cfn | + | service_type | cloudformation | + | url | http://controller:8000/v1 | + +--------------+----------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + cloudformation internal http://controller:8000/v1 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 169df4368cdc435b8b115a9cb084044e | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | + | service_name | heat-cfn | + | service_type | cloudformation | + | url | http://controller:8000/v1 | + +--------------+----------------------------------+ + + * :: + + $ openstack endpoint create --region RegionOne \ + cloudformation admin http://controller:8000/v1 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 3d3edcd61eb343c1bbd629aa041ff88b | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | + | service_name | heat-cfn | + | service_type | cloudformation | + | url | http://controller:8000/v1 | + +--------------+----------------------------------+ + +#. Orchestration requires additional information in the Identity service to + manage stacks. To add this information, complete these steps: + + * Create the ``heat`` domain that contains projects and users for stacks:: + + $ openstack domain create --description "Stack projects and users" heat + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Stack projects and users | + | enabled | True | + | id | 0f4d1bd326f2454dacc72157ba328a47 | + | name | heat | + +-------------+----------------------------------+ + + * Create the ``heat_domain_admin`` user to manage projects and users in the + ``heat`` domain:: + + $ openstack user create --domain heat --password-prompt heat_domain_admin + User Password: + Repeat User Password: + +-----------+----------------------------------+ + | Field | Value | + +-----------+----------------------------------+ + | domain_id | 0f4d1bd326f2454dacc72157ba328a47 | + | enabled | True | + | id | b7bd1abfbcf64478b47a0f13cd4d970a | + | name | heat_domain_admin | + +-----------+----------------------------------+ + + * Add the ``admin`` role to the ``heat_domain_admin`` in the ``heat`` domain + to enable administrative stack management privileges by the + ``heat_domain_admin`` user:: + + $ openstack role add --domain heat --user heat_domain_admin admin * Create the ``heat_stack_owner`` role:: - - $ openstack role create heat_stack_owner - +-------+----------------------------------+ - | Field | Value | - +-------+----------------------------------+ - | id | c0a1cbee7261446abc873392f616de87 | - | name | heat_stack_owner | - +-------+----------------------------------+ - * Add the ``heat_stack_owner`` role to the ``demo`` tenant and - user. + $ openstack role create heat_stack_owner + +-------+----------------------------------+ + | Field | Value | + +-------+----------------------------------+ + | id | 15e34f0c4fed4e68b3246275883c8630 | + | name | heat_stack_owner | + +-------+----------------------------------+ - Note: You must add the ``heat_stack_owner`` role to users that - manage stacks:: + * Create the ``heat_stack_user`` role:: - $ openstack role add --project demo --user demo heat_stack_owner - +-------+----------------------------------+ - | Field | Value | - +-------+----------------------------------+ - | id | c0a1cbee7261446abc873392f616de87 | - | name | heat_stack_owner | - +-------+----------------------------------+ + $ openstack role create heat_stack_user + +-------+----------------------------------+ + | Field | Value | + +-------+----------------------------------+ + | id | 88849d41a55d4d1d91e4f11bffd8fc5c | + | name | heat_stack_user | + +-------+----------------------------------+ - * 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:: - - $ openstack role create heat_stack_user - +-------+----------------------------------+ - | Field | Value | - +-------+----------------------------------+ - | id | e01546b1a81c4e32a6d14a9259e60154 | - | name | heat_stack_user | - +-------+----------------------------------+ - - * Create the ``heat`` and ``heat-cfn`` service entities:: - - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | Orchestration | - | enabled | True | - | id | 031112165cad4c2bb23e84603957de29 | - | name | heat | - | type | orchestration | - +-------------+----------------------------------+ - $ openstack service create --name heat-cfn \ - --description "Orchestration" cloudformation - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | Orchestration | - | enabled | True | - | id | 297740d74c0a446bbff867acdccb33fa | - | name | heat-cfn | - | type | cloudformation | - +-------------+----------------------------------+ - -#. Create the Orchestration service API endpoints:: - - $ openstack endpoint create \ - --publicurl http://controller:8004/v1/%\(tenant_id\)s \ - --internalurl http://controller:8004/v1/%\(tenant_id\)s \ - --adminurl http://controller:8004/v1/%\(tenant_id\)s \ - --region RegionOne \ - orchestration - +--------------+-----------------------------------------+ - | Field | Value | - +--------------+-----------------------------------------+ - | adminurl | http://controller:8004/v1/%(tenant_id)s | - | id | f41225f665694b95a46448e8676b0dc2 | - | internalurl | http://controller:8004/v1/%(tenant_id)s | - | publicurl | http://controller:8004/v1/%(tenant_id)s | - | region | RegionOne | - | service_id | 031112165cad4c2bb23e84603957de29 | - | service_name | heat | - | service_type | orchestration | - +--------------+-----------------------------------------+ - $ openstack endpoint create \ - --publicurl http://controller:8000/v1 \ - --internalurl http://controller:8000/v1 \ - --adminurl http://controller:8000/v1 \ - --region RegionOne \ - cloudformation - +--------------+----------------------------------+ - | Field | Value | - +--------------+----------------------------------+ - | adminurl | http://controller:8000/v1 | - | id | f41225f665694b95a46448e8676b0dc2 | - | internalurl | http://controller:8000/v1 | - | publicurl | http://controller:8000/v1 | - | region | RegionOne | - | service_id | 297740d74c0a446bbff867acdccb33fa | - | service_name | heat-cfn | - | service_type | cloudformation | - +--------------+----------------------------------+ - -Installing and configuring the Orchestration components ----------------------------------------------------------- +Installing and configuring components +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To install and configure the Orchestration components: #. Install OpenStack Orchestration bundle:: - - # clr_bundle_add openstack-orchestration -#. Create the ``/etc/heat/heat.conf file``:: - - # mkdir /etc/heat # touch /etc/heat/heat.conf + # swupd bundle-add openstack-orchestration + # swupd verify --fix + +#. Custom configuration will be located at ``/etc/heat/heat.conf file``. + + * Create the ``/etc/heat`` directory:: + + # mkdir /etc/heat + + * Create empty heat configuration file ``/etc/heat/heat.conf``:: + + # touch /etc/heat/heat.conf #. Edit the ``/etc/heat/heat.conf`` file and complete the following actions: @@ -201,82 +292,88 @@ To install and configure the Orchestration components: Replace *HEAT_DBPASS*  with the password you chose for the Orchestration database:: - [database] - ... - connection = mysql://heat:HEAT_DBPASS@controller/heat + [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:: + * 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] - ... - rpc_backend = rabbit - [oslo_messaging_rabbit] - ... - rabbit_host = controller - rabbit_userid = openstack - rabbit_password = RABBIT_PASS + [DEFAULT] + ... + rpc_backend = rabbit - * 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:: + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS + + * In the ``[keystone_authtoken]``, ``[trustee]``, ``[clients_keystone]``, + 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] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = heat + password = HEAT_PASS + + [trustee] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = heat + password = HEAT_PASS + + [clients_keystone] + ... + auth_uri = http://controller:5000 + + [ec2authtoken] + ... + auth_uri = http://controller:5000 - [keystone_authtoken] - ... - auth_uri = http://controller:5000/v2.0 - identity_uri = http://controller:35357 - admin_tenant_name = service - admin_user = heat - admin_password = HEAT_PASS - [ec2authtoken] - ... - auth_uri = http://controller:5000/v2.0 * 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 + [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:: + * In the ``[DEFAULT]`` section, configure the stack domain and administrative + credentials. Replace ``HEAT_DOMAIN_PASS`` with the password you chose for + the ``heat_domain_admin`` user in the Identity service.:: - [DEFAULT] - ... - stack_domain_admin = heat_domain_admin - stack_domain_admin_password = HEAT_DOMAIN_PASS - stack_user_domain_name = heat_user_domain + [DEFAULT] + ... + stack_domain_admin = heat_domain_admin + stack_domain_admin_password = HEAT_DOMAIN_PASS + stack_user_domain_name = heat -#. Source the ``admin`` credentials to gain access to admin-only CLI - commands:: - $ source admin-openrc.sh +#. Ensure files have proper ownership by running the following command:: -#. Create the heat domain in Identity service. - Replace *``HEAT_DOMAIN_PASS``*  with a suitable - 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``:: - - # systemctl restart update-triggers.target + # systemctl restart update-triggers.target #. Populate the Orchestration database:: - - # su -s /bin/sh -c "heat-manage db_sync" heat`` -Finalizing installation + # su -s /bin/sh -c "heat-manage db_sync" heat + +Finalize installation ~~~~~~~~~~~~~~~~~~~~~~~~ Complete this step to finalize the installation: @@ -284,7 +381,25 @@ Complete this step to finalize the installation: * 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`` + # systemctl enable heat-api.service heat-api-cfn.service heat-engine.service + # systemctl start heat-api.service heat-api-cfn.service heat-engine.service -Next topic: :ref:`openstack_telemetry`. \ No newline at end of file +Verify operation +---------------- + +#. Source the ``admin`` tenant credentials:: + + $ source admin-openrc.sh + +#. List service components to verify successful launch and registration of each + process:: + + $ heat service-list + +------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+ + | hostname | binary | engine_id | host | topic | updated_at | status | + +------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+ + | controller | heat-engine | 3e85d1ab-a543-41aa-aa97-378c381fb958 | controller | engine | 2015-10-13T14:16:06.000000 | up | + | controller | heat-engine | 45dbdcf6-5660-4d5f-973a-c4fc819da678 | controller | engine | 2015-10-13T14:16:06.000000 | up | + | controller | heat-engine | 51162b63-ecb8-4c6c-98c6-993af899c4f7 | controller | engine | 2015-10-13T14:16:06.000000 | up | + | controller | heat-engine | 8d7edc6d-77a6-460d-bd2a-984d76954646 | controller | engine | 2015-10-13T14:16:06.000000 | up | + +------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+ From 8130556cecfac56a5922f93bb204415481c988cc Mon Sep 17 00:00:00 2001 From: Salvador Fuentes Date: Thu, 19 Nov 2015 10:55:38 -0600 Subject: [PATCH 06/15] telemetry documentation fixed. Signed-off-by: Salvador Fuentes --- source/openstack_telemetry.rst | 291 ++++++++++++++----------- source/openstack_telemetry_compute.rst | 82 +++++++ source/openstack_telemetry_image.rst | 35 +++ source/openstack_telemetry_verify.rst | 59 +++++ 4 files changed, 338 insertions(+), 129 deletions(-) create mode 100644 source/openstack_telemetry_compute.rst create mode 100644 source/openstack_telemetry_image.rst create mode 100644 source/openstack_telemetry_verify.rst diff --git a/source/openstack_telemetry.rst b/source/openstack_telemetry.rst index 51b6e257..43df9083 100644 --- a/source/openstack_telemetry.rst +++ b/source/openstack_telemetry.rst @@ -1,64 +1,68 @@ -.. _openstack_telemetry: - -Telemetry +OpenStack* Telemetry ############################################################ Overview --------- -The Telemetry module performs the following functions: +The Telemetry service performs the following functions: - Efficiently polls metering data related to OpenStack services; - Collects event and metering data by monitoring notifications sent from services; - Publishes collected data to various targets, including data stores - and message queues; and + and message queues; - Creates alarms when collected data breaks defined rules. -Installing and configuring controller node ------------------------------------------------ +Installing and configure +------------------------ This section describes how to install and configure the Telemetry -module, code-named ceilometer, on the controller node. The Telemetry -module uses separate agents to collect measurements from each OpenStack -service in your environment. +service, code-named ceilometer, on the controller node. The Telemetry +service collects measurements from most OpenStack services and optionally +triggers alarms. + Prerequisites ~~~~~~~~~~~~~~~ -Before installing and configuring the ``telemetry`` module, install +Before installing and configuring the ``telemetry`` service, install MongoDB* and create a MongoDB database, service credentials, and API endpoint. #. Install the MongoDB bundle:: - - # clr_bundle_add database-mongodb + + # swupd bundle-add database-mongodb + # swupd verify --fix #. Create the ``/etc/mongodb/`` folder and the - ``/etc/mongodb/openstack.cnf`` file. + ``/etc/mongodb/openstack.cnf`` file.:: + + # mkdir /etc/mongodb + # touch /etc/mongodb/openstack.cnf + #. Configure the ``bind_ip`` key to use the management interface IP - address of the controller node:: + address of the controller node by editing the ``/etc/mongodb/openstack.cnf`` file:: bind_ip = 10.0.0.11 #. Start the database service and configure it to start when the system boots with the following commands:: - # systemctl enable mongodb.service + # systemctl enable mongodb.service # systemctl start mongodb.service #. Create the ``ceilometer`` database. Replace *CEILOMETER_DBPASS* with a suitable password:: - # mongo --host controller --eval ' - db = db.getSiblingDB("ceilometer"); - db.createUser({user: "ceilometer", - pwd: "CEILOMETER_DBPASS", - roles: [ "readWrite", "dbAdmin" ]})' + # mongo --host controller --eval ' + db = db.getSiblingDB("ceilometer"); + db.createUser({user: "ceilometer", + pwd: "CEILOMETER_DBPASS", + roles: [ "readWrite", "dbAdmin" ]})' - MongoDB shell version: 2.6.x - connecting to: controller:27017/test - Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] } + MongoDB shell version: 3.1.7 + connecting to: controller:27017/test + Successfully added user: { "user" : "ceilometer", "roles" : [ "readWrite", "dbAdmin" ] } #. Source the ``admin`` credentials to gain access to admin-only CLI commands:: @@ -68,157 +72,186 @@ endpoint. #. To create the service credentials, complete these steps: * Create the ``ceilometer`` user:: - - $ openstack user create --password-prompt ceilometer - User Password: - Repeat User Password: - +----------+----------------------------------+ - | Field | Value | - +----------+----------------------------------+ - | email | None | - | enabled | True | - | id | b7657c9ea07a4556aef5d34cf70713a3 | - | name | ceilometer | - | username | ceilometer | - +----------+----------------------------------+ + + $ openstack user create --domain default --password-prompt ceilometer + User Password: + Repeat User Password: + +-----------+----------------------------------+ + | Field | Value | + +-----------+----------------------------------+ + | domain_id | default | + | enabled | True | + | id | c859c96f57bd4989a8ea1a0b1d8ff7cd | + | name | ceilometer | + +-----------+----------------------------------+ * Add the ``admin`` role to the ``ceilometer`` user:: - - $ openstack role add --project service --user ceilometer admin - +-------+----------------------------------+ - | Field | Value | - +-------+----------------------------------+ - | id | cd2cb9a39e874ea69e5d4b896eb16128 | - | name | admin | - +-------+----------------------------------+ + + $ openstack role add --project service --user ceilometer admin * Create the ``ceilometer`` service entity:: - + $ openstack service create --name ceilometer \ - --description "Telemetry" metering - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | Telemetry | - | enabled | True | - | id | 3405453b14da441ebb258edfeba96d83 | - | name | ceilometer | - | type | metering | + --description "Telemetry" metering + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Telemetry | + | enabled | True | + | id | 3405453b14da441ebb258edfeba96d83 | + | name | ceilometer | + | type | metering | +-------------+----------------------------------+ -#. Create the Telemetry module API endpoint:: - - $ openstack endpoint create \ - --publicurl http://controller:8777 \ - --internalurl http://controller:8777 \ - --adminurl http://controller:8777 \ - --region RegionOne \ - metering - +--------------+----------------------------------+ - | Field | Value | - +--------------+----------------------------------+ - | adminurl | http://controller:8777 | - | id | d3716d85b10d4e60a67a52c6af0068cd | - | internalurl | http://controller:8777 | - | publicurl | http://controller:8777 | - | region | RegionOne | - | service_id | 3405453b14da441ebb258edfeba96d83 | - | service_name | ceilometer | - | service_type | metering | - +--------------+----------------------------------+ +#. Create the Telemetry service API endpoints:: -Installing and configuring the Telemetry module components -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + $ openstack endpoint create --region RegionOne \ + metering public http://controller:8777 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 340be3625e9b4239a6415d034e98aace | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | + | service_name | celiometer | + | service_type | metering | + | url | http://controller:8777 | + +--------------+----------------------------------+ + + $ openstack endpoint create --region RegionOne \ + metering internal http://controller:8777 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 340be3625e9b4239a6415d034e98aace | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | + | service_name | celiometer | + | service_type | metering | + | url | http://controller:8777 | + +--------------+----------------------------------+ + + $ openstack endpoint create --region RegionOne \ + metering admin http://controller:8777 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 340be3625e9b4239a6415d034e98aace | + | interface | admin | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 8c2c7f1b9b5049ea9e63757b5533e6d2 | + | service_name | celiometer | + | service_type | metering | + | url | http://controller:8777 | + +--------------+----------------------------------+ + + +Install and configure components +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. Install the OpenStack Telemetry Controller bundle:: - - # clr_bundle_add openstack-telemetry-controller -#. Generate a random value to use as the telemetry secret:: - - $ openssl rand -hex 10 + # swupd bundle-add openstack-telemetry-controller #. Custom configurations will be located at ``/etc/ceilometer``. * Create ``/etc/ceilometer`` directory:: - - mkdir /etc/ceilometer + + # mkdir /etc/ceilometer * Create the empty ceilometer configuration file:: - - /etc/ceilometer/ceilometer.conf - touch /etc/ceilometer/ceilometer.conf -#. Edit the following file:\ ``/etc/ceilometer/ceilometer.conf``\ Then + # touch /etc/ceilometer/ceilometer.conf + +#. Edit the ``/etc/ceilometer/ceilometer.conf`` file and complete the following actions: * In the ``[database]`` section, configure database access. Replace - *``CEILOMETER_DBPASS``* with the password you chose for the + *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] - ... + [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``* + configure RabbitMQ message queue access. Replace *RABBIT_PASS* with the password you chose for the ``openstack`` account in RabbitMQ:: - [DEFAULT] - ... - rpc_backend = rabbit - [oslo_messaging_rabbit] - rabbit_host = controller - rabbit_userid = openstack + [DEFAULT] + ... + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack rabbit_password = RABBIT_PASS * In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections, - configure Identity service access. Replace *``CEILOMETER_PASS``* + configure Identity service access. Replace *CEILOMETER_PASS* with the password you chose for the ``celiometer`` user in the Identity service:: - [DEFAULT] - ... - auth_strategy = keystone - [keystone_authtoken] - auth_uri = http://controller:5000/v2.0 - identity_uri = http://controller:35357 - admin_tenant_name = service - admin_user = ceilometer - admin_password = CEILOMETER_PASS + [DEFAULT] + ... + auth_strategy = keystone + + [keystone_authtoken] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = ceilometer + password = CEILOMETER_PASS * In the ``[service_credentials]`` section, configure service - credentials. Replace *``CEILOMETER_PASS``* with the password you + credentials. Replace *CEILOMETER_PASS* with the password you chose for the ``ceilometer`` user in the Identity service:: - [service_credentials] - ... - os_auth_url = http://controller:5000/v2.0 - os_username = ceilometer - os_tenant_name = service - os_password = CEILOMETER_PASS - os_endpoint_type = internalURL + [service_credentials] + ... + os_auth_url = http://controller:5000/v2.0 + os_username = ceilometer + os_tenant_name = service + os_password = CEILOMETER_PASS + 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:: + * Ensure files have proper ownership by running the following command:: + + # systemctl restart update-triggers.target - [publisher] - ... - telemetry_secret = TELEMETRY_SECRET Finalizing installation ~~~~~~~~~~~~~~~~~~~~~~~~ -* Start the Telemetry services and configure them to start when the system boots:: - - # 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 \ - ceilometer-alarm-evaluator.service ceilometer-alarm-notifier.service +#. Start the Telemetry services and configure them to start when the system boots:: -Next topic: :ref:`openstack_object_storage`. \ No newline at end of file + # systemctl enable ceilometer-agent-central.service \ + ceilometer-agent-notification.service \ + ceilometer-api.service \ + ceilometer-collector.service \ + ceilometer-alarm-evaluator.service \ + ceilometer-alarm-notifier.service + + # systemctl start ceilometer-agent-central.service \ + ceilometer-agent-notification.service \ + ceilometer-api.service \ + ceilometer-collector.service \ + ceilometer-alarm-evaluator.service \ + ceilometer-alarm-notifier.service diff --git a/source/openstack_telemetry_compute.rst b/source/openstack_telemetry_compute.rst new file mode 100644 index 00000000..16db9093 --- /dev/null +++ b/source/openstack_telemetry_compute.rst @@ -0,0 +1,82 @@ +OpenStack* Telemetry - Enable compute service meters +############################################################ + +Telemetry uses a combination of notifications and an agent to +collect Compute meters. Perform these steps on each compute node. + +Configure components +----------------------------------------------- + +Edit the ``/etc/ceilometer/ceilometer.conf`` file and complete the following actions: + +#. In the ``[DEFAULT]`` and ``[oslo_messaging_rabbit]`` sections, configure RabbitMQ message queue access:: + + [DEFAULT] + ... + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS + + Replace the ``RABBIT_PASS`` with the password you chose for the openstack account in RabbitMQ. + +#. In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections, configure Identity service access:: + + [DEFAULT] + ... + auth_strategy = keystone + + [keystone_authtoken] + ... + auth_uri = http://controller:5000 + auth_url = http://controller:35357 + auth_plugin = password + project_domain_id = default + user_domain_id = default + project_name = service + username = ceilometer + password = CEILOMETER_PASS + + Replace ``CEILOMETER_PASS`` with the password you chose for the Telemetry service database. + +#. In the ``[service_credentials]`` section, configure service credentials:: + + [service_credentials] + ... + os_auth_url = http://controller:5000/v2.0 + os_username = ceilometer + os_tenant_name = service + os_password = CEILOMETER_PASS + os_endpoint_type = internalURL + os_region_name = RegionOne + + Replace ``CEILOMETER_PASS`` with the password you chose for the ceilometer user in the Identity service. + + +Configure Compute to use Telemetry +----------------------------------------------- + +#. Edit the ``/etc/nova/nova.conf`` file and configure notifications in the ``[DEFAULT]`` section:: + + [DEFAULT] + ... + instance_usage_audit = True + instance_usage_audit_period = hour + notify_on_state_change = vm_and_task_state + notification_driver = messagingv2 + + +Finalize the installation +----------------------------------------------- + +#. Restart the agent:: + + # systemctl enable ceilometer-agent-compute.service + # systemctl restart ceilometer-agent-compute.service + +#. Restart the compute service:: + + # systemctl restart nova-compute.service diff --git a/source/openstack_telemetry_image.rst b/source/openstack_telemetry_image.rst new file mode 100644 index 00000000..86614c4b --- /dev/null +++ b/source/openstack_telemetry_image.rst @@ -0,0 +1,35 @@ +OpenStack* Telemetry - Enable image service meters +############################################################ + +Telemetry uses notifications to collect Image service meters. +Perform these steps on the controller node. + + +Configure the Image service to use Telemetry +----------------------------------------------- + +Edit the ``/etc/glance/glance-api.conf`` and ``/etc/glance/glance-registry.conf`` +files and complete the following actions: + +#. In the ``[DEFAULT]`` section, configure notifications and RabbitMQ message broker access:: + + [DEFAULT] + ... + notification_driver = messagingv2 + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS + + Replace the ``RABBIT_PASS`` with the password you chose for the openstack account in RabbitMQ. + +Finalize the installation +---------------------------- + +#. Restart the image service:: + + # systemctl restart glance-registry.service + # systemctl restart glance-api.service diff --git a/source/openstack_telemetry_verify.rst b/source/openstack_telemetry_verify.rst new file mode 100644 index 00000000..a6a54714 --- /dev/null +++ b/source/openstack_telemetry_verify.rst @@ -0,0 +1,59 @@ +OpenStack* Telemetry - Verify Operation +############################################################ + +Verify Operation +------------------ + +Verify operation of the Telemetry service. These steps only include the Image service meters to reduce clutter. Environments with ceilometer integration for additional services contain more meters. + + +#. Source the ``admin`` credentials to gain access to admin-only CLI + commands:: + + $ source admin-openrc.sh + +#. List available meters:: + + $ ceilometer meter-list + +--------------+-------+-------+--------------------------------------+---------+------------+ + | Name | Type | Unit | Resource ID | User ID | Project ID | + +--------------+-------+-------+--------------------------------------+---------+------------+ + | image | gauge | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15... | + | image.size | gauge | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15... | + +--------------+-------+-------+--------------------------------------+---------+------------+ + +#. Download the CirrOS image from the Image service:: + + $ IMAGE_ID=$(glance image-list | grep 'cirros' | awk '{ print $2 }') + $ glance image-download $IMAGE_ID > /tmp/cirros.img + +#. List available meters again to validate detection of the image download:: + + $ ceilometer meter-list + +----------------+-------+-------+--------------------------------------+---------+------------+ + | Name | Type | Unit | Resource ID | User ID | Project ID | + +----------------+-------+-------+--------------------------------------+---------+------------+ + | image | gauge | image | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15... | + | image.download | delta | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15... | + | image.serve | delta | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15... | + | image.size | gauge | B | acafc7c0-40aa-4026-9673-b879898e1fc2 | None | cf12a15... | + +----------------+-------+-------+--------------------------------------+---------+------------+ + +#. Retrieve usage statistics from the image.download meter:: + + $ ceilometer statistics -m image.download -p 60 + + +--------+---------------------+---------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+ + | Period | Period Start | Period End | Max | Min | Avg | Sum | Count | Duration | Duration Start | Duration End | + +--------+---------------------+---------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+ + | 60 | 2015-04-21T12:21:45 | 2015-04-21T12:22:45 | 13200896.0 | 13200896.0 | 13200896.0 | 13200896.0 | 1 | 0.0 | 2015-04-21T12:22:12.983000 | 2015-04-21T12:22:12.983000 | + +--------+---------------------+---------------------+------------+------------+------------+------------+-------+----------+----------------------------+----------------------------+ + +#. Remove the previously downloaded image file /tmp/cirros.img:: + + $ rm /tmp/cirros.img + + + + + From 0484345b6dd90e26a18c20b45c72ff9a6c7bf060 Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Thu, 19 Nov 2015 13:30:04 -0600 Subject: [PATCH 07/15] Updating index.rst and dashboard.rst for issue #9. --- source/index.rst | 8 +++----- source/openstack_dashboard.rst | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/source/index.rst b/source/index.rst index 2ca3f39f..235ced3c 100644 --- a/source/index.rst +++ b/source/index.rst @@ -49,7 +49,7 @@ Bundles table_view_bundles -OpenStack``*`` implementation +OpenStack* implementation ############################# .. toctree:: @@ -59,8 +59,8 @@ OpenStack``*`` implementation openstack_bundle_and_service_summary openstack_sys_req_and_pw_summary openstack_installing_bundles - openstack_environment-database - openstack_environment-messaging + openstack_supporting-database + openstack_supporting-messaging openstack_identity openstack_identity-openrc openstack_image @@ -70,8 +70,6 @@ OpenStack``*`` implementation openstack_networking openstack_orchestration openstack_telemetry - openstack_supporting-database - openstack_supporting-messaging License and Disclaimers diff --git a/source/openstack_dashboard.rst b/source/openstack_dashboard.rst index ce585372..4fb4d816 100644 --- a/source/openstack_dashboard.rst +++ b/source/openstack_dashboard.rst @@ -24,7 +24,6 @@ To get started with OpenStack Dashboard services: #. Install the OpenStack Dashboard bundle:: # swupd bundle-add openstack-dashboard - # swupd verify --fix #. Enable and start the dashboard socket and the Nginx server:: From db34ff168a20ea2b38bde45242f8cc2b114015c9 Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Thu, 19 Nov 2015 14:02:41 -0600 Subject: [PATCH 08/15] Enable inter-topic navigation in Telemetry and Orchestration topics. --- source/openstack_orchestration.rst | 4 ++++ source/openstack_telemetry.rst | 2 ++ 2 files changed, 6 insertions(+) diff --git a/source/openstack_orchestration.rst b/source/openstack_orchestration.rst index 19b3fafc..a3c84e57 100644 --- a/source/openstack_orchestration.rst +++ b/source/openstack_orchestration.rst @@ -1,3 +1,5 @@ +.. _openstack_orchestration: + OpenStack* Orchestration ############################################################ @@ -403,3 +405,5 @@ Verify operation | controller | heat-engine | 51162b63-ecb8-4c6c-98c6-993af899c4f7 | controller | engine | 2015-10-13T14:16:06.000000 | up | | controller | heat-engine | 8d7edc6d-77a6-460d-bd2a-984d76954646 | controller | engine | 2015-10-13T14:16:06.000000 | up | +------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+ + +Next topic: :ref:`openstack_telemetry`. \ No newline at end of file diff --git a/source/openstack_telemetry.rst b/source/openstack_telemetry.rst index 43df9083..ff0376d5 100644 --- a/source/openstack_telemetry.rst +++ b/source/openstack_telemetry.rst @@ -1,3 +1,5 @@ +.. _openstack_telemetry: + OpenStack* Telemetry ############################################################ From 06a6e71cf9936b4b0ddce79850023ed79ba89629 Mon Sep 17 00:00:00 2001 From: "Simental Magana, Marcos" Date: Thu, 19 Nov 2015 17:14:22 -0600 Subject: [PATCH 09/15] Remove verify --fix instruction from documentation. --- source/openstack_block_storage.rst | 2 -- source/openstack_compute.rst | 3 +-- source/openstack_identity.rst | 4 +--- source/openstack_image.rst | 3 +-- source/openstack_networking.rst | 2 -- source/openstack_orchestration.rst | 3 +-- source/openstack_supporting-database.rst | 3 +-- source/openstack_supporting-messaging.rst | 3 +-- source/openstack_telemetry.rst | 1 - 9 files changed, 6 insertions(+), 18 deletions(-) diff --git a/source/openstack_block_storage.rst b/source/openstack_block_storage.rst index 1f0f2f96..533d3214 100644 --- a/source/openstack_block_storage.rst +++ b/source/openstack_block_storage.rst @@ -209,7 +209,6 @@ Install and configure components #. Install OpenStack Block Storage Controller bundle:: # swupd bundle-add openstack-block-storage-controller - # swupd verify --fix #. Custom configurations will be located at ``/etc/cinder``. @@ -320,7 +319,6 @@ Prerequisites #. Install the Openstack Block Storage bundle:: # swupd bundle-add openstack-block-storage - # swupd verify --fix #. Create the LVM physical volume: ``/dev/sdb1`` If your system uses a different device name, adjust these steps accordingly:: diff --git a/source/openstack_compute.rst b/source/openstack_compute.rst index 8f8e5d68..18414c39 100644 --- a/source/openstack_compute.rst +++ b/source/openstack_compute.rst @@ -142,7 +142,6 @@ To install and configure the Compute controller components: #. Install OpenStack Compute Controller bundle:: # swupd bundle-add openstack-compute-controller - # swupd verify --fix #. Custom configurations will be located at ``/etc/nova``. @@ -525,4 +524,4 @@ Verify operation of the Compute service. | 38047887-61a7-41ea-9b49-27987d5e8bb9 | cirros | ACTIVE | | +--------------------------------------+--------+--------+--------+ -Next topic: :ref:`openstack_block_storage`. \ No newline at end of file +Next topic: :ref:`openstack_block_storage`. diff --git a/source/openstack_identity.rst b/source/openstack_identity.rst index 7ef71f0e..934d7999 100644 --- a/source/openstack_identity.rst +++ b/source/openstack_identity.rst @@ -61,7 +61,6 @@ Install and configure components #. Run the following command to install the packages.:: # swupd bundle-add openstack-identity - # swupd verify --fix #. Custom configurations will be located at ``/etc/keystone/``. @@ -150,7 +149,6 @@ environment variables to reduce command length. #. Install the OpenStack Python clients bundle:: # swupd bundle-add openstack-python-clients - # swupd verify --fix Create the service entity and API endpoints @@ -415,4 +413,4 @@ services. | user_id | 7004dfa0dda84d63aef81cf7f100af01 | +------------+----------------------------------+ -Next topic: :ref:`openstack_identity-openrc`. \ No newline at end of file +Next topic: :ref:`openstack_identity-openrc`. diff --git a/source/openstack_image.rst b/source/openstack_image.rst index d31d7f1f..32b7b391 100644 --- a/source/openstack_image.rst +++ b/source/openstack_image.rst @@ -135,7 +135,6 @@ Install and configure components #. Install OpenStack Image bundle.:: # swupd bundle-add openstack-image - # swupd verify --fix #. Configurations will be located at ``/etc/glance``. @@ -275,4 +274,4 @@ Linux image that helps you test your OpenStack deployment. | 38047887-61a7-41ea-9b49-27987d5e8bb9 | cirros | +--------------------------------------+--------+ -Next topic: :ref:`openstack_compute`. \ No newline at end of file +Next topic: :ref:`openstack_compute`. diff --git a/source/openstack_networking.rst b/source/openstack_networking.rst index ccce340d..58ab2cfb 100644 --- a/source/openstack_networking.rst +++ b/source/openstack_networking.rst @@ -142,7 +142,6 @@ Complete the following step to install the Networking components: #. Install OpenStack networking bundle:: # swupd bundle-add openstack-network - # swupd verify --fix Configuring the Networking server component ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -510,7 +509,6 @@ Install the components * Install OpenStack networking bundle:: # swupd bundle-add openstack-network - # swupd verify --fix Configure the common component ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/openstack_orchestration.rst b/source/openstack_orchestration.rst index a3c84e57..75c2e90c 100644 --- a/source/openstack_orchestration.rst +++ b/source/openstack_orchestration.rst @@ -275,7 +275,6 @@ To install and configure the Orchestration components: #. Install OpenStack Orchestration bundle:: # swupd bundle-add openstack-orchestration - # swupd verify --fix #. Custom configuration will be located at ``/etc/heat/heat.conf file``. @@ -406,4 +405,4 @@ Verify operation | controller | heat-engine | 8d7edc6d-77a6-460d-bd2a-984d76954646 | controller | engine | 2015-10-13T14:16:06.000000 | up | +------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+ -Next topic: :ref:`openstack_telemetry`. \ No newline at end of file +Next topic: :ref:`openstack_telemetry`. diff --git a/source/openstack_supporting-database.rst b/source/openstack_supporting-database.rst index 62eac990..615e65c1 100644 --- a/source/openstack_supporting-database.rst +++ b/source/openstack_supporting-database.rst @@ -13,7 +13,6 @@ Install and configure the database server #. Install MariaDB bundle:: # swupd bundle-add database-mariadb - # swupd verify --fix #. Create the ``/etc/mariadb/`` folder and the ``/etc/mariadb/openstack.cnf`` file:: @@ -50,4 +49,4 @@ Complete the following steps to finalize database installation: # mysql_secure_installation -Next topic: :ref:`openstack_supporting-messaging`. \ No newline at end of file +Next topic: :ref:`openstack_supporting-messaging`. diff --git a/source/openstack_supporting-messaging.rst b/source/openstack_supporting-messaging.rst index be9c167d..aa0fe3f0 100644 --- a/source/openstack_supporting-messaging.rst +++ b/source/openstack_supporting-messaging.rst @@ -14,7 +14,6 @@ Install the message queue service #. Install the message queue bundle.:: # swupd bundle-add message-broker-rabbitmq - # swupd verify --fix Configuring the message broker service -------------------------------------- @@ -45,4 +44,4 @@ Complete the following steps to configure the message broker service: Setting permissions for user "openstack" in vhost "/" ... ...done. -Next topic: :ref:`openstack_identity`. \ No newline at end of file +Next topic: :ref:`openstack_identity`. diff --git a/source/openstack_telemetry.rst b/source/openstack_telemetry.rst index ff0376d5..37588037 100644 --- a/source/openstack_telemetry.rst +++ b/source/openstack_telemetry.rst @@ -34,7 +34,6 @@ endpoint. #. Install the MongoDB bundle:: # swupd bundle-add database-mongodb - # swupd verify --fix #. Create the ``/etc/mongodb/`` folder and the ``/etc/mongodb/openstack.cnf`` file.:: From c04d9c02809803828df070efbf704d4f29f3ab7e Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Fri, 20 Nov 2015 09:23:32 -0600 Subject: [PATCH 10/15] Per resolution on issue #9, removed openstack_environment-database.rst and openstack_environment-messaging.rst. These were duplicates. --- source/openstack_environment-database.rst | 58 --------------------- source/openstack_environment-messaging.rst | 59 ---------------------- 2 files changed, 117 deletions(-) delete mode 100644 source/openstack_environment-database.rst delete mode 100644 source/openstack_environment-messaging.rst diff --git a/source/openstack_environment-database.rst b/source/openstack_environment-database.rst deleted file mode 100644 index a971bd3d..00000000 --- a/source/openstack_environment-database.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. openstack_environment-database: - -Database -~~~~~~~~ -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 - - # clr_bundle_add database-mariadb - -#. Create the ``/etc/mariadb/`` folder and the ``/etc/mariadb/openstack.cnf`` file. - - .. code-block:: console - - # mkdir /etc/mariadb - # touch /etc/mariadb/openstack.cnf - -#. 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 - - [mysqld] - bind-address = 10.0.0.11 - default-storage-engine = innodb - innodb_file_per_table - collation-server = utf8_general_ci - init-connect = 'SET NAMES utf8' - character-set-server = utf8 - -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 - - # systemctl enable mariadb.service - # systemctl start mariadb.service - -2. Secure the database service including choosing a suitable password - for the root account: - - .. code:: console - - # mysql_secure_installation diff --git a/source/openstack_environment-messaging.rst b/source/openstack_environment-messaging.rst deleted file mode 100644 index 4da91656..00000000 --- a/source/openstack_environment-messaging.rst +++ /dev/null @@ -1,59 +0,0 @@ -.. openstack_environment-messaging: - -Message queue -~~~~~~~~~~~~~ - -OpenStack uses a ``message queue`` to coordinate operations and -status details 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. - -Install the message queue service ---------------------------------- - - .. code-block:: console - - # clr_bundle_add message-broker-rabbitmq - - -Configuring the message broker service -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Complete the following steps to configure the message broker service: - -1. Message broker service needs to be able to resolve to itself. Add the - following line to :file:`/etc/hosts` - - .. code-block:: raw - - 127.0.0.1 controller - - -2. Start the message broker service and configure it to start when the - system boots: - - .. code-block:: console - - # systemctl enable rabbitmq-server.service - # systemctl start rabbitmq-server.service - - -3. Add the OpenStack user: - - .. code-block:: console - - # rabbitmqctl add_user openstack RABBIT_PASS - Creating user openstack ... - ...done. - - Replace ``RABBIT_PASS`` with a suitable password. - - -4. Permit configuration, write, and read access for the OpenStack user: - - .. code-block:: console - - # rabbitmqctl set_permissions openstack ".*" ".*" ".*" - - Setting permissions for user "openstack" in vhost "/" ... - ...done. From ab9fbb5698b0668f09077219c67aae06e140bc50 Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Fri, 20 Nov 2015 10:31:23 -0600 Subject: [PATCH 11/15] Minor formatting and non-technical text corrections to these files: - OpenStack Dashboard - OpenStack Block Storage - OpenStack Orchestration - OpenStack Networking - OpenStack Telemetry --- source/openstack_block_storage.rst | 8 +- source/openstack_dashboard.rst | 2 +- source/openstack_networking.rst | 6 +- source/openstack_orchestration.rst | 257 ++++++++++++++--------------- source/openstack_telemetry.rst | 74 ++++----- 5 files changed, 166 insertions(+), 181 deletions(-) diff --git a/source/openstack_block_storage.rst b/source/openstack_block_storage.rst index 533d3214..296b6550 100644 --- a/source/openstack_block_storage.rst +++ b/source/openstack_block_storage.rst @@ -3,10 +3,10 @@ Block Storage ######################## -The OpenStack Block Storage service (cinder) adds persistent storage to +The OpenStack* Block Storage service (cinder) adds persistent storage to a virtual machine. Block Storage provides an infrastructure for managing volumes, and interacts with OpenStack Compute to provide volumes for -instances. The service also enables management of volume snapshots, and +instances. The service also enables management of volume snapshots and volume types. Install and configure controller node @@ -96,9 +96,9 @@ must create a database, service credentials, and API endpoints. | type | volumev2 | +-------------+----------------------------------+ - .. note:: + .. note:: - The Block Storage services requires two service entities. + The Block Storage services requires two service entities. #. Create the Block Storage service API endpoints:: diff --git a/source/openstack_dashboard.rst b/source/openstack_dashboard.rst index 4fb4d816..a77d3c28 100644 --- a/source/openstack_dashboard.rst +++ b/source/openstack_dashboard.rst @@ -3,7 +3,7 @@ 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 and users to manage various OpenStack resources and services. diff --git a/source/openstack_networking.rst b/source/openstack_networking.rst index 58ab2cfb..4d302cea 100644 --- a/source/openstack_networking.rst +++ b/source/openstack_networking.rst @@ -62,7 +62,7 @@ database, service credentials, and an API endpoint. $ openstack role add --project service --user neutron admin - Note: This command provides no output. + Note: This command provides no output. * Create the ``neutron`` service entity:: @@ -365,8 +365,8 @@ The Layer-3 (L3) agent provides routing and NAT services for virtual networks. interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver external_network_bridge = - Note: The ``external_network_bridge`` option intentionally lacks a value to - enable multiple external networks on a single agent. + Note: The ``external_network_bridge`` option intentionally lacks a value to + enable multiple external networks on a single agent. Configure the DHCP agent ~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/openstack_orchestration.rst b/source/openstack_orchestration.rst index 75c2e90c..b047c2b0 100644 --- a/source/openstack_orchestration.rst +++ b/source/openstack_orchestration.rst @@ -1,16 +1,17 @@ .. _openstack_orchestration: -OpenStack* Orchestration +Orchestration ############################################################ -The Orchestration service provides a template-based orchestration for -describing a cloud application by running OpenStack* API calls to generate +The OpenStack* Orchestration service provides a template-based orchestration for +describing a cloud application by running OpenStack API calls to generate running cloud applications. The software integrates other core components of -OpenStack* into a one-file template system. -The templates allow you to create most OpenStack* resource types, such as +OpenStack into a one-file template system. + +The templates allow you to create most OpenStack resource types, such as instances, floating IPs, volumes, security groups and users. It also provides advanced functionality, such as instance high availability, instance -auto-scaling, and nested stacks. This enables OpenStack* core projects to +auto-scaling, and nested stacks. This enables OpenStack core projects to receive a larger user base. Installing and configuring controller node @@ -71,145 +72,129 @@ database, service credentials, and API endpoints. $ openstack role add --project service --user heat admin - * Create the ``heat`` and ``heat-cfn`` service entities: + * Create the ``heat`` and ``heat-cfn`` service entities:: - * :: + $ openstack service create --name heat \ + --description "Orchestration" orchestration + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Orchestration | + | enabled | True | + | id | 727841c6f5df4773baa4e8a5ae7d72eb | + | name | heat | + | type | orchestration | + +-------------+----------------------------------+ - $ openstack service create --name heat \ - --description "Orchestration" orchestration - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | Orchestration | - | enabled | True | - | id | 727841c6f5df4773baa4e8a5ae7d72eb | - | name | heat | - | type | orchestration | - +-------------+----------------------------------+ + $ openstack service create --name heat-cfn \ + --description "Orchestration" cloudformation + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Orchestration | + | enabled | True | + | id | c42cede91a4e47c3b10c8aedc8d890c6 | + | name | heat-cfn | + | type | cloudformation | + +-------------+----------------------------------+ - * :: +#. Create the Orchestration service API endpoints:: - $ openstack service create --name heat-cfn \ - --description "Orchestration" cloudformation - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | Orchestration | - | enabled | True | - | id | c42cede91a4e47c3b10c8aedc8d890c6 | - | name | heat-cfn | - | type | cloudformation | - +-------------+----------------------------------+ + $ openstack endpoint create --region RegionOne \ + orchestration public http://controller:8004/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 3f4dab34624e4be7b000265f25049609 | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | + | service_name | heat | + | service_type | orchestration | + | url | http://controller:8004/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ -#. Create the Orchestration service API endpoints: + $ openstack endpoint create --region RegionOne \ + orchestration internal http://controller:8004/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 9489f78e958e45cc85570fec7e836d98 | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | + | service_name | heat | + | service_type | orchestration | + | url | http://controller:8004/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ - * :: + $ openstack endpoint create --region RegionOne \ + orchestration admin http://controller:8004/v1/%\(tenant_id\)s + +--------------+-----------------------------------------+ + | Field | Value | + +--------------+-----------------------------------------+ + | enabled | True | + | id | 76091559514b40c6b7b38dde790efe99 | + | interface | admin | + | region | RegionOne | + | region_id | RegionOne | + | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | + | service_name | heat | + | service_type | orchestration | + | url | http://controller:8004/v1/%(tenant_id)s | + +--------------+-----------------------------------------+ - $ openstack endpoint create --region RegionOne \ - orchestration public http://controller:8004/v1/%\(tenant_id\)s - +--------------+-----------------------------------------+ - | Field | Value | - +--------------+-----------------------------------------+ - | enabled | True | - | id | 3f4dab34624e4be7b000265f25049609 | - | interface | public | - | region | RegionOne | - | region_id | RegionOne | - | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | - | service_name | heat | - | service_type | orchestration | - | url | http://controller:8004/v1/%(tenant_id)s | - +--------------+-----------------------------------------+ + $ openstack endpoint create --region RegionOne \ + cloudformation public http://controller:8000/v1 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | b3ea082e019c4024842bf0a80555052c | + | interface | public | + | region | RegionOne | + | region_id | RegionOne | + | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | + | service_name | heat-cfn | + | service_type | cloudformation | + | url | http://controller:8000/v1 | + +--------------+----------------------------------+ - * :: + $ openstack endpoint create --region RegionOne \ + cloudformation internal http://controller:8000/v1 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 169df4368cdc435b8b115a9cb084044e | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | + | service_name | heat-cfn | + | service_type | cloudformation | + | url | http://controller:8000/v1 | + +--------------+----------------------------------+ - $ openstack endpoint create --region RegionOne \ - orchestration internal http://controller:8004/v1/%\(tenant_id\)s - +--------------+-----------------------------------------+ - | Field | Value | - +--------------+-----------------------------------------+ - | enabled | True | - | id | 9489f78e958e45cc85570fec7e836d98 | - | interface | internal | - | region | RegionOne | - | region_id | RegionOne | - | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | - | service_name | heat | - | service_type | orchestration | - | url | http://controller:8004/v1/%(tenant_id)s | - +--------------+-----------------------------------------+ - - * :: - - $ openstack endpoint create --region RegionOne \ - orchestration admin http://controller:8004/v1/%\(tenant_id\)s - +--------------+-----------------------------------------+ - | Field | Value | - +--------------+-----------------------------------------+ - | enabled | True | - | id | 76091559514b40c6b7b38dde790efe99 | - | interface | admin | - | region | RegionOne | - | region_id | RegionOne | - | service_id | 727841c6f5df4773baa4e8a5ae7d72eb | - | service_name | heat | - | service_type | orchestration | - | url | http://controller:8004/v1/%(tenant_id)s | - +--------------+-----------------------------------------+ - - * :: - - $ openstack endpoint create --region RegionOne \ - cloudformation public http://controller:8000/v1 - +--------------+----------------------------------+ - | Field | Value | - +--------------+----------------------------------+ - | enabled | True | - | id | b3ea082e019c4024842bf0a80555052c | - | interface | public | - | region | RegionOne | - | region_id | RegionOne | - | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | - | service_name | heat-cfn | - | service_type | cloudformation | - | url | http://controller:8000/v1 | - +--------------+----------------------------------+ - - * :: - - $ openstack endpoint create --region RegionOne \ - cloudformation internal http://controller:8000/v1 - +--------------+----------------------------------+ - | Field | Value | - +--------------+----------------------------------+ - | enabled | True | - | id | 169df4368cdc435b8b115a9cb084044e | - | interface | internal | - | region | RegionOne | - | region_id | RegionOne | - | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | - | service_name | heat-cfn | - | service_type | cloudformation | - | url | http://controller:8000/v1 | - +--------------+----------------------------------+ - - * :: - - $ openstack endpoint create --region RegionOne \ - cloudformation admin http://controller:8000/v1 - +--------------+----------------------------------+ - | Field | Value | - +--------------+----------------------------------+ - | enabled | True | - | id | 3d3edcd61eb343c1bbd629aa041ff88b | - | interface | internal | - | region | RegionOne | - | region_id | RegionOne | - | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | - | service_name | heat-cfn | - | service_type | cloudformation | - | url | http://controller:8000/v1 | - +--------------+----------------------------------+ + $ openstack endpoint create --region RegionOne \ + cloudformation admin http://controller:8000/v1 + +--------------+----------------------------------+ + | Field | Value | + +--------------+----------------------------------+ + | enabled | True | + | id | 3d3edcd61eb343c1bbd629aa041ff88b | + | interface | internal | + | region | RegionOne | + | region_id | RegionOne | + | service_id | c42cede91a4e47c3b10c8aedc8d890c6 | + | service_name | heat-cfn | + | service_type | cloudformation | + | url | http://controller:8000/v1 | + +--------------+----------------------------------+ #. Orchestration requires additional information in the Identity service to manage stacks. To add this information, complete these steps: diff --git a/source/openstack_telemetry.rst b/source/openstack_telemetry.rst index 37588037..1ddd62a1 100644 --- a/source/openstack_telemetry.rst +++ b/source/openstack_telemetry.rst @@ -1,22 +1,22 @@ .. _openstack_telemetry: -OpenStack* Telemetry +Telemetry ############################################################ Overview --------- -The Telemetry service performs the following functions: +The OpenStack* Telemetry service performs the following functions: -- Efficiently polls metering data related to OpenStack services; +- Efficiently polls metering data related to OpenStack services - Collects event and metering data by monitoring notifications sent - from services; + from services - Publishes collected data to various targets, including data stores - and message queues; -- Creates alarms when collected data breaks defined rules. + and message queues +- Creates alarms when collected data breaks defined rules -Installing and configure ------------------------- +Installing and configuring +--------------------------- This section describes how to install and configure the Telemetry service, code-named ceilometer, on the controller node. The Telemetry @@ -88,21 +88,21 @@ endpoint. * Add the ``admin`` role to the ``ceilometer`` user:: - $ openstack role add --project service --user ceilometer admin + $ openstack role add --project service --user ceilometer admin * Create the ``ceilometer`` service entity:: - $ openstack service create --name ceilometer \ - --description "Telemetry" metering - +-------------+----------------------------------+ - | Field | Value | - +-------------+----------------------------------+ - | description | Telemetry | - | enabled | True | - | id | 3405453b14da441ebb258edfeba96d83 | - | name | ceilometer | - | type | metering | - +-------------+----------------------------------+ + $ openstack service create --name ceilometer \ + --description "Telemetry" metering + +-------------+----------------------------------+ + | Field | Value | + +-------------+----------------------------------+ + | description | Telemetry | + | enabled | True | + | id | 3405453b14da441ebb258edfeba96d83 | + | name | ceilometer | + | type | metering | + +-------------+----------------------------------+ #. Create the Telemetry service API endpoints:: @@ -190,15 +190,15 @@ Install and configure components with the password you chose for the ``openstack`` account in RabbitMQ:: - [DEFAULT] - ... - rpc_backend = rabbit - - [oslo_messaging_rabbit] - ... - rabbit_host = controller - rabbit_userid = openstack - rabbit_password = RABBIT_PASS + [DEFAULT] + ... + rpc_backend = rabbit + + [oslo_messaging_rabbit] + ... + rabbit_host = controller + rabbit_userid = openstack + rabbit_password = RABBIT_PASS * In the ``[DEFAULT]`` and ``[keystone_authtoken]`` sections, configure Identity service access. Replace *CEILOMETER_PASS* @@ -224,14 +224,14 @@ Install and configure components credentials. Replace *CEILOMETER_PASS* with the password you chose for the ``ceilometer`` user in the Identity service:: - [service_credentials] - ... - os_auth_url = http://controller:5000/v2.0 - os_username = ceilometer - os_tenant_name = service - os_password = CEILOMETER_PASS - os_endpoint_type = internalURL - os_region_name = RegionOne + [service_credentials] + ... + os_auth_url = http://controller:5000/v2.0 + os_username = ceilometer + os_tenant_name = service + os_password = CEILOMETER_PASS + os_endpoint_type = internalURL + os_region_name = RegionOne * Ensure files have proper ownership by running the following command:: From 9bd7fc3f452cbe9a39b01d51d9c2700cdc832446 Mon Sep 17 00:00:00 2001 From: "Munoz, Obed N" Date: Fri, 20 Nov 2015 15:43:46 -0600 Subject: [PATCH 12/15] Remove nova-network reference Signed-off-by: Munoz, Obed N --- source/openstack_bundle_and_service_summary.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/openstack_bundle_and_service_summary.rst b/source/openstack_bundle_and_service_summary.rst index 1ae888de..10773bc2 100644 --- a/source/openstack_bundle_and_service_summary.rst +++ b/source/openstack_bundle_and_service_summary.rst @@ -24,7 +24,7 @@ services: "openstack-orchestration", "Heat", "Orchestrates multiple composite cloud applications by using either the native Heat Orchestration Template (HOT) template format or the AWS CloudFormation template format." OpenStack is highly configurable to meet different needs. This guide -uses two-node architecture with legacy networking (Nova-network). +uses a two-node architecture. - The controller node runs the Identity Service, Image Service, management portion of Compute, and the Dashboard. It also includes @@ -48,4 +48,4 @@ uses two-node architecture with legacy networking (Nova-network). using overlay segmentation methods. Additionally, this option provides the foundation for advanced services such as LBaaS and FWaaS. -Next topic: :ref:`openstack_sys_req_and_pw_summary`. \ No newline at end of file +Next topic: :ref:`openstack_sys_req_and_pw_summary`. From df1fcf34b2be2343416f1d55c93df7b7157eaaf0 Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Fri, 20 Nov 2015 16:02:42 -0600 Subject: [PATCH 13/15] Fixed formatting in index.rst. No topic changes. --- source/index.rst | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/source/index.rst b/source/index.rst index 235ced3c..3164348e 100644 --- a/source/index.rst +++ b/source/index.rst @@ -3,12 +3,8 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. - -Welcome to ClearLinux Documentation -=================================== - -Contents -======== +Clear Linux* Project for Intel® Architecture--Documentation +=========================================================== .. toctree:: :maxdepth: 2 @@ -72,14 +68,6 @@ OpenStack* implementation openstack_telemetry -License and Disclaimers -======================= -.. toctree:: - - disclaimers - documentation_license - - Indices and tables ================== @@ -87,3 +75,9 @@ Indices and tables * :ref:`modindex` * :ref:`search` +License and Disclaimers +======================= +.. toctree:: + +.. include:: documentation_license.rst + From 3efb9d787ecd88b516433b49e6f8fc781f4db7c5 Mon Sep 17 00:00:00 2001 From: James Hunt Date: Mon, 23 Nov 2015 13:31:27 +0000 Subject: [PATCH 14/15] Update Clear Containers for Docker to v1.9.0 and add Fedora 23. Signed-off-by: James Hunt --- source/gs-clear-containers-gettting-started.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/gs-clear-containers-gettting-started.rst b/source/gs-clear-containers-gettting-started.rst index b698937c..256904f6 100644 --- a/source/gs-clear-containers-gettting-started.rst +++ b/source/gs-clear-containers-gettting-started.rst @@ -18,7 +18,7 @@ or better. However, binaries for a range of operating systems are available from Currently experimental builds are available for: - CentOS*, Scientific Linux* 7 -- Fedora* 21, 22 +- Fedora* 21, 22, 23 - openSUSE* 13.1, 13.2, Tumbleweed - SUSE* Linux Enterprise 12 - Debian* 8.0 @@ -69,7 +69,7 @@ instructions below: Source Code =========== -The experimental source code is based on the Docker version 1.8.1 upstream release and is available at: +The experimental source code is based on the Docker version 1.9.0 upstream release and is available at: - https://github.com/clearlinux/docker From 3891716c556586c80e8d412db5d6d45d70afc84d Mon Sep 17 00:00:00 2001 From: Leona Date: Mon, 23 Nov 2015 08:02:15 -0800 Subject: [PATCH 15/15] cleanup README --- README.rst | 78 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 31 deletions(-) diff --git a/README.rst b/README.rst index e330b9c8..995dd54c 100644 --- a/README.rst +++ b/README.rst @@ -5,6 +5,12 @@ ClearLinux Docs are written in :abbr:`ReStructuredText (ReST)` AKA ``.rst``, whi makes it easy to build parsable, command-line readable, indexed, and search-friendly documentation and APIs with `Sphinx`_. + +.. _requirements: + +Requirements +------------ + Building the docs with Sphinx, however, requires a few prerequisites: * `GNU make`_ @@ -40,16 +46,18 @@ Dependencies fulfilled, let's now clone that gitlab repo: .. tip:: - If the first time you've cloned the ``project-docs`` is following along with this tutorial, - you can skip this section; go straight ahead to the :ref:`Run make` section. However, if you - cloned an earlier version and had trouble generating HTML documentation locally, try the steps - documented here. + If the first time you've cloned ``project-docs`` is following along + with this tutorial, you may skip this section; go straight ahead to the + :ref:`Run make` section. However, if you cloned an earlier version and + had trouble generating HTML documentation locally, try the steps documented + here. -Before running Sphinx, we need to correct some of the problems in the Gitlab repo. -Running :command:`make` straightaway from the root of our clone won't work. We need to delete the -existing :file:`conf.py` file and also rename the existing index file so it can generate a new one -with the correct parameters. Some files in the Gitlab repo are remnant of a build on a Windows -box, and they don't quite work on Linux. +Before running Sphinx, we need to correct some of the problems in the Gitlab +repo. Running :command:`make` straightaway from the root of our clone won't +work. We need to delete the existing :file:`conf.py` file and also rename +the existing index file so it can generate a new one with the correct +parameters. Some files in the Gitlab repo are remnant of a build on a Windows +box, and they don't quite work on Linux. .. code-block:: console @@ -61,22 +69,26 @@ box, and they don't quite work on Linux. $ mv source/index.rst source/oldindex.rst -In the cloned source directory, we have all the .rst files we need to build the docs. We -run a native instance of :command:`sphinx-quickstart`. The program will run you through -a series of questions. The main things to be conscious of here: +In the cloned source directory, we have all the .rst files we need to build +the docs. We run a native instance of :command:`sphinx-quickstart`. The +program will run you through a series of questions. The main things to be +conscious of here: * Tell it to use the existing :file:`source/` directory as the Root path for - the documentation; this is where it looks to find what it needs to generate the HTML. -* It's better to tell it to **not** separate the source and build directories; if you - answer "y" here, Sphinx will generate *another* :file:`source/` directory, which - can be confusing. -* The running quickstart also creates as :file:`_static` directory where you should put - all images, screenshots, and other static content. The builder might complain about this - directory if it exists already, but it's easy to fix. + the documentation; this is where it looks to find what it needs to generate + the HTML. +* It's better to tell it to **not** separate the source and build directories; + if you answer "y" here, Sphinx will generate *another* :file:`source/` directory, + which can be confusing. +* Running quickstart also creates a :file:`_static` directory where you + should put all images, screenshots, and other content that is linked as static + content. The builder has been known to complain about this directory if it exists + already, but it's easy to fix. * Run the builder only once. -What follows here is a log from a successful :command:`sphinx-quickstart` build started from -within an older clone of the :file:`project-docs/` directory. Blank answers indicate default. +What follows here is a log from a successful :command:`sphinx-quickstart` build +started from within an older clone of the :file:`project-docs/` directory. Blank +answers indicate default. .. code-block:: console @@ -155,18 +167,20 @@ within an older clone of the :file:`project-docs/` directory. Blank answers ind Finished: An initial directory structure has been created. - You should now populate your master file source/index.rst and create other documentation - source files. Use the Makefile to build the docs, like so: + You should now populate your master file source/index.rst and create other + documentation source files. Use the Makefile to build the docs, like so: make builder - where "builder" is one of the supported builders, e.g. html, latex or linkcheck. + where "builder" is one of the supported builders, e.g. html, latex or + linkcheck. .. _run_make: Run make -------- -Finally are we ready to run :command:`make`. Be sure to :command:`cd` to the :file:`source/` -directory before running :command:`make` ``html``, or the doc format of your choice. +Finally are we ready to run :command:`make`. Be sure to :command:`cd` to the +:file:`source/` directory before running :command:`make` ``html``, or the doc +format of your choice. .. code-block:: console @@ -182,12 +196,14 @@ directory before running :command:`make` ``html``, or the doc format of your cho Build finished. The HTML pages are in _build/html. -Open one of these pages in a web browser to view the rendered documentation. If needed, you can -copy the contents of the oldindex.rst into the generated index file, re-run :command:`make`, to -generate the new HTML, and your local Table of Contents should index and update accordingly. +Open one of these pages in a web browser to view the rendered documentation. +If needed, you can copy the contents of the oldindex.rst into the generated +index file, re-run :command:`make`, to generate the new HTML, and your local +Table of Contents should index and update accordingly. -For tips on how to contribute documentation formatted in the .rst style needed to integrate on the -Clearlinux.org website, please see `Theming Sphinx`_. +For tips on how to contribute documentation formatted in the .rst style +needed to integrate on the Clearlinux.org website, please see + `Theming Sphinx`_. .. _Sphinx: http://sphinx-doc.org/ .. _GNU make: https://www.gnu.org/software/make/