2016-11-27 1 views
0

Только что начал использовать Ansible и Linux (CentOs & RedHat). У меня есть 7 zip-файлов на общем ресурсе NFS, которые я хочу скопировать на мои управляемые серверы.Скопируйте zip-файлы из общего ресурса NFS на несколько серверов

Я использую:

- name: copy install files 
    copy: 
    src: /public/ 
    dest: "/tmp/INSTALL_{{ ansible_fqdn }}/{{ item }}" 
    with_items: 
    - p1.zip 
    - p2.zip 
    - p3.zip 

У меня есть доля NFS на //192.168.0.13/public с открытым доступом для всех. Firewalld остановлен & отключен.

Когда я бегу выше я получаю сообщение «ERROR! Работник был найден в мертвом состоянии»

мне нужно сначала установить долю NFS в сборник пьес для управляемых серверов делать? Должен ли я помещать src: "//192.168.0.13/public"? Я пробовал также с синхронизирующим модулем, но работал в тех же вопросах

ответ

0

Я не думаю, что копия поддерживает материал nfs.

попробуйте установить nfs с помощью mount, а затем скопируйте файл.

0

Получил его, используя сначала монтирование доли NFS в учебнике. Задачи копирования выполняются нормально в соответствии с выходом, но файлы не копируются.?!

Это копия задача

- name: copy install files 
    copy: 
    src: "/mnt" 
    dest: "/tmp/INSTALL_{{ ansible_fqdn }}/{{ item }}" 
    group: install 
    owner: setup 
    mode: 0777 
    with_items: 
    - p1.zip 
    - p2.zip 
    - p3.zip 

Папка/TMP/INSTALL _ {{}} ansible_fqdn создается, но никакие файлы не копируются. С -vvv я получаю:

СОЗДАТЬ SSH СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ: Нет

SSH: EXEC SSH -С -о ControlMaster = автоматический -o ControlPersist = 60s -o KbdInteractiveAuthentication = нет -o PreferredAuthentications = GSSAPI-с -mic, gssapi-keyex, hostbased, publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath =/home/setup/.ansible/cp/ansible-ssh-% h-% p-% r '/ bin/ш -c '"' "'(Umask 77 & & MkDir -p "echo $HOME/.ansible/tmp/ansible-tmp-1480262122.31-14572056940306" & & эхо анзибль-TMP-1480262122.31-14572056940306 =" echo $HOME/.ansible/tmp/ansible-tmp-1480262122.31-14572056940306 ") & & сна 0' "'" ''

Edit:

Я попробовал его теперь с модулем

- name: Transfer file 
    synchronize: 
    src: "/IP address/oracle" 
    dest: "/tmp/INSTALL_{{ ansible_fqdn }}/" 

Синхронизировать Но тогда я получил следующее Сообщ:

"сообщение": «Sudo: извините, вы должны иметь телетайп для запуска sudo \ nrsync: соединение неожиданно закрыто (0 байт получено до сих пор) [sender] \ nrsync error: ошибка в потоке данных протокола rsync (код 12)

Я прокомментировал в sudoers «# Defaults requiretty "на обоих серверах

0

После прочтения некоторых примеров использование модуля синхронизации - это лучшие практики, которые я предполагаю. Я также испортил синтаксис. Цель использования синхронизации не связана с именем хоста в src и dest. Вот почему этот модуль был создан. Поэтому для копирования файлов между двумя удаленными серверами мы используем делегат_to.

become: true 
vars: 
    src: SRV1 

- name: Transfer file 
    synchronize: 
    src: "/setup/" 
    dest: "/tmp/INSTALL_{{ ansible_fqdn }}/" 
    rsync_path: "sudo rsync" 
    delegate_to: "{{ src }}" 
    become: no 

Когда я выполняю вышеизложенное, три первые задачи в игровой книге исполняются штрафом. Задачи для синхронизации не с ошибкой ниже:

UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n", "unreachable": true}

+0

Вы уверены, что это ответ на ваш вопрос? – techraf

+0

Привет, Techraf, мне все еще не удалось синхронизировать работу. – RedAnsible