使用 Ansible 创建目录时,它不会出现

When creating directory with Ansible it doesnt appear

我有这个简单的 ansible 流程:我想在主机上创建一个目录:

- name: Create rails app dir
  file: path=/etc/rails-app state=directory mode=0755
  register: rails_app_dir

这些是我 运行 剧本时的日志:


TASK [instance_deploy_app : Create rails app dir] *************************************************************************************************
task path: /etc/ansible/roles/instance_deploy_app/tasks/main.yml:39
<IPv4 of host> ESTABLISH LOCAL CONNECTION FOR USER: root
<IPv4 of host> EXEC /bin/sh -c 'echo ~root && sleep 0'
<IPv4 of host> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir "` echo /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297 `" && echo ansible-tmp-1645566978.53-25820-207749605236297="` echo /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297 `" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/files/file.py
<IPv4 of host> PUT /root/.ansible/tmp/ansible-local-25617Cg_rWo/tmpTPHs3p TO /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297/AnsiballZ_file.py
<IPv4 of host> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297/ /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297/AnsiballZ_file.py && sleep 0'
<IPv4 of host> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297/AnsiballZ_file.py && sleep 0'
<IPv4 of host> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1645566978.53-25820-207749605236297/ > /dev/null 2>&1 && sleep 0'
ok: [IPv4 of host] => {
    "changed": false, 
    "diff": {
        "after": {
            "path": "/etc/rails-app"
        }, 
        "before": {
            "path": "/etc/rails-app"
        }
    }, 
    "gid": 0, 
    "group": "root", 
    "invocation": {
        "module_args": {
            "_diff_peek": null, 
            "_original_basename": null, 
            "access_time": null, 
            "access_time_format": "%Y%m%d%H%M.%S", 
            "attributes": null, 
            "backup": null, 
            "content": null, 
            "delimiter": null, 
            "directory_mode": null, 
            "follow": true, 
            "force": false, 
            "group": null, 
            "mode": "0755", 
            "modification_time": null, 
            "modification_time_format": "%Y%m%d%H%M.%S", 
            "owner": null, 
            "path": "/etc/rails-app", 
            "recurse": false, 
            "regexp": null, 
            "remote_src": null, 
            "selevel": null, 
            "serole": null, 
            "setype": null, 
            "seuser": null, 
            "src": null, 
            "state": "directory", 
            "unsafe_writes": null
        }
    }, 
    "mode": "0755", 
    "owner": "root", 
    "path": "/etc/rails-app", 
    "size": 41, 
    "state": "directory", 
    "uid": 0
}
Read vars_file 'roles/instance_deploy_app/vars/instance_vars.yml'
Read vars_file 'roles/instance_deploy_app/vars/aws_cred.yml'

根据日志,该目录应该存在,但当我尝试访问 /etc/rails-app/ 时,它不存在。我目前在 AWS EC2 实例中有 3 个用户:ec2-user、root 和 user1,我尝试检查所有这些用户,但目录没有出现。

我是不是做错了什么?谢谢!

它没有创建文件夹的原因,正如 β.εηοιτ.βε 所建议的那样,是因为在剧本中我有 connection: local 所以它“从不连接到我的 EC2 并且总是在我的控制器上运行”。一旦我删除它,它就起作用了。