2017-08-14 9 views
0

私は共有フォルダに格納されているODBCドライバをインストールするために、安全に使用しようとしています。しかし、先頭のスラッシュ「\\」のように解析の問題があり、Anipalがファイルを見つけられないようです。私はそのようなタスクを実行するための回避策があるのだろうかと思っています。ターゲットウィンドウボックスでコピーコマンドを実行するのに問題はなく、権限の問題はないはずです。UNCパスを使用してWindowsボックス間でファイルをコピーすることができます

脚本:

--- 
# This play-book is part of VM Checkout 
# This job will install SQL ODBC Driver 
# This job depends on access to \\company\software\Utilities 
- name: Install SQL ODBC Driver From Microsoft 
    hosts: '{{ remote_host }}' 
    tasks: 
    - name: Fetch ODBC Driver From Share 
    win_shell: Copy-Item "\\Company\\us410_software\\Utilities\\msodbcsql_x64.msi" D:\Software 

    - name: Install ODBC Driver 
    win_msi: 
     path: D:\Software\msodbcsql_x64.msi 
     wait: yes 

私は取得していますエラー:

"changed": true, 
    "cmd": "Copy-Item \"\\\\Company\\\\us410_software\\\\Utilities\\\\msodbcsql_x64.msi\" D:\\Software", 
    "delta": "0:00:01.368157", 
    "end": "2017-08-14 08:25:41.869527", 
    "failed": true, 
    "rc": 1, 
    "start": "2017-08-14 08:25:40.501370", 
    "stderr": "Copy-Item : Access is denied\r\nAt line:1 char:65\r\n+ [Console]::InputEncoding = New-Object Text.UTF8Encoding $false; Copy-Item \r\n\"\\\\820 ...\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n~~~\r\n + CategoryInfo   : PermissionDenied: (\\\\Company\\...odbcsql_x005F_x64 \r\n .msi:String) [Copy-Item], UnauthorizedAccessException\r\n + FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.Powe \r\n rShell.Commands.CopyItemCommand\r\n \r\nCopy-Item : Cannot find path \r\n'\\\\Company\\\\us410_software\\\\Utilities\\\\msodbcsql_x005F_x64.msi' because it does \r\nnot exist.\r\nAt line:1 char:65\r\n+ [Console]::InputEncoding = New-Object Text.UTF8Encoding $false; Copy-Item 

答えて

0

私はあなたがだけ

win_shell: Copy-Item 
"\\\\\\\\Company\\\\us410_software\\\\Utilities\\\\msodbcsql_x64.msi" 
D:\Software 

に入力を修正する必要があるかもしれないと思いますスラッシュは特殊な文字ですyamlと二重スラッシュの引用符で囲まれたactorは1つに変換されるので、yamlの典型的なUNCパスの開始を示すために4つが必要です。

これで解決できない場合は、Kerberos認証を使用してWindowsマシンにアクセスし、ダブルホップの問題が発生している可能性があります。私はこれを見つけ、CredSSPに切り替えるまで何度もこの同じ問題を自分自身で苦労しました。それが私の問題を解決し、組み込みのすべてのAnsibleモジュールは素晴らしい結果を出しました。 win_copyやwin_fileなどのモジュールでUNCパスを使用しても問題はありません。

上記のリンクの指示に従って、CredSSP用のWindowsマシンを準備してから、Anotherのドキュメントhttp://docs.ansible.com/ansible/latest/intro_windows.html#credsspを使用してサーバーで有効にします。

0

になると試してみました。

- name: Fetch ODBC Driver From Share 
    win_shell: Copy-Item "\\Company\\us410_software\\Utilities\\msodbcsql_x64.msi" D:\Software 
    become: yes 
    become_method: runas 
    become_user: domain\user_id 
    vars: 
     ansible_become_password: "ChangePassword" 
関連する問題