Skip to content

Commit a8b5180

Browse files
committed
Update README for multinode.sh
1 parent 7553da5 commit a8b5180

File tree

1 file changed

+70
-18
lines changed

1 file changed

+70
-18
lines changed

README.rst

Lines changed: 70 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,64 @@ This configuration is typically used with the `ci-multinode` environment in the
2525
<https://stackhpc-kayobe-config.readthedocs.io/en/stackhpc-2023.1/contributor/environments/ci-multinode.html>`__
2626
repository.
2727

28+
What's in the box?
29+
==================
30+
31+
This repository contains various items.
32+
33+
Scripts
34+
-------
35+
36+
* ``scripts/deploy.sh`` - end-to-end cluster deployment and testing.
37+
* ``scripts/tear-down.sh`` - tear down test cluster infrastructure.
38+
39+
Terraform
40+
---------
41+
42+
Terraform configuration deploys test cluster infrastructure on an OpenStack
43+
cloud. It provides outputs that can be used to populate Kayobe Configuration
44+
with the details of the test infrastructure.
45+
46+
Ansible
47+
-------
48+
49+
Ansible playbooks in the ``ansible/`` directory are provided to prepare and use
50+
the Ansible control host.
51+
52+
#. ``configure-hosts.yml`` - sequentially executes 3 other playbooks:
53+
54+
#. ``wait-control-host.yml`` - Waits for the Ansible control host to become
55+
accessible and ready for deployment. Tag: ``wait``
56+
#. ``grow-control-host.yml`` - Applies LVM configuration to the control host
57+
to ensure it has enough space to continue with the rest of the
58+
deployment. Tag: ``lvm``
59+
#. ``deploy-openstack-config.yml`` - Prepares the Ansible control host as a
60+
Kayobe control host, cloning the Kayobe configuration and installing
61+
virtual environments. Tag: ``deploy``
62+
63+
These playbooks are tagged so that they can be invoked or skipped using
64+
`tags` or `--skip-tags` as required.
65+
66+
#. ``deploy-openstack.yml`` - runs the ``multinode.sh deploy_full`` command in
67+
a `tmux` session on the Ansible control host. The session is logged to
68+
``~/tmux.kayobe\:0.log`` on the Ansible control host. Use ``less -r
69+
~/tmux.kayobe\:0.log`` to view the logs in their original colourful glory.
70+
71+
#. ``fetch-logs.yml`` - fetches logs, diagnostics and tests results from the
72+
cluster to the host runnin the playbook..
73+
74+
Configuration variables for these playbooks are in
75+
``ansible/vars/defaults.yml``.
76+
77+
multinode.sh
78+
------------
79+
80+
The ``multinode.sh`` script is installed in ``/usr/local/bin/`` on the Ansible
81+
control host. It provides high-level automation of various aspects of OpenStack
82+
deployment, operations and testing. It accepts a single argument which is the
83+
command to perform. The supported commands may be listed by running it without
84+
arguments.
85+
2886
Prerequisites
2987
=============
3088

@@ -63,7 +121,7 @@ Initialise Terraform:
63121
terraform init
64122
65123
Generate an SSH keypair. Note that `ED25519 keys are not currently supported by RHEL
66-
<https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html-single/securing_networks/index#making-openssh-more-secure_assembly_using-secure-communications-between-two-systems-with-openssh>`__
124+
<https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html-single/securing_networks/index#making-openssh-more-secure_assembly_using-secure-communications-between-two-systems-with-openssh>`__
67125
when using the FIPS security standard (as enabled by the CIS benchmark hardening
68126
scripts in kayobe-config). The public key will be registered in OpenStack as a
69127
keypair and authorised by the instances deployed by Terraform. The private and
@@ -187,7 +245,7 @@ access to the control host.
187245
Configure Ansible variables
188246
===========================
189247

