Skip to content

Commit

Permalink
Update 12.0u1
Browse files Browse the repository at this point in the history
New features:
- Added full UEFI support
- Automatic sshkeypair generation for users without an existing keypair

Changes:
- Moved configuration files to .example files, in order to have a care-free update
- Appended configurationfiles and buildables to gitignore
- Updated remote assistance files to python3
- Added remote assistance systemd service
- Modified Trinity Health checks and renamed to Trinity Diag (trix-diag)
- Updated README.rst
- Updated prepare.sh with dependencies

Fixes:
- Fixed documentation layout
- Fixed InfluxDB retention
- Fixed non-existent python3 env on clean installations
- Fixed compute image generation (compute.yml)
- Fixed rsyslog forwarding
  • Loading branch information
msteggink committed Jun 18, 2020
1 parent f71102a commit 3ac83cf
Show file tree
Hide file tree
Showing 121 changed files with 1,930 additions and 1,529 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Expand Up @@ -7,3 +7,7 @@ packaging/rpm/SPECS/
packaging/rpm/SRPMS/
packaging/iso/ISO/
packaging/iso/TrinityX-*.iso
site/hosts
site/group_vars/*.yml
site/host_vars/*.yml
doc/_build/
54 changes: 22 additions & 32 deletions README.rst
@@ -1,3 +1,5 @@
.. image:: img/trinityxbanner_scaled.png

Overview
========

Expand Down Expand Up @@ -28,38 +30,30 @@ It will also set up:
* rsyslog
* and more

.. image:: img/triX_300.png
:width: 600px
:height: 160px


Steps to install TrinityX
~~~~~~~~~~~~~~~~~~~~~~~~~

1. Install CentOS Minimal on your controller(s). It is recommended to put ``/var/lib/influxdb`` on it's own filesystem.

2. Configure network interfaces that will be used in the cluster, e.g public, provisioning and MPI networks

3. Configure passwordless authentication to the controller itself or/and for both controllers in the HA case

4. Setup luna repository::

# curl https://updates.clustervision.com/luna/1.2/centos/luna-1.2.repo > /etc/yum.repos.d/luna-1.2.repo
1. Install CentOS Minimal on your controller(s). It is recommended to put ``/trinity`` and ``/var/lib/influxdb`` on it's own filesystem.

5. Enable the EPEL repository::
2. Configure network interfaces that will be used in the cluster, e.g public, provisioning and MPI networks on the controller(s).

# yum install epel-release
3. Configure passwordless authentication to the controller itself or/and for both controllers in the HA case.

6. Install ``git``, ``ansible`` and ``luna-ansible``::

# yum install git ansible luna-ansible

7. Clone TrinityX repository into your working directory and go to the site directory::
4. Clone TrinityX repository into your working directory. Then run ```prepare.sh``` to install all the prerequisites.

# git clone http://github.com/clustervision/trinityX
# cd trinityX/site

8. Check out mitogen into the current directory (trinityX/site)::
# cd trinityX
# bash prepare.sh

# git clone https://github.com/dw/mitogen.git

9. Based on whether you're installing a single-controller or a high-availability (HA) setup, you might want to update the configuration files:
5. Based on whether you're installing a single-controller or a high-availability (HA) setup, the contents may differ. Please view the contents of the file on the directives that may need modification(s)::
# cd group_vars
# cp all.yml.example all.yml

* ``group_vars/all``

Expand All @@ -71,11 +65,8 @@ Steps to install TrinityX

**Note**: In the case of an HA setup you will most probably need to change the default name of the shared block device set by ``shared_fs_device``.

10. Install ``OndrejHome.pcs-modules-2`` from the ansible galaxy::

# ansible-galaxy install OndrejHome.pcs-modules-2

11. Configure ``hosts`` file to allow ansible to address controllers.
6. Configure ``hosts`` file to allow ansible to address controllers.
# cp hosts.example hosts

Example for non-HA setup::

Expand All @@ -88,15 +79,15 @@ Steps to install TrinityX
controller1 ansible_host=10.141.255.254
controller2 ansible_host=10.141.255.253

12. Start TrinityX installation::
7. Start TrinityX installation::

# ansible-playbook controller.yml

**Note**: If errors are encoutered during the installation process, analyze the error(s) in the output and try to fix it then re-run the installer.

**Note**: By default, the installation logs will be available at ``/var/log/trinity.log``

13. Create a default OS image::
8. Create a default OS image::

# ansible-playbook compute.yml

Expand All @@ -120,13 +111,12 @@ You can also choose which components to exclude from the installation by modifyi
OpenHPC Support
===============

The OpenHPC project provides a framework for building, managing and maintain HPC clusters. This project provides packages for most popular scientific and HPC applications. TrinityX can integrate this effort into it's ecosystem. In order to enable this integration set the flag ``enable_openhpc`` in ``group_vars/all`` to ``true``.
Currently when OpenHPC is enabled standart environment modules and pdsh from TrinityX gets disabled, ``slurm`` is used from TrinityX's repositories.
The OpenHPC project provides a framework for building, managing and maintain HPC clusters. This project provides packages for most popular scientific and HPC applications. TrinityX can integrate this effort into it's ecosystem. In order to enable this integration set the flag ``enable_openhpc`` in ``group_vars/all`` to ``true`` (default).

Documentation
=============

To build the full set of the documentation included with TrinityX:
A pre-built PDF is provided in the main directory. To build the full set of the documentation included with TrinityX:

1. Install ``git``::

Expand All @@ -139,7 +129,7 @@ To build the full set of the documentation included with TrinityX:

3. Install ``pip``, e.g. from EPEL repository::

# yum install python34-pip.noarch
# yum install python3-pip.noarch

4. Install ``sphinx`` and ``Rinohtype``::

Expand Down
Binary file added TrinityX.pdf
Binary file not shown.
4 changes: 0 additions & 4 deletions doc/ansible_roles.rst
Expand Up @@ -29,8 +29,4 @@ Ansible Roles overview
- nginx: installs and configures nginx (web server for luna)
- luna: installs and configures luna
- rsyslog: installs and configures syslog
- zabbix: installs and configures Zabbix (monitoring)
- zabbix_agent: installs Zabbix agent on controllers and images
- zabbix_checks: installs additional check scripts and configures templates on Zabbix server
- trix-status: installs trix-status - tool for getting TrinityX cluster overview
- docker-registry: installs and configures docker registry
12 changes: 6 additions & 6 deletions doc/conf.py
Expand Up @@ -53,17 +53,17 @@

# General information about the project.
project = 'TrinityX'
copyright = '2018, ClusterVision BV'
author = 'ClusterVision BV'
copyright = '2020, ClusterVision Solutions BV'
author = 'ClusterVision Solutions BV'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = '11'
version = '12'
# The full version, including alpha/beta/rc tags.
release = '11.0'
release = '12.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down Expand Up @@ -139,7 +139,7 @@
# The name for this set of Sphinx documents.
# "<project> v<release> documentation" by default.
#
html_title = 'TrinityX r11'
html_title = 'TrinityX r12'

# A shorter title for the navigation bar. Default is the same as html_title.
#
Expand Down Expand Up @@ -267,7 +267,7 @@
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'TrinityX.tex', 'TrinityX Documentation',
'ClusterVision BV', 'manual'),
'ClusterVision Solutions BV', 'manual'),
]

# The name of an image file (relative to this directory) to place at the top of
Expand Down
91 changes: 41 additions & 50 deletions doc/configuration.rst
Expand Up @@ -22,7 +22,7 @@ What follows is a list of those variables together with their descriptions and d

* - Variable
- Value
- Vefault
- Default
- Description

* - local_install
Expand Down Expand Up @@ -193,41 +193,44 @@ What follows is a list of those variables together with their descriptions and d
- A user-defined list of environment modules to install in addition to the default one.
See the table `environment-modules role`_.


.. _tab_global_variables:

.. list-table:: Global variables (cont'd)
:header-rows: 1
:widths: auto

* - trinityx_local_reponame
- String
- 'trinityx-local'
- Name of the local repository in the case of offline installation

* - trinityx_local_repo_baseurl
- URL
- http://`trix_ctrl_ip`:`repos_port`/repos/trinityx/
- http://`trix_ctrl_ip`:`repos_port`/ repos/trinityx/
- URL to be used to access local repository

* - luna_repo
- URL
- https://updates.clustervision.com/luna/1.2/centos/luna-1.2.repo
- https://updates.clustervision.com/ luna/1.2/centos/luna-1.2.repo
- URL of the luna repository

* - trinity_repo
- URL
- https://updates.clustervision.com/trinity/10.2/centos/trinity.repo
- https://updates.clustervision.com/ trinity/10.2/centos/trinity.repo
- URL of the trinity repository

* - userspace_repo
- URL
- https://updates.clustervision.com/userspace/userspace-release.x86_64.rpm
- https://updates.clustervision.com/ userspace/userspace-release.x86_64.rpm
- URL of the repository of the userspace packages

* - elrepo_repo
- URL
- http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
- | http://www.elrepo.org/
| elrepo-release-7.0-3.el7.elrepo.noarch.rpm
- URL of elrepo repository

* - zabbix_repo
- URL
- https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
- URL of default Zabbix repository

Role specific variables
~~~~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -318,6 +321,7 @@ drbd_shared_resource_name String 'trinity_disk' The name that will
- python2
- python3
*versions omitted*

- List of modules to install by default.


Expand Down Expand Up @@ -470,35 +474,38 @@ repos_port Number 8080 Default port to listen on when
`rsyslog` role
^^^^^^^^^^^^^^^

===================================== ============= ========================================================================= =============
Variable Value Default Description
===================================== ============= ========================================================================= =============
syslog_forwarding_rules List of dicts A list of log forwarding rules to use in rsyslog.d/ configuration files.
====================================== ============= ========================================================================== =============
Variable Value Default Description
====================================== ============= ========================================================================== =============
syslog_forwarding_rules List of dicts A list of log forwarding rules to use in rsyslog.d/ configuration files.

.0.name String Forwarding rule's name
.0.proto String Protocol to use for this rule. Can be TCP or UDP.
.0.port Number The port to which rsyslog will send logs that match the rule.
.0.host String The destination host.
.0.facility String Syslog facility name to use for logs sent through this rule.
.0.level String Syslog level to use for logs send through this rule.

syslog_forwarding_rules.0.name String Forwarding rule's name
syslog_forwarding_rules.0.proto String Protocol to use for this rule. Can be TCP or UDP.
syslog_forwarding_rules.0.port Number The port to which rsyslog will send logs that match the rule.
syslog_forwarding_rules.0.host String The destination host.
syslog_forwarding_rules.0.facility String Syslog facility name to use for logs sent through this rule.
syslog_forwarding_rules.0.level String Syslog level to use for logs send through this rule.
syslog_listeners List of dicts A list of listeners to be configured in rsyslog.

syslog_listeners List of dicts A list of listeners to be configured in rsyslog.
syslog_listeners.0.name String default Listener's name
syslog_listeners.0.proto String tcp Listener's protocol. Can be TCP or UDP
syslog_listeners.0.port Number 514 Listener's port.

syslog_listeners.0.name String default Listener's name
syslog_listeners.0.proto String tcp Listener's protocol. Can be TCP or UDP
syslog_listeners.0.port Number 514 Listener's port.
syslog_file_template_rules List of dicts A list of template rules.
See http://www.rsyslog.com/ doc/master/configuration/ templates.html for details.

syslog_file_template_rules List of dicts A list of template rules.
See http://www.rsyslog.com/doc/master/configuration/templates.html for details.
syslog_file_template_rules List of dicts
.0.name String controllers Template name
.0.type String string Template type
.0.content String '/var/log/cluster-messages/ %HOSTNAME%.messages' Content of the template rule.
.0.field String '$fromhost-ip' Template's field
.0.criteria String startswith Templates's criteria
.0.rule String trix_cluster_net The matching rule for the template.

syslog_file_template_rules.0.name String controllers Template name
syslog_file_template_rules.0.type String string Template type
syslog_file_template_rules.0.content String '/var/log/cluster-messages/%HOSTNAME%.messages' Content of the template rule.
syslog_file_template_rules.0.field String '$fromhost-ip' Template's field
syslog_file_template_rules.0.criteria String startswith Templates's criteria
syslog_file_template_rules.0.rule String '{{ trix_cluster_net.split(".")[:trix_cluster_netprefix//8]|join(".") }}' The matching rule for the template.
====================================== ============= ========================================================================== =============

===================================== ============= ========================================================================= =============
The default for the syslog_file_template_rules.0.rule is '{{ trix_cluster_net.split(".")[:trix_cluster_netprefix//8]|join(".") }}'

`slurm` role
^^^^^^^^^^^^^
Expand Down Expand Up @@ -567,22 +574,6 @@ sss_filter_enabled Boolean false Whether t

=================== ============= ==================================== =============

`zabbix` role
^^^^^^^^^^^^^^

======================= ============= ======================================================================================= =============
Variable Value Default Description
======================= ============= ======================================================================================= =============
zabbix_script_path Path `trix_local`/usr/lib/zabbix/ Location where zabbix can find custom scripts
zabbix_sql_db String 'zabbix' Name of the zabbix database in MariaDB
zabbix_sql_user String 'zabbix' SQL user used by zabbix

zabbix_login String 'Admin' Default name of the zabbix admin user

zabbix_mail_server Hostname 'localhost' Default mail server

======================= ============= ============================ =============

Compute specific variables
~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
1 change: 0 additions & 1 deletion doc/installation_manual.rst
Expand Up @@ -9,7 +9,6 @@ Installation manual
requirements.rst
ha_design.rst
installation.rst
installation_openstack.rst
configuration.rst
ansible_roles.rst
compute_storage_schemes.rst
Expand Down

0 comments on commit 3ac83cf

Please sign in to comment.