AnsibleでSQLServer(日本語版)をWindowsServerにインストールしようとした際にハマったのでメモを残します。
具体的にはAnsubleからサイレントインストールした際に以下のようなエラーが表示されました。
This SQL Server setup media does not support the language
of the OS, or does not have the SQL Server English-language version
installation files. Use the matching language-specific SQL Server
media; or install both the language specific MUI and change the format
and system locales through the regional settings in the control
panel.
内容だけ見るとインストーラーとOSの言語設定があっていないがために発生するように見えますが、実際は間違っておらずAnsibleを経由せず直接WindowsServer上でPowershellを流すとインストールができます。
以下のような記事も試してみましたがどうもうまくいきませんでした。
解決策
最終的にはワールドワイド言語サポートでUnicode UTF-8を使用
をPowershell経由でサイレントインストールする際だけ有効化し、インストール後に元に戻す形でインストールを実現しました。
- name: Enabled WorldWideLanguageSapport utf-8
win_shell:
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\Nls\CodePage"
Set-ItemProperty -Path $path -Name "ACP" -Value "65001"
Set-ItemProperty -Path $path -Name "OEMCP" -Value "65001"
Set-ItemProperty -Path $path -Name "MACCP" -Value "65001"
- name: Disabled WorldWideLanguageSapport utf-8
win_shell:
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\Nls\CodePage"
Set-ItemProperty -Path $path -Name "ACP" -Value "932"
Set-ItemProperty -Path $path -Name "OEMCP" -Value "932"
Set-ItemProperty -Path $path -Name "MACCP" -Value "10001"
画面から設定する際はコントロールパネル>時計と地域>地域>管理>システムロケールの変更>ベータ:ワールドワイド言語サポートでUnicode UTF-8を使用
から設定できます。