2017-09-04 84 views
0

我是Ansible的新手,我必须找到一些文件,然后在所有文件中替换一些模式。所以我正在使用查找和替换模块,如下所示。Ansible替换命令不起作用查找模块

- name: My Great Playbook 
    hosts: all 
    gather_facts: False 
    accelerate: False 
    strategy: free 
    vars: 
    dbname: "@[email protected]" 
    repldbname: "connect to mydb" 

    tasks: 
    - block: 
     - name: finding fl 
     find: 
      paths: "/home/username1/temp" 
      patterns: "*.sql" 
      file_type: "file" 
     register: repos 

     - name: some thing 
     debug: msg="{{ item }}" 
     with_items: "{{ repos.files }}" 

     - name: replacing string 
     replace: 
      path: "{{ item }}" 
      #path: "/home/username1/temp/1.sql" 
      regexp: ({{ dbname }}) 
      replace: '{{ repldbname }}' 
      backup: no 
      unsafe_writes: yes 
     with_items: "{{ repos.files }}" 

我收到以下错误如下

failed: [localhost] (item={u'uid': 575479814, u'woth': True, u'mtime': 1504541305.603901, u'inode': 8433422, u'isgid': False, u'size': 256, u'roth': True, u'isuid': False, u'isreg': True, u'gid': 575144449, u'ischr': False, u'wusr': True, u'xoth': True, u'rusr': True, u'nlink': 1, u'issock': False, u'rgrp': True, u'path': u'/home/username1/temp/1.sql', u'xusr': True, u'atime': 1504541305.604901, u'isdir': False, u'ctime': 1504541305.6059012, u'wgrp': True, u'xgrp': True, u'dev': 64772, u'isblk': False, u'isfifo': False, u'mode': u'0777', u'islnk': False}) => { 
    "failed": true, 
    "item": { 
     "atime": 1504541305.604901, 
     "ctime": 1504541305.6059012, 
     "dev": 64772, 
     "gid": 575144449, 
     "inode": 8433422, 
     "isblk": false, 
     "ischr": false, 
     "isdir": false, 
     "isfifo": false, 
     "isgid": false, 
     "islnk": false, 
     "isreg": true, 
     "issock": false, 
     "isuid": false, 
     "mode": "0777", 
     "mtime": 1504541305.603901, 
     "nlink": 1, 
     "path": "/home/username1/temp/1.sql", 
     "rgrp": true, 
     "roth": true, 
     "rusr": true, 
     "size": 256, 
     "uid": 575479814, 
     "wgrp": true, 
     "woth": true, 
     "wusr": true, 
     "xgrp": true, 
     "xoth": true, 
     "xusr": true 
    }, 
    "rc": 257 
} 

味精:

路径{ 'UID':575479814, 'woth':是的, '修改时间':1504541305.603901“ inode':8433422,'isgid':False,'size':256,'wgrp':True,'isuid':False,'isreg':True,'gid':575144449,'ischr':False,'wusr' :True,'xoth':True,'islnk':False,'nlink':1,'issock':False,'rgrp':True,'path':'/home/username1/temp/1.sql', 'xusr':对,'atime':1504541 305.604901,'isdir':False,'ctime':1504541305.6059012,'isblk':False,'xgrp':True,'dev':64772,'roth':True,'isfifo':False,'mode':'0777 ','rusr':True}不存在!

请让我知道这里有什么问题?

回答

1

替换:

path: "{{ item }}" 

有了:

path: "{{ item.path }}" 

您正在尝试字典对象传递给需要一个字符串值的参数。