AnsibleでSteamを削除する(WindowsのAnsible操作)
なにするの
とある事情で職場で購入したゲーミングPC(そこそこ性能あるGPUがほしかったからでゲームのためではない)に、Steamなんてゴミが入ってました。
これをなんとかAnsibleで取り除きたいのですがちょっと苦労したのでWorkAround的なものをば。
前提として、すでに導通している(win_pingが返ってきてる)ことを上げておきます。この部分は調べるといろいろあるのでそちらを参考にしておいてください。
とりま
- name: dummy install
win_chocolatey:
name: steam
- name: uninstall
win_chocolatey:
name: steam
state: absent
どういうことよ
- name: dummy install
win_chocolatey:
name: steam
- name: uninstall
win_chocolatey:
name: steam
state: absent
標準でSteamが入っているので、win_packageにあるように、レジストリからProductIDを検索して、
- win_package:
product_id: XXXXXXX
state: absent
とするのが本筋だと思います。
32ビットアプリのため、HKLM:Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
にインストール済み項目があるので検索すると、プロダクトIDではなく"Steam"とありました。そのため、
- win_package:
product_id: Steam
state: absent
としたのですが、このPlaybookを通すと、アンインストールされてないのにchanged状態になってばかりでした。
だからといってuninstall.exe(Steamのインストールフォルダにある)を立ち上げようとすると、バッチ処理はできないみたいで困ったもんです。
ところがちょっと考えて確認したら、chocolateyで対応してることがわかったんです。
そこで、
- 一度chocolateyでインストールする
- 入れたやつをchocolateyでアンインストールする
ことで、既存のインストールを修正する形でchoco経由のインストールに切り替わり、その後のアンインストールでそれを消せばいいという処理になりました。
たぶんね、chocolateyで利用しているスクリプトを使って処理させればもっと確実なんでしょうけど、期日が近いので「消せれば勝ち」ということでこんなことにしちゃいました。
これが正しいかはなんとも言えません…
Author And Source
この問題について(AnsibleでSteamを削除する(WindowsのAnsible操作)), 我々は、より多くの情報をここで見つけました https://qiita.com/fugahogeds/items/6e911dedde7fe6e8780a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .