首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible:更改目录问题的权限

Ansible:更改目录问题的权限
EN

Stack Overflow用户
提问于 2017-01-20 09:42:44
回答 1查看 1.4K关注 0票数 1

我正在运行以下Ansible任务来更改目录及其内容的权限。

代码语言:javascript
复制
- name: Change ownership of everything below /opt/as2/app-server
  file: path=/opt/as2/app-server state=directory recurse=yes owner=adrt group=adrt

在运行它时,我会看到以下问题:

任务应用服务器:更改/opt/as2 2/app-server以下所有内容的所有权* 致命: 192.168.1.182:失败!\"/tmp/ansible_UrBo6x/ansible_module_file.py\",{“更改”:假,“失败”:真,"module_stderr":"","module_stdout":“回溯”(最近一次调用):\r\n文件\"/tmp/ansible_UrBo6x/ansible_module_file.py\",行451,在\r\n main()\r\n文件\“/tmp/ansible_UrBo6x/ansible_module_file.py\”,行335,在main\r\n changed |= recursive_set_attributes(模块,to_bytes( File _args‘’path),errors=‘#en1#_or_ |=’)中,跟随,file_args)\r\n文件|=第146行,在recursive_set_attributes\r\n changed |=recursive_set_attributes中\r\n文件\"/tmp/ansible_UrBo6x/ansible_modlib.zip/ansible/module_utils/basic.py\",行1163,set_fs_attributes_if_different\r\n文件\"/tmp/ansible_UrBo6x/ansible_modlib.zip/ansible/module_utils/basic.py\",行929,set_owner_if_different\r\n文件\"/tmp/ansible_UrBo6x/ansible_modlib.zip/ansible/module_utils/basic.py\",行842,在'/opt/as2/app-server-1.0.0/apps/station/WEB-INF/classes/org/adroitlogic/isuite/metrics/As2MetricsService/usr/bin/python$tt__collectStats_closure14.class'\r\n",:Errno 2中,没有这样的文件或目录:user_and_group\r\nOSError "msg":“模块失败”}

基本上没有这样的文件或目录,

代码语言:javascript
复制
/opt/as2/app-server-1.0.0/apps/station/WEB-INF/classes/org/adroitlogic/isuite/metrics/As2MetricsService/usr/bin/python$tt__collectStats_closure14.class

目录/opt/as2/app-server/apps/station/WEB-INF/classes/org/adroitlogic/isuite/metrics/的内容是,

代码语言:javascript
复制
As2MetricsService$_$tt__CountStatisticsLists_closure3.class
As2MetricsService$_$tt__collectStats_closure10.class
As2MetricsService$_$tt__collectStats_closure11.class
As2MetricsService$_$tt__collectStats_closure12.class
As2MetricsService$_$tt__collectStats_closure13.class
As2MetricsService$_$tt__collectStats_closure14.class
As2MetricsService$_$tt__collectStats_closure15.class
As2MetricsService$_$tt__collectStats_closure4.class
As2MetricsService$_$tt__collectStats_closure5.class
As2MetricsService$_$tt__collectStats_closure6.class
As2MetricsService$_$tt__collectStats_closure7.class
As2MetricsService$_$tt__collectStats_closure8.class
As2MetricsService$_$tt__collectStats_closure9.class
As2MetricsService$_CountStatisticsLists_closure1.class
As2MetricsService$_collectStats_closure2.class
As2MetricsService.class

没有子目录。

另外,当我在目录chown -R adrt:adrt .中运行命令/opt/as2/app-server时,它会执行,不会出现任何问题。

帮我了解这里发生了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-20 10:07:00

帮我了解这里发生了什么。

您刚刚在Ansible中发现了一个bug,当它处理的文件名包含$_序列时,它会导致模块失败。

名称是在不转义$字符(或者使用显式转换请求os.path.expandvars(filename))的情况下传递的,序列$_作为内置变量处理,解析当前进程的路径(在本例中是/usr/bin/python,因为Ansible使用Python运行其模块)。

因此,文件名:

代码语言:javascript
复制
As2MetricsService$_$tt__collectStats_closure14.class

解释为:

代码语言:javascript
复制
As2MetricsService/usr/bin/python$tt__collectStats_closure14.class

系统抛出一个文件不存在的错误(这是真的)。

在修复之前,我想您必须用chown模块调用command

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41760420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档