Question:
In my playbook, I need to create a symbolic link for a repo.
With command (shell) it may work like this:
1 2 3 4 5 6 7 8 |
########## Create symbolic link - name: Create symbolic link shell : ln -s "{{SOURCE_FOLDER}}" SYMLINK args : chdir : "/opt/application/i99/" when: - ansible_host in groups['ihm'] |
-> like this my symbolic link is created directly inside i99 repo /
SYMLINK
-> SOURCE_FOLDER
But while doing it with the Ansible file module, like this:
1 2 3 4 5 6 7 8 9 |
########## Create symbolic link - name: Create symbolic link file: src: "/opt/application/i99/{{SOURCE_FOLDER}}/" dest: "/opt/application/i99/SYMLINK" state: link when: - ansible_host in groups['ihm'] |
My output is this :
SYMLINK
-> /opt/application/i99/SOURCE_FOLDER
As I don’t want that it points to the whole path, and I need to obtain the first format:
SYMLINK -> SOURCE_FOLDER
How can I do it?
Answer:
Simply:
1 2 3 4 5 6 |
- name: Create symbolic link file: src: "{{SOURCE_FOLDER}}" dest: "/opt/application/i99/SYMLINK" state: link |
As you can see in the manual for the file
module:
src
Will accept absolute, relative and nonexisting paths. Relative paths are not expanded.