Reputation: 121
I've been trying to create symlinks of 8 different products in a single Ansible task. Here is my code.
- name: Other symlinks of Products
file:
src: "/var/www/html/{{ item.src }}"
dest: "/var/www/html/simpleRepoTwo/simpleRepoThree/{{release_folder}}/{{ item.dest }}"
state: link
with_items:
- src: simpleRepo
dest: p1
- src: simpleRepo
dest: p2
- src: simpleRepo
dest: p3
- src: simpleRepo
dest: p4
- src: simpleRepo
dest: p5
- src: simpleRepo
dest: p6
- src: simpleRepo
dest: p7
- src: simpleRepo
dest: p8
Error:
(item={u'dest': u'p3', u'src': u'simpleRepo'}) => {"failed": true, "gid": 0, "group": "root", "item": {"dest": "p3", "src": "simpleRepo"}, "mode": "0755", "msg": "refusing to convert between directory and link for /var/www/html/simpleRepoTwo/simpleRepoThree/20161214-2004/p3", "owner": "root", "path": "/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-2004/p3", "size": 4096, "state": "directory", "uid": 0}
Error 2
failed: [54.85.157.222] (item={u'dest': u'p8', u'src': u'simpleRepo'}) => {"failed": true, "item": {"dest": "p8", "src": "simpleRepo"}, "msg": "Error while linking: [Errno 2] No such file or directory", "path": "/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-2005/p8", "state": "absent"}
And here are the contents list /var/www/html/simpleRepo
has just index.html
and /var/www/html/simpleRepoTwo/simpleRepoThree/
has release folder based on timestmp 20161214-1922 , 20161214-1921
, /var/www/html/simpleRepoTwo/simpleRepoThree/20161214-1922/
should have p1, p2
symlinks which point to p1 -> /var/www/html/simpleRepo
I tried creating all the folders first and symlinking simpleRepo
. Also, i used the command
module, changed the directory. Like this. Still, creating symlink is unstable.
- command: ln -s /var/www/html/simpleRepo /var/www/html/simpleRepoTwo/simpleRepoThree/{{release_folder}}/p2
args:
chdir: /var/www/html/simpleRepoTwo/simpleRepoThree/{{release_folder}}/
Thanks in advance.
Upvotes: 1
Views: 1249
Reputation: 2499
In case it helps anyone else, I got the same error message:
refusing to convert between directory and link for /path/to/file
Because an earlier task in my playbook had created a directory with the same name as the link that I was trying to create in dest
.
Upvotes: 0