I'm writing a play to create a few symlinks in my app directory that link
to some shared directories on a NFS mount.
Because of the way the application is, in the location where I'm trying to
place the symlink, there may or may not be a directory that already exists.
I want to make sure that directory is deleted first, then a symlink created
in it's place to point to the corresponding directory on the NFS mount.
I have a play which does this fine but I wanted some input to make sure
100% that if the symlink is already created, then deleting the directory
with NEVER delete any contents from the NFS mount.
# set list of directories as variable
- name: Set dirs variable
set_fact:
dirs_to_symlink:
- { src: /nfs/audio, dest: /var/web/site/audio}
- { src: /nfs/downloads, dest: /var/web/site/downloads}
- { src: /nfs/images, dest: /var/web/site/images}
# get stat information about the directories
- name: check if directories exist
stat: path={{ item.dest }}
register: dir_check
with_items: "{{ dirs_to_symlink }}"
- debug: msg="exists={{ item.stat.exists }}, islnk={{ item.stat.islnk }},
isdir={{ item.stat.isdir }}"
with_items: "{{ dir_check.results }}"
# go through the stats and do some checks, if directories exist delete
them, otherwise leave it alone
- name: remove directories ready for sym links
file: path={{ item.item.dest }} state=absent
when:
- item.stat.exists == true
- item.stat.islnk == false
- item.stat.isdir == true
with_items: "{{ dir_check.results }}"
# go ahead and create symlinks to directories on the nfs mount
- name: create sym links for assets
file: src={{ item.src }} dest={{ item.dest }} state=link force=yes
with_items: "{{ dirs_to_symlink }}"
This works fine, it doesn't delete the contents of the directory on the NFS
mount if the symlink does exist. Great!
But if checking the following enough?
- item.stat.exists == true
- item.stat.islnk == false
- item.stat.isdir == true
Are there any other things I can check for to make sure that...
file: path={{ item.item.dest }} state=absent
Will not accidentally on purpose delete a directory on the NFS
mount...which would be very very bad!
Any advise or extra checks that come to mind would be awesome.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/91fffdc9-a238-4989-8285-1348a45e21e4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.