108 lines
2.6 KiB
YAML
108 lines
2.6 KiB
YAML
|
---
|
||
|
- name: Prepare data disk
|
||
|
hosts: all
|
||
|
|
||
|
environment:
|
||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||
|
|
||
|
vars:
|
||
|
fsconf:
|
||
|
vgn: "{{ lookup('env', 'vgname') }}"
|
||
|
lvs: "{{ lookup('env', 'lvnames').split(' ') }}"
|
||
|
szs: "{{ lookup('env', 'lvsizes').split(' ') }}"
|
||
|
fss: "{{ lookup('env', 'lvfssys').split(' ') }}"
|
||
|
mps: "{{ lookup('env', 'lvmntps').split(' ') }}"
|
||
|
|
||
|
tasks:
|
||
|
|
||
|
- name: Create the "datavg" Volume group.
|
||
|
lvg:
|
||
|
pvs: "/dev/vdb"
|
||
|
vg: "{{ fsconf.vgn }}"
|
||
|
pesize: "16"
|
||
|
pv_options: '-Z y'
|
||
|
force: no
|
||
|
state: present
|
||
|
|
||
|
- name: Create logical volumes.
|
||
|
lvol:
|
||
|
vg: "datavg"
|
||
|
lv: "{{ item }}"
|
||
|
size: "{{ fsconf.szs[idx] }}"
|
||
|
active: yes
|
||
|
force: no
|
||
|
state: present
|
||
|
loop: "{{ fsconf.lvs }}"
|
||
|
loop_control:
|
||
|
index_var: idx
|
||
|
|
||
|
- name: Create filesystems
|
||
|
filesystem:
|
||
|
fstype: "{{ fsconf.fss[idx] }}"
|
||
|
dev: "/dev/datavg/{{ item }}"
|
||
|
loop: "{{ fsconf.lvs }}"
|
||
|
loop_control:
|
||
|
index_var: idx
|
||
|
|
||
|
- name: Find what to backup
|
||
|
stat:
|
||
|
path: "{{ item }}"
|
||
|
with_items: "{{ fsconf.mps }}"
|
||
|
register: mountPoints
|
||
|
|
||
|
|
||
|
- name: Create mount points
|
||
|
file:
|
||
|
path: "{{ fsconf.mps[idx] }}"
|
||
|
state: directory
|
||
|
mode: '0755'
|
||
|
loop: "{{ fsconf.lvs }}"
|
||
|
loop_control:
|
||
|
index_var: idx
|
||
|
|
||
|
- name: Create temporary mount points
|
||
|
file:
|
||
|
path: "/tmp{{ fsconf.mps[idx] }}"
|
||
|
state: directory
|
||
|
mode: '0755'
|
||
|
loop: "{{ fsconf.lvs }}"
|
||
|
loop_control:
|
||
|
index_var: idx
|
||
|
|
||
|
- name: Mount fs in temporary mount points
|
||
|
command: mount /dev/datavg/"{{ item }}" "/tmp{{ fsconf.mps[idx] }}"
|
||
|
loop: "{{ fsconf.lvs }}"
|
||
|
loop_control:
|
||
|
index_var: idx
|
||
|
|
||
|
- name: Configure filesystems create entry in fstab
|
||
|
mount:
|
||
|
path: "{{ fsconf.mps[idx] }}"
|
||
|
src: /dev/datavg/{{ item }}
|
||
|
state: present
|
||
|
fstype: "{{ fsconf.fss[idx] }}"
|
||
|
loop: "{{ fsconf.lvs }}"
|
||
|
loop_control:
|
||
|
index_var: idx
|
||
|
|
||
|
- name: Fill new mount points if exists
|
||
|
become: true
|
||
|
delegate_to: "{{ inventory_hostname }}"
|
||
|
synchronize:
|
||
|
mode: push
|
||
|
src: "{{ item.item }}/"
|
||
|
dest: "/tmp{{ item.item }}/"
|
||
|
times: yes
|
||
|
perms: yes
|
||
|
owner: yes
|
||
|
group: yes
|
||
|
links: yes
|
||
|
recursive: yes
|
||
|
with_items: "{{ mountPoints.results }}"
|
||
|
when: item.stat.exists
|
||
|
|
||
|
|