Merge pull request #1 from corvus-migratorius/role-mount-device
Migrate `mount_device`
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
# Ansible Collection - genlab.common
|
||||
|
||||
Documentation for the collection.
|
||||
## Roles
|
||||
|
||||
- [mount_device](roles/mount_device/README.md)
|
||||
|
||||
45
roles/mount_device/README.md
Normal file
45
roles/mount_device/README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
ansible-mount-device
|
||||
=========
|
||||
|
||||
Mount the given block device.
|
||||
|
||||
This is essentially a thin wrapper about `ansible.posix.mount` created to standardize handling mounts.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
|
||||
`devices`: a list of objects, describing which device should be mounted, and how (see below for an example)
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
Example Playbook
|
||||
----------------
|
||||
|
||||
```yaml
|
||||
- role: mount_device
|
||||
devices:
|
||||
- what: /dev/vdb
|
||||
where: "/somewhere"
|
||||
fstype: ext4
|
||||
opts:
|
||||
- noatime
|
||||
state: mounted
|
||||
```
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
BSD
|
||||
|
||||
Author Information
|
||||
------------------
|
||||
|
||||
corvus-migratorius@proton.me
|
||||
1
roles/mount_device/defaults/main.yml
Normal file
1
roles/mount_device/defaults/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
---
|
||||
1
roles/mount_device/handlers/main.yml
Normal file
1
roles/mount_device/handlers/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
---
|
||||
17
roles/mount_device/meta/main.yml
Normal file
17
roles/mount_device/meta/main.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
galaxy_info:
|
||||
role_name: mount_device
|
||||
namespace: genlab
|
||||
author: "Alexander Gorelyshev"
|
||||
company: "Genlab, LLC"
|
||||
description: "Mount the given device"
|
||||
license: "GPL-2.0-or-later"
|
||||
min_ansible_version: "2.1"
|
||||
|
||||
platforms:
|
||||
- name: "Ubuntu"
|
||||
versions: [ "focal", "jammy", "noble" ]
|
||||
|
||||
galaxy_tags: []
|
||||
|
||||
dependencies: []
|
||||
27
roles/mount_device/molecule/default/converge.yml
Normal file
27
roles/mount_device/molecule/default/converge.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
|
||||
pre_tasks:
|
||||
|
||||
- name: "Check if the disk file already exists"
|
||||
ansible.builtin.stat:
|
||||
path: /tmp/test_file
|
||||
register: disk_file
|
||||
|
||||
- name: "Create a file to act as a disk if it doesn't exist"
|
||||
when: not disk_file.stat.exists
|
||||
changed_when: false
|
||||
ansible.builtin.shell: |
|
||||
dd if=/dev/zero of=/tmp/test_file bs=1000000 count=100
|
||||
mkfs.ext3 /tmp/test_file
|
||||
|
||||
roles:
|
||||
- role: genlab.mount_device
|
||||
devices:
|
||||
- what: "/tmp/test_file"
|
||||
where: "/test_mount"
|
||||
fstype: ext3
|
||||
opts:
|
||||
- noatime
|
||||
state: mounted
|
||||
27
roles/mount_device/molecule/default/molecule.yml
Normal file
27
roles/mount_device/molecule/default/molecule.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
|
||||
driver:
|
||||
name: docker
|
||||
|
||||
platforms:
|
||||
- name: ubuntu
|
||||
image: geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2404}-ansible:latest
|
||||
pre_build_image: true
|
||||
command: ${MOLECULE_DOCKER_COMMAND:-""}
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:rw
|
||||
cgroupns_mode: host
|
||||
privileged: true
|
||||
|
||||
provisioner:
|
||||
name: ansible
|
||||
|
||||
verifier:
|
||||
name: ansible
|
||||
|
||||
lint: |
|
||||
set -e
|
||||
yamllint .
|
||||
ansible-lint .
|
||||
18
roles/mount_device/molecule/default/verify.yml
Normal file
18
roles/mount_device/molecule/default/verify.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
- name: Verify
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
any_errors_fatal: true
|
||||
|
||||
tasks:
|
||||
- name: "Check mountpoint" # noqa: command-instead-of-module
|
||||
changed_when: false
|
||||
register: mounts
|
||||
ansible.builtin.command:
|
||||
cmd: mount -l
|
||||
|
||||
- name: "Ensure test_file is mounted on test_mount"
|
||||
ansible.builtin.assert:
|
||||
that: "'/tmp/test_file on /test_mount type ext3' in mounts.stdout"
|
||||
success_msg: "/test_mount is a mounted"
|
||||
fail_msg: "/test_mount is not on the list of mounts"
|
||||
3
roles/mount_device/requirements.yml
Normal file
3
roles/mount_device/requirements.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
# requirements file
|
||||
---
|
||||
collections: []
|
||||
9
roles/mount_device/tasks/main.yml
Normal file
9
roles/mount_device/tasks/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: "Mount devices"
|
||||
with_items: "{{ devices }}"
|
||||
ansible.posix.mount:
|
||||
fstype: "{{ item.fstype }}"
|
||||
path: "{{ item.where }}"
|
||||
src: "{{ item.what }}"
|
||||
opts: "{{ item.opts | join(',') }}"
|
||||
state: "{{ item.state }}"
|
||||
1
roles/mount_device/vars/main.yml
Normal file
1
roles/mount_device/vars/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
---
|
||||
Reference in New Issue
Block a user