{"id":50385040,"url":"https://github.com/stackhpc/ansible-role-os-manila-mount","last_synced_at":"2026-05-30T14:30:55.023Z","repository":{"id":83225297,"uuid":"111944869","full_name":"stackhpc/ansible-role-os-manila-mount","owner":"stackhpc","description":"Mount a share created by OpenStack Manila (currently only CephFS native)","archived":false,"fork":false,"pushed_at":"2026-01-07T09:05:58.000Z","size":71,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-08T17:28:03.788Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stackhpc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-11-24T18:08:37.000Z","updated_at":"2026-01-02T13:01:40.000Z","dependencies_parsed_at":"2024-01-23T12:28:32.627Z","dependency_job_id":"f8aaf5ae-8926-48cb-91f0-18af6db4e212","html_url":"https://github.com/stackhpc/ansible-role-os-manila-mount","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/stackhpc/ansible-role-os-manila-mount","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fansible-role-os-manila-mount","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fansible-role-os-manila-mount/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fansible-role-os-manila-mount/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fansible-role-os-manila-mount/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stackhpc","download_url":"https://codeload.github.com/stackhpc/ansible-role-os-manila-mount/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stackhpc%2Fansible-role-os-manila-mount/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33696681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-30T14:30:54.124Z","updated_at":"2026-05-30T14:30:55.018Z","avatar_url":"https://github.com/stackhpc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"stackhpc.os-manila-mount\n========================\n\nMount one or more shares created by OpenStack Manila.\n\nCurrently only supports:\n- CephFS-protocol shares\n- RockyLinux 8 and 9\n- Ubuntu Jammy and Noble\n\nRequirements\n------------\n\nThe host running the lookup action (see below) requires the following python packages:\n\n- `openstacksdk`\n- `python-openstackclient`\n- `python-manilaclient`\n\nThat host also requires OpenStack credentials and access to the OpenStack APIs.\n\nRole Taskfiles\n--------------\n\nThe default `tasks/main.yml` task file will install packages, lookup Manila share\ndetails, create client configuration and mount shares. However it is possible to\nseparate out these actions using specific task files:\n- `install.yml`: Only install release repo and packages.\n- `lookup.yml`: Only lookup share details.\n- `mount.yml`: Only create client configuration and mount shares.\n\nThis may be useful for image build, or for situations where it is undesirable to\ndynamically retrieve share information during mount.\n\nRole Variables\n--------------\n\n* `os_manila_mount_shares`: List of dicts defining the shares to mount, each\ncontaining:\n  - `share_name`: Required. Name in Manila for the share (\"Name\" from `openstack share\n  list`).\n  - `share_user`: Optional if share only has one access rule defined, otherwise required.\n  CephX user for access (\"Access To\" from `openstack share access list \u003cshare_name\u003e`).\n  - `mount_path`: Required. Directory path to mount the share at (will be created).\n  - `mount_user`: Optional. User to mount as (default: become user).\n  - `mount_group`: Optional. Group to mount as (default: become user).\n  - `mount_mode`: Optional. Permissions for mounted directory, as for [ansible.builtin.file:mode](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/file_module.html#parameter-mode)\n  - `mount_opts`: Optional. List of strings defining mount options. Default from\n  `os_manila_mount_opts` (i.e. same for all mounts).\n  - `mount_state`: Optional. Mount state, default from `os_manila_mount_state` (i.e. same for\n  all mounts).\n\n* `os_manila_share_lookup_host`: Optional. Inventory hostname of host to run lookup on.\nDefault `localhost`.\n* `os_manila_share_lookup_once`: Optional. Bool controlling whether to run the lookup\ntask on only one host. Default is `true` for speed, but if \n`os_manila_mount_shares` varies between hosts in the play this must be set to `false`.\n\n* `os_manila_mount_state`: Optional. As for `state` of [ansible.posix.mount](https://docs.ansible.com/ansible/latest/collections/ansible/posix/mount_module.html). Default `mounted`.\n* `os_manila_mount_opts`: Optional. List of strings defining default mount options\n(see `defaults/main.yml`).\n\n* `os_manila_mount_share_info`: Automatically populated by lookup task. If not running\nthat, this should be a list of dicts each containing:\n  - `host`: Host/port for Ceph mon(s), e.g. `mon1:port,mon2:port,mon3:port`\n  - `export`: Exported path.\n  - `access_key`: The access key for this share for the `share_user`.\n  **WARNING: This value should be kept secret.**\n\n  If necessary for debugging, set `no_log=false` to see this variable. Note that running ansible with\n`-v` will expose `access_key`.\n\nCeph variables:\n* `os_manila_mount_ceph_version`: Optional. Ceph numerical version string, e.g. '17.2.7' not 'quincy'. Default is the oldest supported by the hosts' distribution/version. Must be 15.2.x (Octopus) or later. Note that on RockyLinux changing this and rerunning the role can change the installed version, but on Ubuntu it cannot. After Ubuntu Jammy, this variable has no effect and the version of `ceph-common` available in the distribution repository is installed.\n* `os_manila_mount_ceph_repo_key`: Optional. URL for Ceph repo key. No effect after Ubuntu Jammy.\n* `os_manila_mount_ceph_release_repo`: Optional. URL for Ceph release repo. No effect after Ubuntu Jammy.\n* `os_manila_mount_ceph_conf_path`: Optional. Path for Ceph configuration directory,\ndefault `/etc/ceph`.\n\n\nExample Playbook\n----------------\n\nNote this role must be run with `become`.\n\n    ---\n    - hosts: all\n      become: yes\n      gather_facts: no\n      vars:\n        os_manila_mount_shares:\n        - share_name: manila-test-share\n          share_user: testuser\n          mount_path: /mnt/manila\n          mount_user: \"{{ ansible_user }}\"\n          mount_group: \"{{ ansible_user }}\"\n      tasks:\n        - import_role:\n            name: stackhpc.os-manila-mount\n\nAn easy way to run this example with both the lookup and the mount done on localhost is:\n\n    python -m venv venv\n    . .venv/bin/activate\n    pip install -U pip\n    pip install -U ansible python-openstackclient python-manilaclient\n    ansible-galaxy install stackhpc.os-manila-mount\n\n    ansible-playbook -v local test.yml\n\nLicense\n-------\n\nApache\n\nAuthor Information\n------------------\n\nhttp://www.stackhpc.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fansible-role-os-manila-mount","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstackhpc%2Fansible-role-os-manila-mount","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstackhpc%2Fansible-role-os-manila-mount/lists"}