首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用解压缩模块获得“排除”选项

无法使用解压缩模块获得“排除”选项
EN

Stack Overflow用户
提问于 2016-06-22 01:40:16
回答 1查看 4.4K关注 0票数 3

我有一个tar/gzip文件,我正在使用ansible解压缩模块将其解压缩到主机列表。

以下是configs.tgz内容的部分列表:

代码语言:javascript
复制
-rw-rw-r-- ian/ian        1295 2015-09-25 15:27 Makefile
-rw-rw-r-- ian/ian          16 2016-06-21 09:24 .configs
drwxrwxr-x ian/ian           0 2016-02-24 10:18 .bash/
-rw-rw-r-- ian/ian         336 2015-09-25 15:27 .bash/apt.b
-rw-rw-r-- ian/ian         367 2015-09-25 15:27 .bash/gcloud.b
drwxrwxr-x ian/ian           0 2016-06-21 09:22 .vim/
drwxrwxr-x ian/ian           0 2016-06-21 09:22 .vim/plugin/
-rw-rw-r-- ian/ian        3327 2016-06-21 09:17 .vim/plugin/scratch.vim
drwxrwxr-x ian/ian           0 2015-09-25 15:27 .vim/ftplugin/
-rw-rw-r-- ian/ian         521 2015-09-25 15:27 .vim/ftplugin/dokuwiki.vim
-rw-rw-r-- ian/ian        2456 2015-09-25 15:27 .vim/ftplugin/nagios.vim
drwxrwxr-x ian/ian           0 2015-09-25 15:27 .vim/ftdetect/
-rw-rw-r-- ian/ian         149 2015-09-25 15:27 .vim/ftdetect/nagios.vim
-rw-rw-r-- ian/ian         111 2015-09-25 15:27 .vim/ftdetect/zsh-profile.vim
-rw-rw-r-- ian/ian         554 2015-09-25 15:27 .zshrc
drwxrwxr-x ian/ian           0 2015-09-25 15:27 .mutt/
lrwxrwxrwx ian/ian           0 2015-09-25 15:27 .mutt/profile.active -> profile.gmail
-rw-rw-r-- ian/ian         863 2015-09-25 15:27 .mutt/everyone.lst
-rw-rw-r-- ian/ian         310 2015-09-25 15:27 .mutt/vimrc4mail
-rw-rw-r-- ian/ian       11559 2015-09-25 15:27 .mutt/muttrc
-rw-rw-r-- ian/ian         441 2015-09-25 15:27 .screenrc
-rw-rw-r-- ian/ian         131 2015-09-25 15:27 .tmux.conf
-rwxrwxr-x ian/ian        1439 2015-09-25 15:27 xmake

除了目录之外,我想提取所有的.mutt,但是我似乎无法正确地获得排除选项。

我得到的是:

代码语言:javascript
复制
% ansible --version
ansible 2.1.0.0
  config file = /home/ian/Playbooks/ansible.cfg
  configured module search path = Default w/o overrides

% rm -rf /tmp/a; mkdir /tmp/a && ansible localhost -m unarchive -a "src=configs/configs.tgz dest=/tmp/a/ exclude='.mutt'" -vvv
Using /home/ian/Playbooks/ansible.cfg as config file
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: ian
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1466558533.54-272347310038797 `" && echo ansible-tmp-1466558533.54-272347310038797="` echo $HOME/.ansible/tmp/ansible-tmp-1466558533.54-272347310038797 `" ) && sleep 0'                                                                                                  
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1466558533.64-181689590644032 `" && echo ansible-tmp-1466558533.64-181689590644032="` echo $HOME/.ansible/tmp/ansible-tmp-1466558533.64-181689590644032 `" ) && sleep 0'                                                                                                  
<localhost> PUT /tmp/tmp9TwX54 TO /home/ian/.ansible/tmp/ansible-tmp-1466558533.64-181689590644032/stat
<localhost> EXEC /bin/sh -c 'LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/ian/.ansible/tmp/ansible-tmp-1466558533.64-181689590644032/stat; rm -rf "/home/ian/.ansible/tmp/ansible-tmp-1466558533.64-181689590644032/" > /dev/null 2>&1 && sleep 0'                                                                                                            
<localhost> PUT configs/configs.tgz TO /home/ian/.ansible/tmp/ansible-tmp-1466558533.54-272347310038797/source
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1466558533.94-189956548033565 `" && echo ansible-tmp-1466558533.94-189956548033565="` echo $HOME/.ansible/tmp/ansible-tmp-1466558533.94-189956548033565 `" ) && sleep 0'                                                                                                  
<localhost> PUT /tmp/tmp2xgO6E TO /home/ian/.ansible/tmp/ansible-tmp-1466558533.94-189956548033565/unarchive
<localhost> EXEC /bin/sh -c 'LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/ian/.ansible/tmp/ansible-tmp-1466558533.94-189956548033565/unarchive; rm -rf "/home/ian/.ansible/tmp/ansible-tmp-1466558533.94-189956548033565/" > /dev/null 2>&1 && sleep 0'                                                                                                       
<localhost> EXEC /bin/sh -c 'rm -f -r /home/ian/.ansible/tmp/ansible-tmp-1466558533.54-272347310038797/ > /dev/null 2>&1 && sleep 0'                                                                                                          
localhost | FAILED! => {
    "changed": false,                                                                                                  
    "failed": true,                                                                                                    
    "invocation": {                                                                                                    
        "module_args": {
            "backup": null, 
            "content": null, 
            "copy": true, 
            "creates": null, 
            "delimiter": null, 
            "dest": "/tmp/a/", 
            "directory_mode": null, 
            "exclude": [
                ".mutt"
            ], 
            "extra_opts": [], 
            "follow": false, 
            "force": null, 
            "group": null, 
            "keep_newer": false, 
            "list_files": false, 
            "mode": null, 
            "original_basename": "configs.tgz", 
            "owner": null, 
            "regexp": null, 
            "remote_src": null, 
            "selevel": null, 
            "serole": null, 
            "setype": null, 
            "seuser": null, 
            "src": "/home/ian/.ansible/tmp/ansible-tmp-1466558533.54-272347310038797/source"
        }
    }, 
    "msg": "path /tmp/a/.mutt/profile.active does not exist", 
    "path": "/tmp/a/.mutt/profile.active", 
    "state": "absent"
}

我尝试过各种“排除”选项的迭代,包括

代码语言:javascript
复制
exclude='[ ".mutt" ]'
exclude='[ ".mutt", ".mutt/*" ]'

这些看起来是有效的,但我总是以提取.mutt目录的整个内容而告终。

我哪里出问题了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-26 02:50:54

根据注释,有一个错误记录了这个问题。

解决方法是使用YAML列表进行排除,并确保列表与存档中存储的路径/文件完全匹配。

代码语言:javascript
复制
vars:
  exclusions:
    - ./.mutt

代码语言:javascript
复制
unarchive: src=configs/configs.tgz dest=/tmp/a exclude={{ exclusions }}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37957188

复制
相关文章

相似问题

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