2017-09-04 2 views
0

私はAnsibleに新しいです、私はいくつかのファイルを見つけて、すべてのファイルのいくつかのパターンを置き換える必要があります。私はfindとreplaceモジュールを以下のように使用しています。置換可能なコマンドが機能していませんfind module

- 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 
} 

MSGを次のように私は次のエラーを取得しています:

パス{ 'のuid':575479814、 'woth':Trueの場合、 'ファイルのmtime':1504541305.603901 ' 'isdr':True、 'gid':575144449、 'ischr':False、 'wusr':8433422、 'isgid':False、 'サイズ':256、 'wgrp':真、 'isuid' True、 'xoth':True、 'islnk':False、 'nlink':1、 'issock':False、 'rgrp':真、 'path': '/home/username1/temp/1.sql'、 'xusr':真、 'atime':1504541 'dev:64772、' roth ':True、' isfifo ':False、' mode ':' 0777 '、' isdir ':False、' ctime ':1504541305.6059012、' isblk ':False、' xgrp ':True、' dev ' '、' rusr ':True}は存在しません!

ここに問題があることを教えてください。

答えて

1

置き換えます

path: "{{ item }}" 

を付:

path: "{{ item.path }}" 

あなたは、文字列値を必要とし、引数に辞書オブジェクトを渡すためにしようとしています。

関連する問題