首页 > 解决方案 > Ansible 符号链接任务角色失败

问题描述

我是 ansible 的新手并执行以下 ansible 任务:

- name: Create symbolic links
  file:
    src:  "{{ item.src }}"
    dest: "{{ item.dest }}"
    owner: "{{ jboss_usr }}"
    group: "{{ jboss_grp }}"
    state: link
  with_items:
    - { src: "/apps/etc/jboss",     dest: "/etc/jboss" }
    - { src: "/apps/var/log/jboss", dest: "/var/log/jboss" }

我收到以下错误:

2018-12-21 21:27:23,469 p=15185 u=ex_sam |  failed: [hostname.x] (item={u'dest': u'/etc/jboss', u'src': u'/apps/etc/jboss'}) => {
    "changed": false, 
    "invocation": {
        "module_args": {
            "attributes": null, 
            "backup": null, 
            "content": null, 
            "delimiter": null, 
            "dest": "/etc/jboss", 
            "diff_peek": null, 
            "directory_mode": null, 
            "follow": true, 
            "force": true, 
            "group": "jboss", 
            "mode": null, 
            "original_basename": null, 
            "owner": "jboss", 
            "path": "/etc/jboss", 
            "recurse": false, 
            "regexp": null, 
            "remote_src": null, 
            "selevel": null, 
            "serole": null, 
            "setype": null, 
            "seuser": null, 
            "src": "/apps/etc/jboss", 
            "state": "link", 
            "unsafe_writes": null, 
            "validate": null
        }
    }, 
    "item": {
        "dest": "/etc/jboss-as", 
        "src": "/apps/etc/jboss"
    }, 
    "msg": "Error while linking: [Errno 13] Permission denied", 
    "path": "/etc/jboss-as", 
    "state": "absent"
}

我试图找出符号链接创建失败的原因。

我阅读了以下内容:

https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#id6

我说“已更改”属性是一个布尔值,指示任务是否必须进行更改。

但是,json 的 invocation:module_args 元素中有很多空参数

这是否意味着这些值真的是“null”或者它们被设置为默认值?

我查看了 ansible 文档,但不确定 invocation:module_args 空值是否代表尝试创建符号链接的结果,即执行任务的空输入或输出。

我认为一些空值是默认值,但对于我的 ansible 错误日志中返回的 json 与实际“链接时出错:[Errno 13] 权限被拒绝”之间可能存在的关系,我将不胜感激。

感谢大家期待的帮助。

标签: ansible

解决方案


我认为,是 /etc 的权限。所以可能你需要添加选项:

become: true

到你的任务。


推荐阅读