Add new documentation for openstack deployment with ansible

Signed-off-by: Leoswaldo Macias <leoswaldo.macias@intel.com>
This commit is contained in:
Leoswaldo Macias
2016-03-31 12:41:47 -06:00
parent 22067e6126
commit 71e60d06e4
7 changed files with 249 additions and 15 deletions
@@ -0,0 +1,44 @@
.. _configure_openstack_environment:
Configure your environment
==========================
Before continuing with the installation process, is important to understand:
* The :file:`hosts` file; this file defines the roles your machines play in the
overall scheme of your network mapping.
**Note**: For more in-depth information, see :ref:`openstack_env_inventory_file`
* The ``group_vars/all`` structuring can be used to override variable
values. **Note**: For more in-depth information, see :ref:`openstack_conf_vars_about`
Once you understand these components and are comfortable modifying them to affect
the network configuration, you can proceed as follows:
#. Copy ``/usr/share/ansible/examples/openstack`` to your working directory.
#. Move into the copied directory.
#. Edit the :file:`hosts` file to specify node roles.
#. Edit the contents under ``group_vars/all`` to set passwords and other needed
variables. **Note**: Default variables exist for every role in the
:file:`roles/<role>/defaults/main.yml` file. To override a default, define
it with specifications under ``group_vars/all``.
Run the installer
=================
Finally, you can run the installer.
#. Run the installer as follows, replacing ``<ssh_key>`` with the key you've
previously set up::
$ ansible-playbook -i hosts openstack_deployment.yml --private-key=<ssh_key>
After running the previous command you should see the output of the tasks
that are running.
At the end of the execution Ansible* will display a summary of the results.
+5 -14
View File
@@ -6,17 +6,8 @@ OpenStack* implementation
openstack_use_cases
openstack_bundle_and_service_summary
openstack_sys_req_and_pw_summary
openstack_installing_bundles
openstack_supporting-database
openstack_supporting-messaging
openstack_identity
openstack_identity-openrc
openstack_image
openstack_compute
openstack_block_storage
openstack_dashboard
openstack_networking
openstack_orchestration
openstack_telemetry
openstack_object_storage
installing_openstack
configure_openstack_environment
openstack_env_inventory_file
openstack_conf_vars_about
openstack_conf_vars_list
+63
View File
@@ -0,0 +1,63 @@
.. _installing_openstack:
Installing OpenStack
####################
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
require modification for your specific environment.
This installer will be using Ansible* as configuration management tool.
Components supported by this installer
======================================
At the moment, this installer can deploy any or all of the following
components:
- MariaDB
- RabbitMQ
- Keystone
- Glance
- Nova
- Neutron
- Dashboard (An identity node)
- Heat
Prerequisites
=============
Before the installer can set up your cloud environment, these requirements
should be completed (if they aren't already):
#. Create a pair of SSH keys.
#. Copy your public key to each node.
#. Create the :file:`sshd_config` in ``/etc/ssh`` if it doesn't exist::
# mkdir -p /etc/ssh && touch /etc/ssh/sshd_config
#. Allow ssh root access by adding "PermitRootLogin yes" to the ssh
configuration.::
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
Using the Installer
===================
This step presumes a Clear Linux* machine as the ansible host.
Install the bundle
------------------
#. Install the `sysadmin-hostmgmt` bundle::
# swupd bundle-add sysadmin-hostmgmt
**Next**: :ref:`configure_openstack_environment`
@@ -63,4 +63,4 @@ uses a two-node architecture.
using overlay segmentation methods. Additionally, this option provides
the foundation for advanced services such as LBaaS and FWaaS.
Next topic: :ref:``.
Next topic: :ref:`installing_openstack`.
+14
View File
@@ -0,0 +1,14 @@
.. _openstack_conf_vars_about:
About "group_vars/all"
######################
The ``group_vars/all`` section is where you will specify the
values for your passwords and other required or optional parameters.
Variables in this section are built with yaml format.
For a more detailed reference of the numerous variables and parameters
that can be set, see the :ref:`openstack_conf_vars_list`.
**Back to Configuration Section** :ref:`configure_openstack_environment`
+63
View File
@@ -0,0 +1,63 @@
.. _openstack_conf_vars_list:
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
with Clear Linux* OS for Intel® Architecture.
.. csv-table:: "Required Parameters Per Component"
:header: "Variable", "Components Impacted", "Description"
:widths: 90, 90, 150
"rabbitmq_password", "RabbitMQ, Neutron, Nova, Heat", "Password of
RabbitMQ user "
"database_root_password", "ALL", "Password for root database user"
"keystone_database_password", "Keystone", "Password for 'keystone'
database"
"keystone_admin_password", "ALL", "Password for 'admin' user"
"keystone_admin_token", "Keystone", "Used only for installation
process of keystone"
"glance_user_password", "Glance", "Password for 'glance' user"
"glance_database_password", "Glance", "Password for 'glance' database"
"nova_user_password", "Nova, Neutron", "Password for 'nova' user"
"nova_database_password", "Nova", "Password for 'nova' database"
"neutron_database_password", "Neutron", "Password for 'neutron'
database"
"neutron_user_password", "Neutron, Nova", "Password for 'neutron'
user"
"metadata_proxy_shared_secret", "Neutron, Nova", "Proxy"
"heat_domain_admin_password", "Heat", "Password for heat domain admin
user"
"heat_user_password", "Heat", "Password for heat user"
"heat_database_password", "Heat", "Password for heat database"
"heat_domain", "Heat", "The heat domain that contains projects and
users for stacks"
.. csv-table:: "Optional Parameters Per Component"
:header: "Variable", "Default Value", "Components Impacted", "Description"
:widths: 90, 40, 90, 150
"swupd_args", "", "ALL", "Optional arguments for swupd"
"log_debug", "False", "ALL", "Set to True to enable debug log level on all
services"
"rabbitmq_username", "openstack", "RabbitMQ, Neutron, Nova, Heat", "User ID for
RabbitMQ"
"neutron_public_interface_name", "First default iface", "Neutron, Nova", "Public interface of
Neutron machines, if not define it will make autodiscovery for each machine"
"nova_public_interface_name", "First default iface", "Nova", "Public
interface of Nova machines, if not define it will make autodiscovery for each
machine"
"nova_virt_type", "qemu", "Nova", "Virtualization type (qemu | kvm), if
this is not set, then the playbook will try to guess it"
"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", "Neutron", "syctl values needed by neutron when
using openvswitch deployment scenario"
Note:
-----
If you would like to override a default, you can define it in the
:ref:`openstack_conf_vars_about`.
**Back to Configuration Section** :ref:`configure_openstack_environment`
+59
View File
@@ -0,0 +1,59 @@
.. _openstack_env_inventory_file:
The "hosts" file
################
The :file:`hosts` file is an inventory file where you specify, via
``ini`` format, the roles your machine plays.
The hosts file can be structured with different groups, where each
group plays a specific role in your environment and network mapping.
Consider the following example::
[openstack_identity]
192.168.50.13
Here the :role:`[openstack_identity]` syntax defines the group, and
``192.168.50.13`` specifies the machines that possess that role. You
may define multiple machines in the same group; this is a standard
configuration for :role:`[openstack_compute]` nodes::
[openstack_compute]
192.168.50.16
192.168.50.17
Inventory file groups
---------------------
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
"[dbservers]", "MariaDB", ""
"[messaging_servers]", "RabbitMQ", ""
"[openstack_identity]", "Keystone, Horizon", ""
"[openstack_image]", "Glance", ""
"[openstack_compute_controller]", "Nova", ""
"[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", ""
Important Notes
---------------
* To omit any role, do not add an entry under its group section.
* To create an ``All In One`` scenario, specify the same machine name or IPv4
Address under all of the groups.
For further reference, check out the `Ansible`_ documentation.
**Back to Configuration Section** :ref:`configure_openstack_environment`
.. _Ansible: http://docs.ansible.com/ansible/intro_inventory.html