将zip文件从NFS共享复制到多个服务器

时间:2016-11-27 09:59:09

标签: ansible

刚开始使用Ansible和Linux(CentOs& RedHat)。我在NFS共享上有7个zip文件,我想将其复制到我的托管服务器。

我用:

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

我在//192.168.0.13/public上有一个NFS共享,每个人都有公共访问权限。 Firewalld已停止&禁用。

当我运行以上内容时,我得到了错误!一名工人被发现处于死亡状态"

我是否需要首先在受管服务器的playbook中挂载NFS共享? 我应该把src:" // 192.168.0.13/public" ;? 我也尝试使用同步模块但运行相同的问题

3 个答案:

答案 0 :(得分:0)

我不认为copy还支持nfs的东西。

尝试使用mount安装nfs,然后复制文件。

答案 1 :(得分: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 -C -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentications = gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication = no -o ConnectTimeout = 10 -o ControlPath = / home / setup / .ansible / cp / ansible-ssh-%h-%p-%r' / bin / sh -c'"'& #34;'(umask 77&& mkdir -p" echo $HOME/.ansible/tmp/ansible-tmp-1480262122.31-14572056940306"&& echo ansible-tmp-1480262122.31-14572056940306 =" {{1 ")&&睡0'''''

编辑:

我现在尝试使用同步模块

echo $HOME/.ansible/tmp/ansible-tmp-1480262122.31-14572056940306

但后来我得到了以下信息:

" msg":" sudo:抱歉,你必须有一个tty来运行sudo \ nrsync:连接意外关闭(到目前为止收到0个字节)[sender] \ nrsync错误:错误rsync协议数据流(代码12)

我在sudoers"#Defaults requiretty"在两台服务器上

答案 2 :(得分:0)

阅读完一些示例后,使用同步模块是我认为的最佳实践。我也搞砸了语法。使用synchronize的目的不是处理src和dest中的主机名。这就是制作这个模块的原因。因此,要在两个远程服务器之间复制文件,我们使用delegate_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

当我执行上述操作时,剧本中的3个第一个任务执行正常。同步任务失败,错误如下:

  

UNREACHABLE! => {“已更改”:false,“msg”:“无法通过ssh连接到主机:权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic,密码)。\ r \ n”,“无法访问”:true }