diff --git a/source/configure_openstack_environment.rst b/source/configure_openstack_environment.rst new file mode 100644 index 00000000..85b223c2 --- /dev/null +++ b/source/configure_openstack_environment.rst @@ -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//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 ```` with the key you've + previously set up:: + + $ ansible-playbook -i hosts openstack_deployment.yml --private-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. diff --git a/source/index-openstack.rst b/source/index-openstack.rst index 4a1787be..12856ae4 100644 --- a/source/index-openstack.rst +++ b/source/index-openstack.rst @@ -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 diff --git a/source/installing_openstack.rst b/source/installing_openstack.rst new file mode 100644 index 00000000..8e5ba276 --- /dev/null +++ b/source/installing_openstack.rst @@ -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` diff --git a/source/openstack_bundle_and_service_summary.rst b/source/openstack_bundle_and_service_summary.rst index d34b2210..d9713b7c 100644 --- a/source/openstack_bundle_and_service_summary.rst +++ b/source/openstack_bundle_and_service_summary.rst @@ -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`. diff --git a/source/openstack_conf_vars_about.rst b/source/openstack_conf_vars_about.rst new file mode 100644 index 00000000..d5ad8ce4 --- /dev/null +++ b/source/openstack_conf_vars_about.rst @@ -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` diff --git a/source/openstack_conf_vars_list.rst b/source/openstack_conf_vars_list.rst new file mode 100644 index 00000000..7a55796b --- /dev/null +++ b/source/openstack_conf_vars_list.rst @@ -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` diff --git a/source/openstack_env_inventory_file.rst b/source/openstack_env_inventory_file.rst new file mode 100644 index 00000000..a51c1954 --- /dev/null +++ b/source/openstack_env_inventory_file.rst @@ -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