myos/ansible/roles/disks
Yann Autissier a75d5b4645 fix runit install 2022-06-26 14:45:26 +02:00
..
defaults wip 2021-07-14 20:38:30 +01:00
handlers wip 2021-07-14 20:38:30 +01:00
library import files 2021-02-09 18:08:58 +01:00
meta wip 2021-07-14 20:38:30 +01:00
tasks fix runit install 2022-06-26 14:45:26 +02:00
.gitrepo lol 2021-06-13 02:14:49 +02:00
AUTHORS.md wip 2021-07-14 20:38:30 +01:00
CHANGELOG.md wip 2021-07-14 20:38:30 +01:00
LICENSE wip 2021-07-14 20:38:30 +01:00
README.md wip 2021-08-05 03:35:36 +01:00

README.md

disks role for Ansible

Format and mount additional disks

Role Variables

Default Variables

  • disks_to_mount - List of disks to mount:
    • disable_periodic_fsck deactivates the periodic ext3/4 filesystem check for the new disk
    • disk is the device, you want to mount
    • fstype allows you to choose the filesystem to use with the new disk
    • group sets group of the mount directory (default: root)
    • mount is the directory where the new disk should be mounted
    • mount_options allows you to specify custom mount options
    • part is the first partition name. If not specified, 1 will be appended to the disk name
    • user sets owner of the mount directory (default: root)
# inventory/group_vars/GROUP_NAME
disks_to_mount:
 - disk: /dev/sdb
   fstype: ext4
   mount_options: defaults
   mount: /data1
   user: www-data
   group: www-data
   disable_periodic_fsck: false
 - disk: /dev/nvme0n1
   part: /dev/nvme0n1p1
   fstype: xfs
   mount_options: defaults,noatime
   mount: /data2
 - disk: nfs-host:/nfs/export
   fstype: nfs
   mount_options: defaults,noatime
   mount: /data3

The following filesystems are currently supported:

Note: (*) To use these filesystems you have to define and install additional software packages. Please estimate the right package names for your operating system.

  • disks_packages - List of packages to install/remove on your hosts
disks_packages:
  - { "name": "xfsprogs", "state": "present" }     # package for mkfs.xfs on RedHat / Ubuntu
  - { "name": "btrfs-progs", "state": "present" }  # package for mkfs.btrfs on CentOS / Debian
  • disks_services - List of services to enable/disable on your hosts
disks_services:
  - { "name": "rpc.statd", "state": "started", "enabled": "yes" }    # start rpc.statd service for nfs

AWS variables

  • aws_ebs_discover - Discover AWS NVMe EBS disks
aws_ebs_discover: false

Example playbook

- hosts: 'disks'
  roles:
  - role: 'aynicos.disks'
    disks_to_mount:
    - disk: /dev/xvdb
      disable_periodic_fsck: true
      fstype: ext4
      mount_options: defaults
      mount: /var/lib/docker
      service: docker
    disks_services:
    - { "name": "rpc.statd", "state": "started", "enabled": "yes" }

How it works

It uses sfdisk to partition the disk with a single primary partition spanning the entire disk. It creates the specified filesystem with mkfs. It mounts the new filesystem to the specified mount path.