2025-07-13 12:25:32 -06:00

79 lines
1.9 KiB
YAML

# roles/setup_docker_storage/tasks/main.yml
- name: Install LVM tools (if not present)
ansible.builtin.package:
name: lvm2
state: present
- name: Create physical volume
community.general.lvg:
pvs: "/dev/{{ docker_disk }}"
vg: "{{ docker_vg }}"
- name: Check if Docker LV exists
ansible.builtin.command: "lvs --noheadings -o lv_name {{ docker_vg }}"
register: lvs_output
- name: Create logical volume for Docker
community.general.lvol:
vg: "{{ docker_vg }}"
lv: "{{ docker_lv }}"
size: "{{ docker_lv_size }}"
state: present
# when: docker_lv not in lvs_output.stdout
# vars:
# docker_lv: "{{ docker_lv }}"
- name: Format logical volume with XFS
community.general.filesystem:
fstype: xfs
dev: "/dev/{{ docker_vg }}/{{ docker_lv }}"
opts: "-n ftype=1"
- name: Create mount point for Docker volume
ansible.builtin.file:
path: "{{ docker_mountpoint }}"
state: directory
mode: '0755'
- name: Mount Docker LV to VM filesystem
ansible.posix.mount:
path: "{{ docker_mountpoint }}"
src: "/dev/{{ docker_vg }}/{{ docker_lv }}"
fstype: xfs
opts: defaults
state: mounted
- name: Stop Docker service
ansible.builtin.systemd:
name: docker
state: stopped
enabled: true
- name: Bind mount new Docker data dir to /var/lib/docker
ansible.posix.mount:
path: /var/lib/docker
src: /docker-data
fstype: none
opts: bind
state: mounted
# - name: Bind mount new Docker data dir to /var/lib/docker
# ansible.builtin.file:
# path: /var/lib/docker
# state: directory
# mode: '0755'
# - name: Add fstab entry for Docker bind mount
# ansible.builtin.blockinfile:
# path: /etc/fstab
# block: |
# /mnt/docker-data /var/lib/docker none bind 0 0
# marker: "# {mark} ANSIBLE MANAGED BLOCK - DOCKER BIND"
- name: Start Docker service
ansible.builtin.systemd:
name: docker
state: started
enabled: true