From be46563f670b04f064d78fed914bd4f79b2f394d Mon Sep 17 00:00:00 2001 From: "Tullis, Michael L" Date: Thu, 28 Apr 2016 11:17:37 -0600 Subject: [PATCH] This commit provides the documentation for the OpenStack Swift implementation with the clear-config-management tool. --- source/installing_openstack.rst | 18 ++--- source/openstack_conf_vars_list.rst | 13 +++- source/openstack_env_inventory_file.rst | 6 +- .../openstack_swift_deployment_scenarios.rst | 69 +++++++++++++++++++ 4 files changed, 93 insertions(+), 13 deletions(-) create mode 100644 source/openstack_swift_deployment_scenarios.rst diff --git a/source/installing_openstack.rst b/source/installing_openstack.rst index 83f9a0b3..b2611e10 100644 --- a/source/installing_openstack.rst +++ b/source/installing_openstack.rst @@ -1,9 +1,9 @@ .. _installing_openstack: -Installing OpenStack -#################### +Installing OpenStack* +##################### -This section details an OpenStack* installation that uses +This section details an OpenStack installation that uses bundles available for Clear Linux* OS for Intel® Architecture. The sample configuration files that are included will likely @@ -26,18 +26,18 @@ components: - Neutron - Dashboard (In identity node) - Heat + - Swift Note: ----- -Below you will find the reference to componets supported on ClearLinux* but -its support in Clear Config Management is still pending of development: +Below you will find the reference to componets supported on Clear Linux OS for Intel Architecture, but +its support in Clear Config Management is still pending development: .. csv-table:: "Supported Components on ClearLinux*, but unsupported by Clear Config Management" :header: "Component", "Bundles", "OpenStack* official documentation" - :widths: 20, 70, 100 + :widths: 20, 70, 100 - "Swift", "openstack-object-storage and openstack-block-storage-controller", "http://docs.openstack.org/developer/swift/" "Cinder", "openstack-block-storage and openstack-block-storage-controller", "http://docs.openstack.org/developer/cinder/" "Ceilometer", "openstack-telemetry", "http://docs.openstack.org/developer/ceilometer/" @@ -45,7 +45,7 @@ its support in Clear Config Management is still pending of development: Prerequisites ============= -Before the installer can set up your cloud environment, these requirements +Before the installer can set up your cloud environment, these prerequisites should be completed (if they aren't already): #. Create a pair of SSH keys. @@ -65,7 +65,7 @@ should be completed (if they aren't already): Using the Installer =================== -This step presumes a Clear Linux* machine as the ansible host. +This step presumes a machine running Clear Linux OS for Intel Architecture as the ansible host. Install the bundle diff --git a/source/openstack_conf_vars_list.rst b/source/openstack_conf_vars_list.rst index fe054757..682f02d1 100644 --- a/source/openstack_conf_vars_list.rst +++ b/source/openstack_conf_vars_list.rst @@ -1,7 +1,7 @@ .. _openstack_conf_vars_list: -Variables for OpenStack Deployment -################################## +Variables for OpenStack* Deployment +################################### This installer provides a variety of configurations you can set through variables; below you will find a reference of the components supported @@ -29,6 +29,13 @@ Required Variables "*(Heat)* **heat_user_password**", "Password for heat user" "*(Heat)* **heat_database_password**", "Password for heat database" "*(Heat)* **heat_domain**", "The heat domain that contains projects and users for stacks" + "*(Swift)* **swift_user_password**", "Password for 'swift' user" + "*(Swift)* **swift_database_password**", "Password for 'swift' database" + "*(Swift)* **swift_replica_count**", "Replica number for each object. IMPORTANT: This number must be lower than the sum of all the storage devices among all storage nodes. It can be changed later." + "*(Swift)* **swift_hash_path_suffix**", "Suffix for the object path name" + "*(Swift)* **swift_hash_path_prefix**", "Prefix for the object path name" + "*(Swift)* **swift_storage_device_path**", "The path of the storage devices" + "*(Swift)* **swift_storage_devices**", "A list of the storage devices dedicated to swift deployment. For more information, see :ref:`openstack_swift_deployment_scenarios`" Optional Variables ================== @@ -44,6 +51,8 @@ Optional Variables "*(Nova)* **nova_public_interface_name**: unset", "Public interface of Neutron machines, if is not set, it will take the default interface reported by **ip route**" "*(Nova)* **nova_virt_type**: qemu", "Virtualization type (qemu | kvm), if this is not set, then the playbook will try to guess it" "*(Neutron)* **os_tuning_params**: net.ipv4.ip_forward: 1, net.ipv4.conf.default.rp_filter: 0, net.ipv4.conf.all.rp_filter: 0, net.bridge.bridge-nf-call-iptables: 1, net.bridge.bridge-nf-call-ip6tables: 1", "syctl values needed by neutron when using openvswitch deployment scenario" + "*(Swift)* **swift_public_interface_name**, "Public interface of storage nodes, also known as the storage network interface name; If is not set, it will take the default interface reported by **ip route**" + Note: ----- diff --git a/source/openstack_env_inventory_file.rst b/source/openstack_env_inventory_file.rst index 2a3353b9..8398bf5e 100644 --- a/source/openstack_env_inventory_file.rst +++ b/source/openstack_env_inventory_file.rst @@ -31,7 +31,7 @@ Below you will find the description of each group in the `hosts` file. .. csv-table:: "Inventory File Groups" :header: "Group", "Components", "Comments" - :widths: 40, 40, 300 + :widths: 40, 40, 300 "[dbservers]", "MariaDB", "" "[messaging_servers]", "RabbitMQ", "" @@ -41,9 +41,11 @@ Below you will find the description of each group in the `hosts` file. "[openstack_compute]", "Nova", "Accepts multiple entries to have multiple compute nodes. You can add more entries and re-run the installer to add them to your environment." "[openstack_networking]", "Neutron", "" "[openstack_orchestration]", "Heat", "" + "[openstack_object_storage_controller]", "Swift", "The Swift storage controller. It runs the swift proxy server and the memcache server" + "[openstack_object_storage]", "Swift", "The Swift Storage nodes. Accepts multiple entries to have multiple storage nodes" -Important Notes +Important notes --------------- * To omit any role, do not add an entry under its group section. diff --git a/source/openstack_swift_deployment_scenarios.rst b/source/openstack_swift_deployment_scenarios.rst new file mode 100644 index 00000000..4c9de9b2 --- /dev/null +++ b/source/openstack_swift_deployment_scenarios.rst @@ -0,0 +1,69 @@ +.. _openstack_swift_deployment_scenarios: + +OpenStack* Swift* Deployment Scenarios +###################################### + +You can install OpenStack Swift using clear-config-management through two +possible scenarios. + +- **Scenario #1:** All the storage nodes are identical, with the same number of storage devices with the same names. + +- **Scenario #2:** The storage setup is heterogeneous. The list of storage devices must be provided for each storage node individually. + + +Scenario #1: Identical storage nodes scenario +============================================= + +To set up this scenario, the ``swift_storage_devices`` variable needs to be +defined in ``../group_vars/all`` as follows: + +.. code-block:: yaml + + ... + swift_storage_device_path: /dev/ + swift_storage_devices: + - sda + - sdb + ... + +Scenario #2: Different storage nodes scenario +============================================= + +With this setup, specific information about each storage node has to be provided. + +First, in the root of your Ansible* directory setup, create a new directory called ``host_vars``. +Inside ``host_vars``, for each storage node, create a new file with the name of the +storage node's hostname or IP. In each file, provide the list of the storage +devices. + +The Ansible directory setup should look similar to the following directory tree: + +.. code-block:: console + + openstack/ + ├── group_vars + │ └── all + ├── hosts + ├── host_vars + │ ├── storage-one + │ └── storage-two + ├── openstack_deployment.yml + └── README.md + +And the ``storage-one`` and ``storage-two`` storage node files should look similar to this: + +.. code-block:: yaml + + --- + devices: + - sdb + - sdc + - sdd + + +.. code-block:: yaml + + --- + devices: + - vdb + - vdc