Ansible 在循环上创建多个符号链接会导致行为不稳定
我一直在尝试在一个Ansible任务中创建8种不同产品的符号链接。这是我的密码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
- 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/
有基于时间的发布文件夹tmp20161214-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/
有基于timestmp20161214-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-如果存在同名的现有项目(例如目录),则无法创建与现有名称同名的链接。如果这适用于您,则解决方案是删除现有项目,或使用其他名称创建链接。