LINUX.ORG.RU
решено ФорумAdmin

ansible перенести файл на другой сервер

 , ,


0

1

Всем привет! Как-то тяжело далось мне реализовать простую по сути задачу. На сервере генерится ключ, этот ключ надо кинуть на другой сервер и результат в виде другого файлика забрать обратно. Это хочется сделать в пределах одного плейбука. Ткните носом, как это сделать легко и правильно. Гуглятся какие-то велосипедные способы, типа этого https://derpops.bike/2014/12/25/ansible-copying-content-from-one-remote-syste...

Неужели нет более простого решения и в тоже время, не юзать простой баш через command?

Bash вообще использовать через модуль shell. Можно что-то такое прикрутить - не тестировал, но должно получиться:


- hosts: somegroup
  - copy: src=/tmp/key dest=/root/key
    delegate_to: somehost

В итоге с хоста somehost ключ раскидается по хостам somegroup.

Но лучше сделать с промежуточным копированием на мастер-хост через fetch как мне кажется.

alozovskoy ★★★★★ ()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Bash вообще использовать через модуль shell

Я имел ввиду

local_action: command scp remote1:/tmp/somefile remote2:/tmp/somefile
Или это не оно?

В итоге с хоста somehost ключ раскидается по хостам somegroup.

Спасибо за пример, буду думать в эту сторону. У меня задача из каждого хоста somegroup отправить файлик на somehost и потом с хоста somehost забрать новый файлик для каждого хоста из somegroup

autonomous ★★★★★ ()
Ответ на: комментарий от alozovskoy

в итоге сделал так, вроде красиво получилось

- hosts: remote1
    - name: "get key"
      slurp: src="/tmp/1.key"
      register: "key"

    - name: "put key"
      copy:  content="{{ key.content | b64decode }}" dest="/tmp/1.key"
      delegate_to: "{{ remote2 }}"

Это у меня base64 файлик, а обычный можно было бы через fetch сделать, вместо slurp.

autonomous ★★★★★ ()
Последнее исправление: autonomous (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.