diff --git a/admin-guide/configuration/distribute_files.md b/admin-guide/configuration/distribute_files.md index c93d1400..2aab802c 100644 --- a/admin-guide/configuration/distribute_files.md +++ b/admin-guide/configuration/distribute_files.md @@ -2,52 +2,6 @@ With Hiera it is possible to download files and git repositories as well as to create directories and symlinks. -## Download Files - -Files to download need to be placed on a git repository on `git.psi.ch` (internal) or `gitlab.psi.ch` (DMZ, Extranet, Tier3), where they need to be publicly available. - -For configuration in Hiera there is the `filecopy::files` hash where the keys is the destination path of the file. And the value is another hash with following options: - -- `repo`: the Git repository to download from -- `branch`: the Git branch in the repository (optional, default `master`) -- `path`: the file path inside the repository -- `owner`: file owner (optional, default `root`) -- `mode`: file permissions (optional, default `0644`) - - -Example: - -``` -filecopy::files: - '/tmp/test1': - repo: 'talamo_i/copy-file-test' - path: 'abc' - mode: '0600' - owner: 'talamo_i' -``` - -Note that the `filecopy::files` hash is **not merged** over the hierarchy, so only the most specific one will apply. - -This download functionality can be disabled with -``` -base::enable_filecopy: false -``` - -## Download Git Repositories - -To synchronize a git repository to the host you might list them in the `files::git` hash. The key is the destination directory and the value is a hash with following options: - -- `url`: URL of the public git repository to clone -- `revision`: what branch, tag or commit-hash should be checked out - -Example: - -``` -files::git: - /var/test/container-images: - url: 'https://git.psi.ch/linux-infra/container_images.git' - revision: 'main' -``` ## Create Directories @@ -94,3 +48,75 @@ Then also existing files and symlinks are not overwritten. Also this can be chan files::symlinks::force: true ``` but this is then applies for all symlink definitions. + +## Create (Text) Files with Specific Content + +Textfiles with specific content can be created as follows: + +```yaml +files::files: + /testdir/test/three: + content: | + hello world t + this is a test +``` + +## Delete Files / Directories +Individual files and directories can be deleted as follows: + +```yaml +files::files: + /testdir/test/two: + ensure: absent + force: true +``` + +The option `force: true` is only needed for directories. For a directory, if absent, the directory will not be deleted (even if it is empty)! + + +## Download Git Repositories + +To synchronize a git repository to the host you might list them in the `files::git` hash. The key is the destination directory and the value is a hash with following options: + +- `url`: URL of the public git repository to clone +- `revision`: what branch, tag or commit-hash should be checked out + +Example: + +``` +files::git: + /var/test/container-images: + url: 'https://git.psi.ch/linux-infra/container_images.git' + revision: 'main' +``` + +## Download Files + +Files to download need to be placed on a git repository on `git.psi.ch` (internal) or `gitlab.psi.ch` (DMZ, Extranet, Tier3), where they need to be publicly available. + +For configuration in Hiera there is the `filecopy::files` hash where the keys is the destination path of the file. And the value is another hash with following options: + +- `repo`: the Git repository to download from +- `branch`: the Git branch in the repository (optional, default `master`) +- `path`: the file path inside the repository +- `owner`: file owner (optional, default `root`) +- `mode`: file permissions (optional, default `0644`) + + +Example: + +``` +filecopy::files: + '/tmp/test1': + repo: 'talamo_i/copy-file-test' + path: 'abc' + mode: '0600' + owner: 'talamo_i' +``` + +Note that the `filecopy::files` hash is **not merged** over the hierarchy, so only the most specific one will apply. + +This download functionality can be disabled with +``` +base::enable_filecopy: false +```