Skip to content

Repository files navigation

EWC Ansible Role EUMETSAT S3 Mount

This repository contains a configuration template (i.e. an Ansible Role) to customize your environment in the European Weather Cloud (EWC).

The template is designed to provide:

  • A secure, idempotent, and production-grade way to mount read-only EUMETSAT data buckets as FUSE filesystems on EWC compute instances running RockyLinux 9 or 8, and Ubuntu 24 or 22.
  • Support for instances on both the ECMWF and the EUMETSAT compute sites of the EWC

Copyright and License

Copyright © EUMETSAT 2026.

The provided code and instructions are licensed under the MIT license. They are intended to automate the setup of an environment that includes third-party software components. The usage and distribution terms of the resulting environment are subject to the individual licenses of those third-party libraries.

Users are responsible for reviewing and complying with the licenses of all third-party components included in the environment.

Contact EUMETSAT for details on the usage and distribution terms.

Features

  • Self-service access to EUMETSAT data publicly available within the EWC (no credentials required)
  • Strict file permissions for mounted subdirectories under the /mnt directory
  • Boot-safe design; does not block boot on S3 outage
  • Advanced per-bucket cache/refresh tuning (via tweaking of included defaults)

Usage

The step-by-step described below assume your local file system follows the example structure below, with ewc-ansible-role-eumetsat-s3-mount being a clone of this repository:

.
├── roles
│   └── ewc-ansible-role-eumetsat-s3-mount
├── inventory.yml
└── playbook.yml

1. Specify the target host and SSH credentials

Create an inventory file to specify address/credentials that Ansible should use to reach the virtual machine you wish to configure:

# inventory.yml
---
ewcloud:
  hosts:
    ewc_host:
      ansible_python_interpreter: /usr/bin/python3
      ansible_host: <add the IPV4 address of the target host>
      ansible_ssh_private_key_file: <add the path to local SSH private key file>
      ansible_user: <add the username which owns the SSH private key >

2. Customize the template

Edit input values for the template variables as needed (see Inputs section for details). Then, proceed to create an Ansible Playbook file to load your customizations:

# playbook.yml
---
- name: Mount EUMETSAT S3 buckets
  hosts: ewc_host
  become: true
  become_user: root
  become_method: ansible.builtin.sudo

  roles:
    - ewc-ansible-role-eumetsat-s3-mount

3. Apply the template

You can apply changes on the target host by running:

ansible-playbook -i inventory.yml playbook.yml

Inputs

⚙️ Target buckets are pre-defined as part of role defaults (see defaults/main.yml).

💡 To learn more about the valid input values and their performance implications, checkout the rclone official documentation

Name Description Type Default Required
vfs_cache_mode Cache mode. Example: writes string n/a yes
vfs_cache_max_size Max total size of objects in the cache. Example: 512Mi string n/a yes

Dependencies

💡 Upon execution, a SBOM (SPDX format) is auto-generated and stored in the VM's file system root directory (see /sbom.json).

The following components will be included in the resulting environment:

Component Home URL
curl https://curl.se/
unzip http://www.info-zip.org/UnZip.html
fuse3 https://github.com/libfuse/libfuse
fuse-overlayfs https://github.com/containers/fuse-overlayfs
rclone https://github.com/rclone/rclone

Changelog

All notable changes (i.e. fixes, features and breaking changes) are documented in the CHANGELOG.md.

Contributing

Thanks for taking the time to join our community and start contributing! Please make sure to:

Authors

European Weather Cloud <support@europeanweather.cloud>

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages