Como posso armazenar um valor de variável em um arquivo em novas linhas em ansible?

0

Gostaria de armazenar o valor da variável em um arquivo no formato de novas linhas.

- set_fact:
    linked_dirs:   "{{ linked_dirs.stdout_lines | select('search',nfs_server) | list }}"

- debug:  var=linked_dirs

- shell:  echo -e "{{ linked_dirs }}\n" >> /tmp/test
  delegate_to:  localhost

cat / tmp / test

[u'/net/rchserver01/data/share2 linked with /var/tmp/test2', u'/net/rchserver01/data/share2 linked with /var/tmp/share2', u'/net/rchserver01/data/share1 linked with /var/share1']

Resultado exigido: cat / tmp / test

/net/rchserver01/data/share2 linked with /var/tmp/test2
/net/rchserver01/data/share2 linked with /var/tmp/share2
/net/rchserver01/data/share1 linked with /var/share1
    
por Pandu 21.09.2018 / 18:52

2 respostas

0

Você está obtendo uma lista de estilos python com esse eco. Caso você precise apenas dos valores, faça uma iteração dos elementos usando with_items e echo .

    
por 21.09.2018 / 18:57
0

Primeiro, se você tiver uma lista, precisará join() dos itens juntos.

Em segundo lugar, para escrever um arquivo, use o módulo de cópia .

Substitua a última tarefa por algo assim:

- name: Write linked_dirs file
  copy:
    content: '{{ linked_dirs("\n") }}'
    dest: /tmp/test
  delegate_to: localhost
    
por 31.10.2018 / 16:06

Tags