ansible копирование на другой хост - PullRequest
2 голосов
/ 13 января 2020

Я пишу простую пьесу для копирования некоторых файлов конфигурации на определенную машину. Мне нужно скопировать этот файл на другой хост тоже для резервного копирования. Можно ли объявить разные хосты в одной и той же пьесе? Мне это нужно, потому что мой «резервный хост» может отличаться, и я получаю его по имени хоста, который я использую. Я пробовал копировать и raw-модуль, и, похоже, ничего не работает

. Вот пример редактирования playbook

  - name: find file
     find:
       file_type: directory
       paths: /prd/viv/dat/repository/
       patterns: "{{inventory_hostname}}"
       recurse: yes
     register: find
     delegate_to: localhost


   - name: Copy MASTER
     raw:  echo  xmonit$(echo {{find.files[0].path}} | cut -d "/" -f7 )
     delegate_to: localhost
     register: xmonit


   - debug:
       msg: "{{xmonit.stdout}}"


   - name: Copy MASTER raw
     raw:  sshpass -p "mypass" scp {{find.files[0].path}}/master.cfg  myuser@{{xmonit.stdout}}:/prd
     delegate_to: localhost


     #- name: Copy MASTER
       #copy:
         #src: "{{find.files[0].path}}/master.cfg"
         #dest: /prd/cnf/dat/{{inventory_hostname}}/

: если я использую модуль копирования, назначение остается тем, что находится на главном хосте, в то время как цель - скопировать на третий хост. Мне нужно объявить другой хост для этой единственной задачи

- name: Copy MASTER
  copy:
    src: "{{find.files[0].path}}/master.cfg"
    dest: /prd/cnf/dat/{{inventory_hostname}}/

1 Ответ

1 голос
/ 13 января 2020

Как Zeitounator сказал мне в модуле копирования комментариев, это лучший способ действовать. вот так у меня работает

    - name: Copy MASTER
      copy:
        src: "{{find.files[0].path}}/master.cfg"
        dest: /prd/cnf/dat/{{inventory_hostname}}/
      delegate_to: xmonit.stdout_lines[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...