2016-11-27 9 views
0

ちょうどAnsibleとLinux(CentOS & RedHat)を使い始めました。私は管理対象サーバにコピーしたいNFS共有上に7つのzipファイルを持っています。NFS共有から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が停止しました&が無効です。私は私が手の上に実行すると

を「ERRORを!労働者が死んだ状態で発見された」私は、最初の管理対象サーバー向けハンドブックでNFS共有をマウントする必要がありますか? src: "//192.168.0.13/public"を入力する必要がありますか? 私も同期モジュールで試しましたが、同じ質問で実行しました

答えて

0

私はまだコピーがnfsをサポートしていないと思っています。

mountでnfsをマウントしてから、ファイルをコピーしてみてください。

0

まず、プレイブックのNFS共有のマウントを介して動作しています。コピータスクは出力に従ってokを実行しますが、ファイルはコピーされません。

これはコピータスク

- 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}}が作成されますが、何のファイルがコピーされていないです。

は、ユーザーのSSH接続を確立:なし

SSH:SSH EXEC -C -oのControlMaster =自動-o ControlPersist = 60年代-o KbdInteractiveAuthentication =なし-o PreferredAuthentications = GSSAPI-とを私が手-vvvで パスワードを変更するには、次のように入力します。-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 '"' "'(のumask 77 & & MKDIR -p "echo $HOME/.ansible/tmp/ansible-tmp-1480262122.31-14572056940306" & &エコーansible-TMP-1480262122.31から14572056940306 =" echo $HOME/.ansible/tmp/ansible-tmp-1480262122.31-14572056940306 ")& &睡眠0' "'" ''

編集:

私は同期モジュール

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

で、今それを試してみました。しかし、その後、私は、次のMSG得た:

"MSG":「sudoを:申し訳ありませんが、あなたが端末を持っている必要がありますsudoを実行する\ nrsync:接続が予期せず閉じられました(0バイトがこれまでに受信されました)[sender] \ nrsyncエラー:rsyncプロトコルのデータストリーム(コード12)のエラー

sudoersでコメントアウトしました "#Defaults requiretty "両方のサーバーで

0

いくつかの例を読んだ後で、同期モジュールを使用することは、私が推測するベストプラクティスです。私も構文を混乱させた。同期を使用する目的は、srcとdestのホスト名を扱うことではありません。だから、このモジュールが作られたのです。したがって、2つのリモートサーバー間でファイルをコピーするには、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! => {"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

関連する問題