|
| 1 | +# CVMFS |
| 2 | +:::warning |
| 3 | +These instructions are highly CERN-dependent.<br/> |
| 4 | +Please refer to the [Official CernVM-FS documentation](https://cvmfs.readthedocs.io/en/stable) for detailed instructions on how to start from scratch. |
| 5 | +::: |
| 6 | +## Setting up a Repository |
| 7 | + |
| 8 | +At CERN, the repository and release manager creation are provided by the Storage and Data Management group, through the [CVMS Repository creation request](https://cern.service-now.com/service-portal?id=sc_cat_item&name=CVMS-repository&se=cvmfs). |
| 9 | + |
| 10 | +Elsewhere, please follow the steps at [Creating a Repository (Stratum 0)](https://cvmfs.readthedocs.io/en/stable/cpt-repo.html). |
| 11 | + |
| 12 | +A set of useful information to know before submitting the request (or autonomously creating a repository): |
| 13 | +1. What is the quota for the repository and expected growth of the over time? |
| 14 | +2. Does the repository need (periodical) garbage collection? |
| 15 | +3. Should the visibility of the repository be restricted (e.g., due to licensed software)? |
| 16 | +4. Should the repository be replicated on other Stratum 1 servers worldwide? |
| 17 | + |
| 18 | +:::tip[Repository naming] |
| 19 | +*The repository name resembles a DNS scheme, but it does not need to reflect any real server name. It is supposed to be a globally unique name that indicates where/who the publishing of content takes place. A repository name must only contain alphanumeric characters plus -, , or ., and it is limited to a length of 60 characters.* |
| 20 | +::: |
| 21 | + |
| 22 | +The release manager is usually a VM where operators can upload, modify and delete the content of the repository. |
| 23 | + |
| 24 | +## Publishing content |
| 25 | + |
| 26 | +As described [here](https://cvmfs.readthedocs.io/en/stable/cpt-repo.html#content-publishing), there are four main steps needed to publish content: |
| 27 | +1. Initiate the transation via `cvmfs_server transaction <repository name>` |
| 28 | +2. Install content into `/cvmfs/<repository name>` |
| 29 | +3. (optional) Create nested catalogs at proper locations |
| 30 | +4. Finalise the transaction via `cvmfs_server publish <repository name>` |
| 31 | + |
| 32 | +#### Install content |
| 33 | + |
| 34 | +At startup, a CERN-hosted release manager will look like this: |
| 35 | +```sh |
| 36 | +* ******************************************************************** |
| 37 | +* Welcome to xxxxx.cern.ch, AlmaLinux release 9.5 (Teal Serval) |
| 38 | +* Archive of news is available in /etc/motd-archive |
| 39 | +* Reminder: you have agreed to the CERN |
| 40 | +* computing rules, in particular OC5. CERN implements |
| 41 | +* the measures necessary to ensure compliance. |
| 42 | +* https://cern.ch/ComputingRules |
| 43 | +* Puppet environment: production, Roger state: build |
| 44 | +* Foreman hostgroup: xxxxxxx |
| 45 | +* ####################################################### |
| 46 | +The CVMFS Stratum 0 for repo xxxxxx. |
| 47 | +Access is controlled via the e-group xxxxxxx. |
| 48 | +Shared local unix user for account xxxxxxx. |
| 49 | + |
| 50 | +To become the shared user execute: |
| 51 | + sudo -i -u xxxxxxx |
| 52 | +To start a transaction: |
| 53 | + cvmfs_server transaction sw.escape.eu |
| 54 | +To publish a transaction |
| 55 | + cvmfs_server publish sw.escape.eu |
| 56 | + |
| 57 | +* A cvmfs installation host. |
| 58 | +* ******************************************************************** |
| 59 | +``` |
| 60 | + |
| 61 | +In order to publish content, it is necessary to switch to a dedicated user, as suggested: `sudo -i -u xxxxxxx`. |
| 62 | + |
| 63 | +How to provide packages and proper versioning is left to the operators. |
| 64 | + |
| 65 | +:::danger[Pro Tip] |
| 66 | +The VRE strategy for content publishing relies on the creation of a tarball containing the necessary software and versions, followed by a setup script to be executed at need. <br/> |
| 67 | +More details can be found in the **[ESCAPE CVMFS GitHub Repository](https://github.com/vre-hub/escape-cvmfs)**. |
| 68 | +::: |
0 commit comments