editingand refactoring for cleaner table of contents, Sphinx rendering, typos

Signed-off-by: Leona <leonax.cook@intel.com>
This commit is contained in:
Leona
2016-07-27 08:40:45 -07:00
parent 8b94376f2a
commit f8360b72b6
4 changed files with 116 additions and 77 deletions
+5 -3
View File
@@ -2,11 +2,12 @@
.. contents::
ciao cluster setup
CIAO cluster setup
##################
This topic explains how to set up a cluster of machines running Clear Linux* OS
for Intel® Architecture with :abbr:`Cloud Integrated Advanced Orchestrator (CIAO)`, or ciao.
for Intel® Architecture with :abbr:`Cloud Integrated Advanced Orchestrator (CIAO)`,
or ciao.
While the table of contents provides links to specific points of information, this
topic is intended as an ordered workflow. Be sure to start your cluster components
@@ -20,7 +21,8 @@ Hardware needs
You'll need at least four machines and a switch connecting them to form
your beginning ciao cluster. The switch is assumed to be plugged directly
into an "upstream" network running a DHCP server. See the illustration below as an example:
into an "upstream" network running a DHCP server. See the illustration below as
an example:
.. image:: image-blob-ciao-networking.png
+107 -69
View File
@@ -2,75 +2,98 @@
.. contents::
CIAO in ClearLinux
##################
CIAO on Clear Linux* for Intel® Architecture
############################################
Cloud Integrated Advanced Orchestrator (ciao) is a new workload scheduler
designed to address limitations in current cloud OS projects.
Ciao provides a lightweight, fully TLS-based, minimal Config, workload-agnostic,
easily updateable, optimized-for-speed scheduler, currently optimized for Openstack.
Cloud Integrated Advanced Orchestrator (ciao) is a new workload
scheduler designed to address limitations of current cloud OS
projects. CIAO provides a lightweight, fully TLS-based minimal
config, is workload-agnostic, easy to update, offers an
optimized-for-speed scheduler, and is currently optimized for
OpenStack*.
For more information, see https://clearlinux.org/ciao.
For more information visit https://clearlinux.org/ciao.
Environment
===========
For this example, we'll use a total of four nodes:
- A `controller <https://github.com/01org/ciao/tree/master/ciao-controller>`_ node which will be used to communicate with Keystone.
- Two `compute nodes <https://github.com/01org/ciao/tree/master/ciao-launcher>`_ which will spawn the VM's and containers.
- A `network node <https://github.com/01org/ciao/tree/master/ciao-launcher>`_ which will handle the netowrking for the workloads.
For this example, we'll use a total of four nodes:
- A `controller`_ node which will be used to communicate with Keystone.
- Two `compute nodes`_, which will spawn the VMs and containers.
- A `network node`_ which will handle the netowrking for the workloads.
.. _prerequisites:
Prerequisites
=============
Ansible uses ssh to run commands on the remote nodes. In order to do that, the nodes
must be configured to allow passwordless ssh connections from the root user. Follow these
steps to configure your nodes.
Ansible* uses :command:`ssh` to run commands on the remote nodes. In order to do
that, the nodes must be configured to allow passwordless ssh connections
from the root user. Follow these steps to configure your nodes.
#. Generate ssh keys::
#. Generate ssh keys:
.. code-block:: console
# ssh-keygen
# ssh-keygen
#. Enable root login::
#. Enable root login:
.. code-block:: console
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
#. Enable sshd service::
#. Enable sshd service:
.. code-block:: console
# systemctl enable sshd
# systemctl start sshd
# systemctl enable sshd
# systemctl start sshd
#. Allow passwordless login::
#. Allow passwordless login:
.. code-block:: console
# ssh-copy-id -i <ssh_key> root@node
# ssh-copy-id -i <ssh_key> root@node
Install the software
====================
Install the ``sysadmin-hostmgmt`` bundle on the development node. This bundle contains
the Ansible software required to run the playbooks, as well as some Ansible roles and
sample playbooks that you can use to build your own::
Install the ``sysadmin-hostmgmt`` bundle on the development node. This
bundle contains the Ansible software required to run the playbooks, as
well as some Ansible roles and sample playbooks that you can use to
build your own:
.. code-block:: console
# swupd bundle-add sysadmin-hostmgmt
# swupd bundle-add sysadmin-hostmgmt
Create the playbook
===================
The ``sysadmin-hostmgmt`` bundle includes some sample playbooks that you may use and
customize for your own needs. Start by making a copy of the sample playbook into your
home folder::
The ``sysadmin-hostmgmt`` bundle includes some sample playbooks that
you may use and customize for your own needs. Start by making a copy
of the sample playbook into your home folder
# cp -r /usr/share/ansible/examples/ciao ~/
.. code-block:: console
The playbook consist of three files that you should modify to fit your needs::
# cp -r /usr/share/ansible/examples/ciao ~/
The playbook consists of three files that you should modify to fit
your needs::
ciao/
|-- ciao.yml
|-- group_vars
| `-- all
| -- all
+-- hosts
The hosts file contains the IP addresses/hostnames of your nodes grouped under the roles
they will serve. For this example it should look like this::
The :file:`hosts` file contains the IP addresses/hostnames of your
nodes, grouped under the roles they will serve. For this example
it should look like this::
[dbservers]
ciao-controller.example.com
@@ -91,9 +114,10 @@ they will serve. For this example it should look like this::
ciao-compute1.example.com
ciao-compute2.example.com
This ``groups_var/all`` file contains variables that will applied for your ciao setup.
The mandatory variables are already there; be sure to change the values accordingly to
fit your environment. It should look something like this::
This ``groups_var/all`` file contains variables that will be applied
to your ciao setup. The mandatory variables are already there; be
sure to change the values accordingly to fit your environment. It
should look something like this::
---
# Vars required for mariadb and os-common
@@ -126,49 +150,63 @@ fit your environment. It should look something like this::
ciao_guest_key: ~/.ssh/guest_vms.pub
The `ciao_guest_key` is the key to be used to connect to the VMs created by ciao,
you can use the `ssh-keygen` command to create one as explained in the prerequisites
section.
The ``ciao_guest_key`` is the key to be used to connect to the VMs created by
ciao; you can use the ``ssh-keygen`` command to create one as explained in the
:ref:`prerequisites` section.
A full list of available variables can be found in the ciao-* roles at
https://github.com/clearlinux/clear-config-management/tree/master/roles
Run the playbook
================
Once you have your variables and hosts file configured, the deployment can be fired
with the following command::
Once you have your variables and hosts file configured, the deployment can
be fired with the following command:
.. code-block:: console
# ansible-playbook -i hosts ciao.yml --private-key=<ssh_key>
# ansible-playbook -i hosts ciao.yml --private-key=<ssh_key>
Verify
======
Once ansible is done with the setup, on the controller node you can verify the
cluster is ready by running the following command.
Change the username, password, controller and identity values to match
your setup as specified in the ``groups_var/all`` file::
After ansible is done with the setup, you can verify the cluster is ready
by running the following command on the controller node. Change the **username**,
**password**, **controller**, and **identity** values to match your setup, as
was specified in the ``groups_var/all`` file:
# ciao-cli -identity=https://ciao-controller.example.com:35357 -username admin -password secret -controller=ciao-controller.example.com node status
Total Nodes 3
Ready 0
Full 3
Offline 0
Maintenance 0
.. code-block:: console
You could also take a look at the ciaorc file created (in `~/ciaorc`)
that contains the following environment variables::
# ciao-cli -identity=https://ciao-controller.example.com:35357 -username admin -password secret -controller=ciao-controller.example.com node status
Total Nodes 3
Ready 0
Full 3
Offline 0
Maintenance 0
# cat ciaorc
export CIAO_CONTROLLER=ciao-controller.example.com
export CIAO_IDENTITY=https://ciao-controller.example.com:35357
export CIAO_USERNAME=csr
export CIAO_PASSWORD=secret
You could also take a look at the :file:`~/ciaorc` file that contains the
following environment variables:
then you could verify with the following command::
.. code-block:: console
# source ciaorc
# ciao-cli node status
Total Nodes 3
Ready 0
Full 3
Offline 0
Maintenance 0
# cat ciaorc
export CIAO_CONTROLLER=ciao-controller.example.com
export CIAO_IDENTITY=https://ciao-controller.example.com:35357
export CIAO_USERNAME=csr
export CIAO_PASSWORD=secret
then you could verify with the following command:
.. code-block:: console
# source ciaorc
# ciao-cli node status
Total Nodes 3
Ready 0
Full 3
Offline 0
Maintenance 0
.. _controller: https://github.com/01org/ciao/tree/master/ciao-controller
.. _compute nodes: https://github.com/01org/ciao/tree/master/ciao-launcher
.. _network node: https://github.com/01org/ciao/tree/master/ciao-launcher
+4 -2
View File
@@ -42,13 +42,15 @@ Bundles
index_bundles.rst
Intel® Clear Containers
=======================
Intel® Clear Containers and CIAO
================================
.. toctree::
:maxdepth: 2
gs-clear-containers-getting-started.rst
ciao-deploy
ciao-cluster-setup
Advanced configuration
-3
View File
@@ -8,8 +8,5 @@ Getting started
gs_supported_hardware
gs_creating_bootable_usb
gs_installing_clr_as_host
gs-clear-containers-getting-started
ciao-cluster-setup
ciao-deploy