2017-07-03 5 views
1

を、ファイルをコピーします。Ansible YMLは、次のようにだから私はansible脚本を持っているネットワーク上の場所から

#WINDOWS# 
--- 
- hosts: windows tasks: 

    - name: copy file 
    raw: '"net use M: "\\somemachinename\someLocation" /user:username password"' 
    raw: '"xcopy M:\isntaller.exe C:\installerlocation /Y"' 
    raw: '"net use M: /delete /y"' 

ファイルが存在しないネットワーク上の場所とユーザー名・パスワードで有効です。タスクはエラーを報告しません。しかし、ファイルは決してコピーされません。

プレイブックの構文が間違っていると誰かが知っていますか?または、安全なセットアップでネットワーク上のファイルを取得するための良い方法がありますか?

P.S.私は危険なサーバーにアクセスできない。私はそれがRed Hat Linuxサーバーであることは分かっていますが。

+1

明白な構文エラーに加えて、これは関連するかもしれないhttps://stackoverflow.com/q/29222905/2947502 – techraf

答えて

1

第3のrawは、同じタスクにあるため、第1と第2のものを上書きしています。 YAML syntax overviewを参照してください。 3つの別々のタスクに

スプリットこの:

#WINDOWS# 
--- 
- hosts: windows 
    tasks: 

    - name: mount M 
    raw: '"net use M: "\\somemachinename\someLocation" /user:username password"' 

    - name: copy file 
    raw: '"xcopy M:\isntaller.exe C:\installerlocation /Y"' 

    - name: unmount M 
    raw: '"net use M: /delete /y"' 

はまた、私は引用符と二重引用符についてはよく分かりません。あなたはそれを多すぎるかもしれません。

0

多くの組み合わせを試してみましたが、これが最終的に私に役立ちました。ハッキーに見えますが、同じ状況に直面する可能性のある他の人にとってはおそらく役に立ちます。

私は、誰かがそれを入手してマシン上で実行できるhttpの場所にバッチファイルを追加しました。

REM @echo off 

set Source=%1% 
set Destination=%2% 

net use M: \\nwb-somemachinename /user:username password 
xcopy /F M:\%Source% %Destination% /Y 
net use M: /delete /y 

、次のようにYMLファイルが見えます:

#WINDOWS# 
--- 
- hosts: windows 
    tasks: 

    - name: get batch file 
    raw: httptool.exe http://somelocation/ourbatchfile.bat 

    - name: run batch file 
    raw: c:\location\ourbatchfile.bat location_remote_machine\installer.exe c:\location 
関連する問題