Ansible로 영어 버전의 WindowsOS를 일본어화하여 SQLServer 설치
소개
Ansible을 사용해, 영어판 WindowsServer2016의 ComputeEngineImage를 일본어화해, SQLServerExpress를 인스톨 하는데 성대하게 빠졌다. . .
그리고 구구도 같은 일로 빠져 있는 기사를 찾을 수 없어, 어딘가의 누군가의 도움이 된다고 생각했다.
Ansible에서 대상 VM에 접속하는 곳까지는 어디에나 실려 있고 할애.
Ansible 환경
설치 대상 VM
WindowsServer 일본어
windows firewall 끄기
이것은 공식 문서
- name: Enable firewall for Domain, Public and Private profiles
win_firewall:
state: disabled
profiles:
- Private
- Public
tags: disable_firewall
언어 팩 설치
언어 팩이 들어 있지 않으면 설치하고 다시 시작.
※언어 팩은 CloudStorage에 업로드됨
- name: create temp directory
win_file:
path: C:\temp
state: directory
- name: download language pack
win_shell: gsutil cp "{{ language_pack }}" c:\temp\
- name: install language pack
win_shell: |
$LangPacks = DISM.exe /Online /Get-Intl /English |
Select-String -SimpleMatch 'Installed language(s)'|
ForEach-Object {
if($_ -match ':\s*(.*)'){$Matches[1]}
}
if($LangPacks -notcontains 'ja-JP'){
Dism /online /Add-Package /PackagePath:c:\temp\lp.cab
}
- name: reboot
win_reboot:
시간대 및 로케일 설정
시간대, 로케일 및 UI를 일본으로 설정
- name: Set timezone to 'Japan'
win_timezone:
timezone: Tokyo Standard Time
- name: Region設定
win_region:
copy_settings: "true"
location: "122"
format: ja-JP
unicode_language: ja-JP
register: result
- name: 日本語UIの明示
win_shell: Set-WinUILanguageOverride -Language ja-JP
- name: 日付・時刻の[形式]を表示言語と同一にする
win_shell: Set-WinCultureFromLanguageListOptOut -OptOut $False
- name: setLanguagelist
win_shell: Set-WinUserLanguageList -LanguageList ja-JP,en-US -Force
- name: キーボード設定を日本語化
win_shell: Set-ItemProperty 'registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters' -Name 'LayerDriver JPN' -Value 'kbd106.dll'
- name: 既定の入力方式を上書き
win_shell: Set-WinDefaultInputMethodOverride -InputTip "0411:00000411"
- name: Change Region - Reboot
win_reboot:
when: result.restart_required
.Net framework 설치
- name: Install NET-Framework-Core from file
win_feature:
name: NET-Framework-Core
state: present
환영 화면 및 새 사용자 계정 설정
이것을 설정하지 않았기 때문에 매우 빠졌습니다.
GUI로 이것을 설정한다(PowerShell등으로 하는 방법이 발견되지 않았다...)
SQLServer 설치
- name: create installer directory
win_file:
path: C:\temp\sqlserver_installer
state: directory
- name: download SQLServer installer
win_shell: gsutil cp -r "{{ sqlserver_installer }}" C:\temp\sqlserver_installer\
- name: download PsExec
win_shell: gsutil cp -r "{{ PsExec_installer }}" c:\temp\
- name: SQLServerインストール
win_psexec:
#コマンドは適宜要変更
command: C:\temp\sqlserver_installer\setup.exe /Q /CONFIGURATIONFILE=C:\temp\sqlserver2008R2\ConfigurationFile.ini" /IAcceptSQLServerLicenseTerms="True"
priority: high
executable: C:\temp\PSTools\PsExec64.exe
username: "{{ ansible_user }}"
password: "{{ ansible_password }}"
system: yes
덤: 오류가 발생했을 때의 로그
이런 식으로 영어로 인식되고 있었다.
OS region: United States
OS language: English (United States)
Exception summary:
The following is an exception stack listing the exceptions in outermost to innermost order
Inner exceptions are being indented
Exception type: Microsoft.SqlServer.Configuration.RulesEngineExtension.RulesEngineRuleFailureException
Message:
The language of the original SQL Server 2008 R2 media and the language of the service pack do not match. To continue, match the language of the service pack with the original SQL Server 2008 R2 media.
Data:
SQL.Setup.FailureCategory = RuleViolationFailure
DisableWatson = true
Stack:
at Microsoft.SqlServer.Configuration.RulesEngineExtension.RunRulesAction.ExecuteAction(String actionId)
at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
Reference
이 문제에 관하여(Ansible로 영어 버전의 WindowsOS를 일본어화하여 SQLServer 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HirokiSakonju/items/9c4d91ff45c94992309e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)