Ansible符号链接任务角色失败

时间:2019-01-02 17:40:17

标签: 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

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

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

这是否意味着这些值确实为“ null”或将其设置为默认值?

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

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

感谢您对我们的期望。

1 个答案:

答案 0 :(得分:0)

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

become: true

完成您的任务。