190-
Review the vars defined within `ansible/vars/defaults.yml`. In here you can customise the version of kayobe, kayobe-config or openstack-config.
248+
Review the vars defined within `ansible/vars/defaults.yml`. In here you can customise the version of kayobe, kayobe-config or openstack-config.
191249
Make sure to define `ssh_key_path` to point to the location of the SSH key in use by the nodes and also `vxlan_vni` which should be unique value between 1 to 100,000.
192250
VNI should be much smaller than the officially supported limit of 16,777,215 as we encounter errors when attempting to bring interfaces up that use a high VNI.
193251
You must set `vault_password_path`; this should be set to the path to a file containing the Ansible vault password.
@@ -201,7 +259,7 @@ Tempest testing without user interaction. Any errors encountered will be
201259
reported and halt the deployment.
202260

203261
This script makes use of the `ansible/deploy-openstack.yml` Ansible playbook
204-
that runs the `deploy-openstack.sh` script in a `tmux` session on the Ansible
262+
that runs the `multinode.sh deploy_full` command in a `tmux` session on the Ansible
205263
control host. The session is logged to `~/tmux.kayobe\:0.log` on the Ansible
206264
control host. Use `less -r ~/tmux.kayobe\:0.log` to view the logs in their
207265
original colourful glory.
@@ -255,30 +313,24 @@ Run the configure-hosts.yml playbook to configure the Ansible control host.
255313
256314
ansible-playbook -i ansible/inventory.yml ansible/configure-hosts.yml
257315
258-
This playbook sequentially executes 2 other playbooks:
259-
260-
#. ``grow-control-host.yml`` - Applies LVM configuration to the control host to ensure it has enough space to continue with the rest of the deployment. Tag: ``lvm``
261-
#. ``deploy-openstack-config.yml`` - Prepares the Ansible control host as a Kayobe control host, cloning the Kayobe configuration and installing virtual environments. Tag: ``deploy``
262-
263-
These playbooks are tagged so that they can be invoked or skipped using `tags` or `--skip-tags` as required.
264-
265316
Deploy OpenStack
266317
----------------
267318

268319
Once the Ansible control host has been configured with a Kayobe/OpenStack configuration you can then begin the process of deploying OpenStack.
269-
This can be achieved by either manually running the various commands to configure the hosts and deploy the services or automated by using the generated `deploy-openstack.sh` script.
270-
`deploy-openstack.sh` should be available within the home directory on your Ansible control host provided you ran `deploy-openstack-config.yml` earlier.
320+
This can be achieved by either manually running the various commands to configure the hosts and deploy the services or automated by using the ``multinode.sh deploy_full`` command.
321+
``multinode.sh`` should be available within ``/usr/local/bin/`` on your Ansible control host provided you ran `deploy-openstack-config.yml` earlier.
271322
This script will go through the process of performing the following tasks:
272323

273324
* kayobe control host bootstrap
274325
* kayobe seed host configure
275326
* kayobe overcloud host configure
276327
* cephadm deployment
328+
* HashiCorp Vault deployment & certificate generation
277329
* kayobe overcloud service deploy
278-
* openstack configuration
279-
* tempest testing
330+
* OpenStack configuration
331+
* Tempest testing
280332

281-
Tempest test results will be written to `~/tempest-artifacts`.
333+
Tempest test results will be written to ``~/tempest-artifacts``.
282334

283335
If you choose to opt for the automated method you must first SSH into your Ansible control host.
284336

@@ -292,11 +344,11 @@ Start a `tmux` session to avoid halting the deployment if you are disconnected.
292344
293345
tmux
294346
295-
Run the `deploy-openstack.sh` script.
347+
Run the `multinode.sh` script.
296348

297349
.. code-block:: console
298350
299-
~/deploy-openstack.sh
351+
multinode.sh deploy_full
300352
301353
Accessing OpenStack
302354
===================
@@ -308,7 +360,7 @@ Using software such as sshuttle will allow for easy access.
308360
309361
sshuttle -r $(terraform output -raw ssh_user)@$(terraform output -raw seed_access_ip_v4) 192.168.39.0/24
310362
311-
You may also use sshuttle to proxy DNS via the multinode environment. Useful if you are working with Designate.
363+
You may also use sshuttle to proxy DNS via the multinode environment. Useful if you are working with Designate.
312364
Important to node this will proxy all DNS requests from your machine to the first controller within the multinode environment.
313365

314366
.. code-block:: console

0 commit comments

Comments
 (0)