Stuck on a playbook development - Fs

Hi, first of all i would like to introduce myself, i work with linux and AIX systems and I’m trying to have some automation over the servers farm

I’m new to ansible and i’ve been reading the docs and i get how playbooks works but i’m still pretty new with all this so i’m learning everyday about modules and how to use them.

Problem comes as i have a tight agenda and i’m getting stuck with some tasks i don’t know how to get over with, basically because i lack the knowlegde of the modules to use or how yo use them.

What i’m trying to do is a playbook to install some agents, so i have to do several tasks like creating users, checking Fs and install the agent

The Playbook i’ve created is still a work in progress as it’s on a very early stage

-rw-r–r-- 1 ansible ansible 141 sep 28 16:48 patrol.yml

drwxr-xr-x 5 ansible ansible 40 sep 28 14:03 roles

drwxr-xr-x 2 ansible ansible 38 sep 28 17:25 vars

./roles/fs/tasks/main.yml

./roles/patrol/meta/main.yml

./roles/patrol/tasks/main.yml

./roles/users/tasks/main.yml

./vars:

total 8

-rw-r–r-- 1 ansible ansible 24 sep 28 17:25 aix.yml

-rw-r–r-- 1 ansible ansible 24 sep 28 17:25 linux.yml

-rw-r–r-- 1 ansible ansible 808 sep 28 13:54 comunes.yml

On vars i have comunes as the first variables:

is_aix: “‘{{ ansible_distribution|lower }}’ == ‘aix’”

is_linux: “‘{{ ansible_system|lower }}’ == ‘linux’”

is_centos: “‘{{ ansible_distribution|lower }}’ == ‘centos’”

is_ubuntu: “‘{{ ansible_distribution|lower }}’ == ‘ubuntu’”

is_redhat: “‘{{ ansible_distribution|lower }}’ == ‘redhat’”

is_redhat6: “‘{{ ansible_distribution|lower }}’ == ‘redhat’ and ‘{{ ansible_distribution_major_version }}’ == ‘6’”

is_redhat65: “‘{{ ansible_distribution|lower }}’ == ‘redhat’ and ‘{{ ansible_distribution_version }}’ == ‘6.5’”

is_aix5: “‘{{ ansible_system|lower }}’ == ‘aix’ and ‘{{ ansible_distribution_version }}’ == ‘5’”

is_aix6: “‘{{ ansible_system|lower }}’ == ‘aix’ and ‘{{ ansible_distribution_version }}’ == ‘6’”

is_aix7: “‘{{ ansible_system|lower }}’ == ‘aix’ and ‘{{ ansible_distribution_version }}’ == ‘7’”

And on aix and linux must go specific variables based on the OS platform, like var dir_agente with the installation path. The main playbook is patrol.yml

  • hosts: masteraix71

vars_files:

  • vars/comunes.yml

  • “vars/{{ ansible_system|lower }}.yml”

roles:

  • users

  • fs

  • patrol

Through meta patrol depends on users and fs, my problem is with the fs role, as it has to check the Fs to use, some checks are:

  • The path exists and is a dir

  • The volume exists on LVM

  • The volume is mounted and on fstab

The first one i’m doing it through stat so it fails if the file exist and its not a directory and create the mount point if it doesn’t exist