无法在Ansible中创建符号链接,表示:“;文件夹不为空,拒绝转换它";
错误: 失败!=>{“changed”:false,“failed”:true,“gid”:0,“group”:“root”,“mode”:“0755”,“msg”:“目录/var/www/html/simpleRepoTwo/simpleRepoThree/release-20161213-1927/不为空,拒绝转换”,“所有者”:“root”,“路径”:/var/www/html/simpleRepoTwo/simpleRepoThree/release-20161213-1927/,“大小”:4096,“状态”:“directory”,“uid”:0} 我还尝试在/home/ubuntu/中使用不同的目录创建符号链接<代码>强制:是不起作用 这是密码无法在Ansible中创建符号链接,表示:“;文件夹不为空,拒绝转换它";,ansible,ansible-playbook,Ansible,Ansible Playbook,错误: 失败!=>{“changed”:false,“failed”:true,“gid”:0,“group”:“root”,“mode”:“0755”,“msg”:“目录/var/www/html/simpleRepoTwo/simpleRepoThree/release-20161213-1927/不为空,拒绝转换”,“所有者”:“root”,“路径”:/var/www/html/simpleRepoTwo/simpleRepoThree/release-20161213-1927/,“大小
- name: Creating symlinks of Products
file:
src: /home/ubuntu/productName/
dest: /var/www/html/simpleRepoTwo/simpleRepoThree/release-{{release_folder}}/
state: link
force: yes
我想在simpleRepoTwo/simpleRepoThree/release-20161213-1927
中创建productName的符号链接“/home/ubuntu/productName”到您的文件夹“/var/www/html/simpleRepoTwo/simpleRepoThree/release-{release\u folder}”,您必须在参数dest中设置“/home/ubuntu/productName”。不得使用最终的“/”
关于力参数,请在两种情况下使用它:
- 源文件不存在(但稍后会出现)
- 目标存在并且是一个文件(因此,我们需要取消“path”文件的链接,并创建指向“src”文件的符号链接来代替它)
使用此任务
- name: Creating symlinks of Products
file:
src: /var/www/html/simpleRepoTwo/simpleRepoThree/release-{{release_folder}}
dest: /home/ubuntu/productName
state: link
- name: Creating symlinks of Products
file:
src: "/var/www/html/simpleRepoTwo/simpleRepoThree/release-{{ release_folder }}/{{ item.src }}"
dest: "/home/ubuntu/{{ item.dest }}"
state: link
with_items:
- src: p1
dest: p1
- src: p2
dest: p2
要循环项目,请使用此任务
- name: Creating symlinks of Products
file:
src: /var/www/html/simpleRepoTwo/simpleRepoThree/release-{{release_folder}}
dest: /home/ubuntu/productName
state: link
- name: Creating symlinks of Products
file:
src: "/var/www/html/simpleRepoTwo/simpleRepoThree/release-{{ release_folder }}/{{ item.src }}"
dest: "/home/ubuntu/{{ item.dest }}"
state: link
with_items:
- src: p1
dest: p1
- src: p2
dest: p2
如果这是rails应用程序,rails会将.keep文件放在一些文件夹中。例如日志。这会导致文件夹不为空。清空文件夹,然后重试。似乎没有办法满足您的要求
空目录可以“转换”为另一个目录中的符号链接。此“转换”需要删除原始目录并随后创建符号链接
但如果该目录不是空的,则删除该目录将使其所有内容完全不可用。Ansible说这是不可能的,因为错误信息中已经明确说明了这一点
当然,您可以创建两个任务,首先删除目录内容,然后将其“转换”为符号链接。此外,如果您用/
结束dest:
参数值,Ansible将失败,但原因不同。Hello@Nelson G,符号链接已创建,但我再次尝试循环它,由于我们有大约8种产品,因此当用户键入ourwebsite.com/admin时,它将进入adminpanel。-名称:创建产品的符号链接文件:src:'/var/www/html/{item.src}}/'dest:'/var/www/html/simpleRepoTwo/simpleRepoThree/{release_folder}/{item.dest}'状态:链接到{u items:-{src:'simpleRepo',dest:'prodcuttone'}-{src:'simpleRepo',dest:'prodcutTwo'}-{src:'simpleRepo',dest:'prodcutThree'}-{src:'simpleRepo',dest:'prodcuttefour'}你好,Nelson和tecraf,我厌倦了使用循环创建符号链接,这两种语法都不起作用。要点如下:错误(漂亮的打印):失败:[54.85.157.222](item={u'dest':u'prodcutSix',u'src':u'simpleRepo'})=>{“failed”:true,“item”:{“dest”:“prodcutSix”,“src”:“simpleRepo”},“msg”:“链接时出错:[Errno 2]没有这样的文件或目录”,“路径”:/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-1334/prodcutSix”,“state”:“缺席”}如果我每隔一段时间运行playbook,8个产品符号链接的创建并不均匀,有时它会抛出错误,有时它只是完美地创建了符号链接。但大多数时候它只是错误:error::(item={u'dest':u'prodcutTwo',u'src':u'simplerpo'}=>{“failed”:true,“item”:{“dest”:“prodcutTwo”,“src”:“simplerpo”},“msg”:”链接时出错:[Errno 2]没有这样的文件或目录,“路径”:/var/www/html/simpleRepoTwo/simpleRepoThree/20161214-1540/prodcutTwo,“状态”:“缺席”}