2017-05-05 19 views
1

いくつかのWindowsビルドエージェントの設定を自動化しています。私はパッケージをインストールしたいが、マシンをリブートするまで(コマンドラインで「管理者として実行する」と言うと奇妙なことに、コマンドラインで利用できる)いくつかのコマンド(githg)はコマンドラインでは利用できない。特定のパッケージがインストールされている場合にのみ再起動したいと思います。win_chocolateyのインストール後に再起動する方法

私は条件付きで(Windowsの更新プログラムを適用した後、再起動の例を)win_rebootモジュールを実行できることを見た:

# Apply updates and reboot if necessary 
- win_updates: 
    register: update_result 
- win_reboot: 
    when: update_result.reboot_required 

しかし、私は特定のパッケージがインストールされている場合にのみ、それをやりたいです。しかし、私はwin_chocolateyは任意の値を返して表示されませんでした(そしてそれが再起動する必要が知らないかもしれない)

- win_chocolatey: git 
    register: git_result 
- win_reboot: 
    when: git_result.reboot_required 

:理想的には、このようなものになるだろう。 gitの場合は、admin cmdからは動作しますが、標準のcmdでは動作しません。再起動後、標準のcmdから動作します。

提案がありますか?私はAnsibleに比較的新しいので、どんな提案も感謝します。

答えて

0

残念ながら、win_chocolateyにはチェックする戻り値がありません。

win_commandモジュールを使用して、git.exeが必要な場所にあるかどうかを確認できます。このよう

テストパスは、パスがGitがインストールされた後

-name: Check git install 
win_command: Test-Path C:\git\location\git.exe 
register: git_loc 

-name: reboot if git installed 
win_reboot: 
when: git_loc.stdout == "True" 

は明らかにその中にこのに問題がある存在する場合は、「真」を返しますが、実行するたびに再起動するマシンそれに対するプレイブック。最初の実行を示す他のガーディアン変数を追加することができます。

-name: reboot if git installed 
    win_reboot: 
    when: 
    - git_loc.stdout == "True" 
    - inital_run == "yes" 
関連する問題