Code Monkey home page Code Monkey logo

ansible-role-umd's Introduction

Unified Middleware Distribution (UMD)

Docker Repository on Quay

The role deploys the repository files needed to access the products distributed by UMD, currently supported for Scientific Linux 6 and CentOS7. This role optionally deploys the Interoperable Global Trust Federation (IGTF) repository file.

Information on available UMD release is available on the EGI repository.

Using

If you wish to use this role, install the role from Ansible Galaxy:

# Install ansible module from Ansible Galaxy
$ ansible-galaxy install egi-foundation.umd

Requirements

This role requires Ansible 2.0 or higher. The only dependency is EPEL, included in the metadata file.

Role Variables

Brief description of the variables used in the role:

  • release (int) UMD release version (no default)
    • e.g., release: 4
  • enable_candidate_repo: false: Enable the candidate repository, commonly used in the release candidate (defaults to false)
    • e.g., enable_candidate_repo: false
  • enable_testing_repo: false: Enables the testing repository (defaults to 'false')
    • e.g., enable_testing_repo: false
  • enable_untested_repo: false: Enables the untested repository (defaults to 'false')
  • ca_verification: false: Enables the IGTF repository for trusted CAs (defaults to false)
  • ca_version: 1: CA version (defaults to '1', only if ca_verification: true)
  • ca_branch: production: CA branch (defaults to 'production', only if ca_verification: true)
  • ca_verification: true: CA servers (defaults to 'repository.egi.eu', only if ca_verification: true)
    • e.g., ca_server: repository.egi.eu
  • crl_deploy: false: Installs 'fetch-crl' package if enabled (defaults to false)
    • e.g., : crl_deploy: false

Dependencies

A previous dependency on geerlingguy.repo-epel has been removed. EPEL is now taken care of in this role directly.

Example Playbook

This role can be used in several scenarios, depending on your environment. These are some examples of how to use this role.

Install UMD repository files on supported OS

- hosts: all
  roles:
    - { role: ansible-umd, release: 4 }

Install UMD repository files together with the trusted CAs and fetch-crl

- hosts: all
  roles:
    - { role: ansible-umd, release: 4, ca_verification: true, crl_deploy: true }

Install UMD repository files, enabling the candidate repository

- hosts: all
  roles:
    - { role: ansible-umd, release: 4, enable_candidate_repo: true }

Running molecule locally

Prepare a virtual env for testing using molecule, as documented in the EGI Ansible style guide.

# Create a folder for virtual environments
$ mkdir -p ~/.virtualenvs
# Create a python3 virtualenv
$ python3 -m venv ~/.virtualenvs/molecule
# Activate virtual env
$ source ~/.virtualenvs/ui-deployment/bin/activate
# Install dependencies
$ pip install -r requirements.txt

Run molecule

# Lint
$ molecule lint
# Run the complete test suite
$ molecule test

Preparing a release

  • Prepare a changelog from the last version, including contributors' names
  • Prepare a PR with
    • Updating version and changelog in CHANGELOG
  • Once the PR has been merged, publish a new release using GitHub web interface
    • Suffix the tag name to be created with v, like v1.0.0
    • Packages will be built using GitHub Actions and attached to the release page

License

Apache 2.0

Author Information

Original author Pablo Orviz.

For contributions see AUTHORS.md.

ansible-role-umd's People

Contributors

brucellino avatar gwarf avatar orviz avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

orviz gwarf

ansible-role-umd's Issues

Regex matching not properly implemented for python3

One of the tests checks for entries in yum repo files using a regex. This works in Python2 currently, but since Job 21 fails for python3.

The error from python is a TypeError:

 >       assert enabled_regex.search(content) is not None
    E       TypeError: cannot use a string pattern on a bytes-like object
    
    tests/test_default.py:55: TypeError

v0.1.0 Release

This is the issue to collect all problems related to the v0.1.0 release.

Ensure that CA packages are updated via cron

We have seen that some sites are suffering due to the fact that their CA bundles are not updated when IGTF releases. We should add an option to this role to enable a cron job to check drift of this kind and remediate.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.