Localizar no Ansible e Salvar em um arquivo

0

Eu quero salvar o resultado de find no arquivo com uma reprodução Ansible.

- name: Find / -name "postgresql"
  find:
    paths: /var/log
    patterns: 'postgresql'

O resultado acima será salvo em um arquivo. Simplesmente, o comando é find / -name "postgresql" > text.txt no shell. Como faço esse comando no Ansible?

    
por Nicky Puff 23.08.2018 / 09:59

2 respostas

1

Uma maneira Ansible de fazer isso com o find module pode ser (estou usando /var/log/secure como exemplo, já que não executo postgres):

---
- hosts: all 

  tasks:
  - name: "Find file /var/log/secure"
    find:
      paths: /var/log
      patterns: secure
    register: result

  - name: "Save find results to file"
    copy:
      content: "{{ result.files }}"
      dest: "/tmp/find_result.txt"

Conteúdo de /tmp/find_result.txt :

# cat /tmp/find_result.txt 
[{"uid": 0, "woth": false, "mtime": 1535012977.8429773, "inode": 9013905, "isgid": false, "size": 6867, "wgrp": false, "isuid": false, "isreg": true, "gid": 0, "ischr": false, "wusr": true, "xoth": false, "islnk": false, "nlink": 1, "issock": false, "rgrp": false, "path": "/var/log/secure", "xusr": false, "atime": 1534925281.706685, "isdir": false, "ctime": 1535012977.8429773, "isblk": false, "xgrp": false, "dev": 64768, "roth": false, "isfifo": false, "mode": "0600", "rusr": true}]

Ao registrar o resultado e verificar o valor de retorno em files , você obtém acesso a uma tonelada de metadados que podem ser úteis.

Se você quiser menos resultados, use um dos outros valores de retorno conforme documentado aqui .

    
por 23.08.2018 / 10:32
0

Você deve usar o módulo de shell Ansible neste caso.

Veja um exemplo:

- name: Find / -name "postgresql"
  shell: find / -name "postgresql" > /tmp/text.txt
    
por 23.08.2018 / 10:07

Tags