273
July 21, 2024, 4:46 p.m.
Монтирование AWS EFS диска через ansible
Задача: получить доступ к данным которые, которые находятся в AWS EFS.
Для достижения поставленной задачи требуется написать следующий код:
Установка зависимостей:
- name: Install depends
ansible.builtin.apt:
name:
- nfs-common
state: latest
update_cache: true
Переменные:
VARIABLE:
- {name: "example", src: "1.1.1.1", state: present}
Код:
- name: Create mount point of efs storage
file:
path: /mnt/EFS/{{ item.name }}
state: directory
when: item.type == "efs-tar"
with_items: "{{ VARIABLE }}"
- name: Mount efs storage
mount:
path: /mnt/EFS/{{ item.name }}
src: "{{ item.src }}:/"
fstype: nfs4
opts: nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
state: mounted
when: item.type == "efs-tar"
with_items: "{{ VARIABLE }}"
Чтобы в какой-то момент сервер не упал, предлагаю использовать вариант монтирования дисков через CRONTAB
- name: Add cron job to run a mount at system boot
cron:
name: "Add mount at boot for {{ item.name }}"
special_time: "reboot"
job: "mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport {{ item.src }}:/ /mnt/EFS/{{ item.name }}"
when: item.type == "efs-tar" and SERVERNAME == item.target
with_items: "{{ VARIABLE }}"