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
FUSEfilesystems 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 © 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.
- Self-service access to EUMETSAT data publicly available within the EWC (no credentials required)
- Strict file permissions for mounted subdirectories under the
/mntdirectory - Boot-safe design; does not block boot on
S3outage - Advanced per-bucket cache/refresh tuning (via tweaking of included defaults)
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
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 >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-mountYou can apply changes on the target host by running:
ansible-playbook -i inventory.yml playbook.yml⚙️ 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 |
💡 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 |
All notable changes (i.e. fixes, features and breaking changes) are documented in the CHANGELOG.md.
Thanks for taking the time to join our community and start contributing! Please make sure to:
- Familiarize yourself with our Code of Conduct before contributing.
- See CONTRIBUTING.md for instructions on how to request or submit changes.