mirror of
https://github.com/clearlinux/clear-linux-documentation.git
synced 2026-08-24 00:15:57 +00:00
editingand refactoring for cleaner table of contents, Sphinx rendering, typos
Signed-off-by: Leona <leonax.cook@intel.com>
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user