Ansible 在循环上创建多个符号链接会导致行为不稳定

Ansible 在循环上创建多个符号链接会导致行为不稳定,ansible,ansible-2.x,Ansible,Ansible 2.x,我一直在尝试在一个Ansible任务中创建8种不同产品的符号链接。这是我的密码 - 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: - sr

我一直在尝试在一个Ansible任务中创建8种不同产品的符号链接。这是我的密码

- 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
错误:

(item={u'dest':u'p3',u'src':u'simplerpo'})=>{“failed”:true,“gid”:0,“group”:“root”,“item”:{“dest”:“p3”,“src”:“simplerpo”},“mode”:“0755”,“msg”:“拒绝在/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-2004/p3的目录和链接之间转换”,“所有者”:“root”,“path”:“/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-2004/p3”,“大小”:4096,“状态”:“目录”,“uid”:0}”

错误2

失败:[54.85.157.222](item={u'dest':u'p8',u'src':u'simpleRepo'})=>{“失败”:true,“item”:{“dest”:“p8”,“src”:“simpleRepo”},“msg”:“链接时出错:[Errno 2]没有这样的文件或目录”,“路径”:/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-2005/p8”,“state”:“缺席”}

这里是目录列表
/var/www/html/simpleRepo
刚刚有
索引。html
/var/www/html/simpleRepoTwo/simpleRepoThree/
有基于时间的发布文件夹tmp
20161214-1922,20161214-1921
/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-1922/
应该有
p1,p2de>指向
p1->/var/www/html/simpleRepo

我尝试先创建所有文件夹,然后使用符号链接
simpleRepo
。此外,我还使用
命令
模块更改了目录。就像这样。但是,创建符号链接是不稳定的

 - command: ln -s /var/www/html/simpleRepo /var/www/html/simpleRepoTwo/simpleRepoThree/{{release_folder}}/p2
   args:
     chdir: /var/www/html/simpleRepoTwo/simpleRepoThree/{{release_folder}}/

提前感谢。

如果这对其他人有帮助,我会收到相同的错误消息:

refusing to convert between directory and link for /path/to/file

因为我的playbook中的一个早期任务创建了一个与我试图在
dest

中创建的链接同名的目录,以防它对其他人有帮助,所以我收到了相同的错误消息:

refusing to convert between directory and link for /path/to/file

因为我的剧本中的一个早期任务创建了一个目录,其名称与我试图在
dest

中创建的链接相同,下面是内容,也更新了问题,包括了Ansible转录本
/var/www/html/simpleRepo
刚刚有
index.html
/var/www/html/simpleRepoTwo/simpleRepoThree/
有基于timestmp的发布文件夹
20161214-1922
20161214-1921
/var/www/html/simpleRepottwo/simpleRepoThree/20161214-1922//code>应该有
productOne
productTwo
符号链接,指向
productOne->/var/www/html/simpleRepo
/techraf,是的目录已经存在。您好,techraf,谢谢您指出。我已经更正了错误,包括任务和内容。我错在哪里?您好,techraf,谢谢您没有回答。我找到了解决方案。问题是基于时间戳创建文件夹。更改时间戳时,会创建不同的文件夹。因此出现了问题。下面是内容也更新了问题,包括Ansible转录本
/var/www/html/simpleRepo
刚刚有
index.html
/var/www/html/simpleRepoTwo/simpleRepoThree/
有基于timestmp
20161214-1922
20161214-1921
/var/www/html/simpleRepoTwo/simpleRe>的发布文件夹poThree/20161214-1922/
应该有
productOne
productTwo
符号链接,指向
productOne->/var/www/html/simpleRepo
@techraf,是的,所有目录都存在。你好,techraf,谢谢你指出。我已经更正了错误,包括了任务和内容。我错在哪里?你好,techraf,thanks没有回答。我找到了解决方案。问题是基于时间戳创建文件夹。更改时间戳时,会创建不同的文件夹。因此,问题就出现了。那么,你最终如何解决它?我面临着同样的问题,首先我创建了目录,然后是符号链接,我无法解决it@Ferran-如果存在现有的具有相同名称的项目(例如目录)那么就不可能创建与现有名称同名的链接。如果这适用于您,那么解决方案就是删除现有项目,或者使用其他名称创建链接。那么,您最终如何修复它?我面临着同样的问题,首先创建目录,然后创建符号链接,但我无法修复it@Ferran-如果存在同名的现有项目(例如目录),则无法创建与现有名称同名的链接。如果这适用于您,则解决方案是删除现有项目,或使用其他名称创建链接。