A quick notice for your ansible scripts and as a reminder the right syntax for making a link with ansible is:
- name: change version file: src="path-to-existing-file-or-directory" dest="path-to-the-name-of-the-symlink" state=link
- src must be existing file on the file system with the full path. The link will point to this file!
- dest must be the name of the link with the full path. The setup will create or change the where this link points to.
Common error is to swap the src and dst
Here is an example of this error:
TASK [PHP-prepare : change version] **************************************** fatal: [localhost]: FAILED! => {"changed": false, "gid": 0, "group": "root", "mode": "0755", "msg": "refusing to convert from file to symlink for /usr/bin/php7.2", "owner": "root", "path": "/usr/bin/php7.2", "size": 4488224, "state": "file", "uid": 0}
The bad ansible code:
- name: change version file: src="/etc/alternatives/php" dest="/usr/bin/php7.2" state=link
The right ansible code:
- name: change version file: src="/usr/bin/php7.2" dest="/etc/alternatives/php" state=link