안녕하세요.


오늘 포스팅은 나노 서버에 파이썬과 장고를 실행하는 방법입니다.


이번 포스팅에서는 나노 서버에서 파이썬과 장고를 실행하는 방법에 대해 다음과 같은 순서로 설명하고 있습니다.


1. 나노 서버 이미지 생성하기

2. 파이썬 다운로드 및 설치한 후 나노 서버에 복사하기

3. 나노 서버에서 파이썬 실행하기

4. 나노 서버에서 장고 설치 후 새 프로젝트 실행하기






1. 나노 서버 이미지 생성하기

먼저 파이썬과 장고를 실행할 나노 서버 이미지를 생성합니다. 나노 서버 이미지는 다음과 같은 방법으로 얻을 수 있습니다.


- Windows Server 2016 Technical Preview 5 링크를 통해 vhd 파일을 다운로드 받기

- Azure 갤러리를 통해 Azure에 나노 서버 이미지 생성

- Windows Server 2016 Technical Preview 5 ISO 이미지를 다운로드 받아 파워쉘을 통해 나노 서버 이미지를 생성


이번 포스팅에서는 앞서 포스팅한 내용과 같이 ISO 이미지로 나노 서버 가상 머신 이미지를 생성해서 파이썬과 장고를 실행하게 됩니다.

그럼 다음과 같이 나노 서버 이미지를 생성합니다.


[나노 서버 이미지 생성 파워쉘 예]

Import-Module .\NanoServerImageGenerator.psm1

New-NanoServerImage -DeploymentType Guest -Edition Standard -MediaPath H:\ -BasePath .\Base -TargetPath "G:\VM\Nano\NanoPython01.Vhdx" -ComputerName "NanoPython01" -InterfaceNameOrIndex Ethernet -Ipv4Address 10.0.0.72 -Ipv4SubnetMask 255.0.0.0 -Ipv4Gateway 10.10.10.254 -Ipv4Dns 10.10.10.21 -DomainName "DONKEY.LAB"  


-DeploymentType: 나노 서버 이미지의 타입으로 물리 서버인 경우 HOST 가상 머신인 경우 Guest

-Edition: Windows Server 2016 Edition으로 Datacenter 또는 Standard

-MediaPath: Windows Server 2016 Technical Preview 5 ISO를 마운트한 드라이브명

-TargetPath: 나노 서버 이미지가 생성될 폴더 및 파일명으로 확장자를 vhd로 지정한 경우 1세대 가상 머신, vhdx로 지정한 경우 2세대 가상 머신

-ComputerName: 나나 서버 이미지의 hostname

-InterfaceNameOrIndex: IP주소가 설정된 네트워크 어댑터

-Ipv4Address, -Ipv4SubnetMask, -Ipv4Gateway: IP주소, 서브넷 마스크, 게이트웨이 주소

-Ipv4Dns: DNS 주소

-DomainName: 도메인에 가입할 도메인 이름

(파이썬과 장고를 나노 서버에 실행하는 경우 도메인에 가입해야 하는 것이 필수사항은 아닙니다)


위와 같이 이미지 생성이 완료되었다면 나노 서버 이미지로 가상 머신을 생성한 후 실행합니다.






2. 파이썬 다운로드 및 설치한 후 나노 서버에 복사하기


이번에는 파이썬을 다운로드 받아 설치할 차례입니다. 나노 서버에서 파이썬을 실행하기 위해서는 먼저 파이썬을 다운로드 받아 나노 서버가 아닌 GUI 환경의 윈도우에 설치해야 합니다.


웹페이지를 통해 파이썬을 다운로드 받습니다.


[파이썬 다운로드]


다운로드 받은 파이썬을 압축해제 한 후 다음 순서로 설치합니다.


Python 3.5.1 (64-bit) Setup 창의 Install Python 3.5.1 (64-bit) 화면에서 Install Now 버튼을 클릭합니다. (설치 시 반드시 설치되는 경로를 기억합니다)


Python 3.5.1 (64-bit) Setup 창의 Setup Progress 화면에서 Python 설치가 진행됩니다.


설치가 성공적으로 완료되면 Close 버튼을 킄릭하여 파이썬 설치를 완료합니다.


파이썬 설치가 완료되면 파워쉘을 통해 설치한 파이썬을 나노 서버에 복사할 차례입니다.


나노 서버에 작업은 파우쉘을 통해 원격으로 접속하여 이루어지기 때문에 신뢰할 수 있는 호스트에 나노 서버를 등록합니다.

명령어: Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "IP주소" 또는 "Hostname" -Force;



설치한 파이썬을 파우쉘을 통해 나노 서버에 복사합니다.

[파우쉘 스크립트 예]

$Session = New-PSSession -ComputerName "IP주소" 또는 "hostname" -Credential "계정명"

$PythonPath = "파이썬을 설치한 폴더명" (예: "$env:C:\Users\Administrator\AppData\Local\Programs\Python")

Copy-Item -ToSession $Session -Path $PythonPath -Destination "파이썬이 복사될 드라이브 및 폴더명" -Force -Recurse


[파이썬이 설치된 폴더]


[나노 서버에 파이썬이 복사 완료된 후]


파이썬 복사가 완료되면 환경 변수에 파이썬 설치 폴더를 추가하고 재부팅 후에도 지속적으로 유지될 수 있도록 추가합니다.


[명령어]

$env:Path += ";C:\Python\Python35;C:\Python\Python35\Scripts\"

setx PATH $env:Path /M


나노 서버를 재부팅 후 다음 명령어를 실행해보면 설치된 파이썬 버전을 확인할 수 있습니다.


명령어: Python –V






3. 나노 서버에서 파이썬 실행하기


나노 서버에 파이썬이 정상적으로 설치되었다면 이번에는 나노 서버에서 파이썬이 실행되는지 확인할 차례입니다. 먼저, 파이썬을 설치한 클라이언트에서 다음과 같은 스크립트를 작성한 후 실행한 결과를 확인합니다.


[스크립트 예]

import random

print(random.randint(1,45))

(1부터 45까지 랜덤하게 숫자가 한개씩 출력되는 간단한 스크립트..)
[스크립트 작성 화면]

[스크립트 실행 결과]


이제 동일한 파이썬 스크립트를 나노 서버로 복사합니다.

[파우쉘 스크립트 예] Copy-Item -ToSession $Session -Path "원본 파일명" -Destination "복사될 경로" -Force -Recurse 


파이썬 스크립트를 실행하여 결과를 확인합니다.

[명령어 예] Python.exe "스크립트 파일명"


파이썬을 설치한 클라이언트와 나노 서버에서 파이썬을 실행한 결과가 동일하게 출력되는 것을 확인할 수 있습니다.






4. 나노 서버에서 장고 설치 후 새 프로젝트 실행하기


마지막은 나노 서버에 장고를 설치한 후 새 프로젝트를 실행하여 정상 동작 여부를 확인할 차례입니다. 장고 설치를 위하여 나노 서버에 Pip 업그레이드를 진행합니다.


명령어: python -m pip install --upgrade pip


업데이트가 완료된 후 나노 서버에 장고를 설치합니다.


명령어: python -m pip install django


장고 설치가 완료되면 새로운 프로젝트를 생성합니다. 새로운 프로젝트를 생성하면 새로운 폴더가 생성되게 됩니다. 이때 프로젝트 생성을 원하는 폴더에서 명령어를 실행해야 해당 폴더에 폴더가 생성되게 됩니다.


예를 들어 C:\Project라는 폴더에 NewProject 라는 이름으로 프로젝트 생성을 원하는 경우 Project라는 폴더를 생성한 후 Project 폴더로 이동하여 장고에서 새로운 프로젝트를 시작해야 합니다.


먼저 새로운 폴더를 생성합니다.


명령어: New-Item -Name "Project" -Path "C:\" -ItemType Directory

장고에서 신규 프로젝트 생성을 위해 생성한 폴더로 이동합니다.


명령어: Set-Location "C:\Project\"


장고에서 신규 프로젝트를 생성합니다.


명령어: django-admin.exe startproject "프로젝트명" (예: django-admin.exe startproject NewProject) 


프로젝트 생성이 완료되면 신규 프로젝트 명으로 폴더가 생성되고 파일이 복사된 것을 확인할 수 있으며, 디렉터리 구성은 다음과 같습니다.


[디렉터리 구성]

NewProject\

    manage.py

    NewProject/

        __init__.py

        settings.py

        urls.py

        wsgi.py



이제 장고에서 사용할 포트를 방화벽에서 오픈 합니다.


명령어 예: netsh advfirewall firewall add rule name="Djang-TCP_8000" dir=in action=allow protocol=TCP localport=8000


다음과 같은 명령어를 통해 서버를 실행합니다.

명령어: python .\manage.py runserver 0.0.0.0:8000


이후 웹 브라우저를 통해 접속해보면 정상적으로 실행되어 기본 페이지가 나타나는 것을 확인할 수 있습니다.




이상으로 나노 서버에서 파이썬과 장고를 실행하는 방법에 대한 포스팅을 마치겠습니다.

감사합니다.




참고 사이트: Python and Django on Nano Server





안녕하세요.

오늘 포스팅할 내용은 CentOS 7에 Powershell(이하 파워쉘)을 설치하여 사용하는 방법입니다.

Microsoft가 개발한 스크립트 언어를 특징으로 하는 명령어 인터프리터인 파우쉘이 Linux에서 설치하여 사용할 수 있다니 솔직히 무척 놀랍고도 반가운 내용입니다. 윈도우에서만큼 잘 동작하고 많은 기능들을 사용할 수 있기를 기대해봅니다.


오늘 포스팅은 다음 순서로 이루어져있습니다.


1. CentOS 7 파워쉘 다운로드 및 설치

2. 파워쉘 명령어 실행하여 사용하기





1. CentOS 7 파워쉘 다운로드 및 설치


CentOS 7에 파우쉘을 설치하기 위해서는 먼저 파워쉘을 다운로드 받아야 합니다.

다운로드: https://github.com/PowerShell/PowerShell/releases/


CentOS에 파워쉘이 설치되어있는지 확인합니다.

명령어: rpm -qa | grep powershell


CentOS 7에서 다운로드 받은 파일이 있는 공유 폴더를 마운트하여 설치를 준비합니다.

명령어: Mount -t cifs -o username=계정명 //윈도우 공유 폴더 경로 /마운트할 폴더명


마운트한 폴더로 이동하여 설치할 파일이 존재하는지 확인합니다.


CentOS 7에 파워쉘을 설치합니다.

명령어: yum install powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm


설치가 완료되면 다시 파우쉘이 정상적으로 설치되었는지 확인합니다.

명령어: rpm -qa | grep powershell




2. 파워쉘 명령어 실행하여 사용하기


다음과 같이 명령어를 통해 CentOS 7에서 파워쉘을 실행할 수 있습니다.

명령어: powershell


Get-Command 명령어를 실행한 결과


Get-ChildItem / 실행 시 화면


New-Item 명령어로 폴더 생성하기


Get-Process 명령어로 프로세스 조회하기

마지막으로 Get-Command 명령어를 통해 확인해보면 현재 CentOS 7에서 사용할 수 있는 명령어는 다음과 같습니다.

CommandType Name Version Source
Function Compress-Archive 1.0.1.0 Microsoft.PowerShell.Archive
Function Expand-Archive 1.0.1.0 Microsoft.PowerShell.Archive
Function Find-Command 1.0.0.1 PowerShellGet
Function Find-DscResource 1.0.0.1 PowerShellGet
Function Find-Module 1.0.0.1 PowerShellGet
Function Find-RoleCapability 1.0.0.1 PowerShellGet
Function Find-Script 1.0.0.1 PowerShellGet
Function Format-Hex 3.1.0.0 Microsoft.PowerShell.Utility
Function Get-FileHash 3.1.0.0 Microsoft.PowerShell.Utility
Function Get-InstalledModule 1.0.0.1 PowerShellGet
Function Get-InstalledScript 1.0.0.1 PowerShellGet
Function Get-PSRepository 1.0.0.1 PowerShellGet
Function Import-PowerShellDataFile 3.1.0.0 Microsoft.PowerShell.Utility
Function Install-Module 1.0.0.1 PowerShellGet
Function Install-Script 1.0.0.1 PowerShellGet
Function New-Guid 3.1.0.0 Microsoft.PowerShell.Utility
Function New-ScriptFileInfo 1.0.0.1 PowerShellGet
Function New-TemporaryFile 3.1.0.0 Microsoft.PowerShell.Utility
Function Publish-Module 1.0.0.1 PowerShellGet
Function Publish-Script 1.0.0.1 PowerShellGet
Function Register-PSRepository 1.0.0.1 PowerShellGet
Function Save-Module 1.0.0.1 PowerShellGet
Function Save-Script 1.0.0.1 PowerShellGet
Function Set-PSRepository 1.0.0.1 PowerShellGet
Function Test-ScriptFileInfo 1.0.0.1 PowerShellGet
Function Uninstall-Module 1.0.0.1 PowerShellGet
Function Uninstall-Script 1.0.0.1 PowerShellGet
Function Unregister-PSRepository 1.0.0.1 PowerShellGet
Function Update-Module 1.0.0.1 PowerShellGet
Function Update-ModuleManifest 1.0.0.1 PowerShellGet
Function Update-Script 1.0.0.1 PowerShellGet
Function Update-ScriptFileInfo 1.0.0.1 PowerShellGet
Cmdlet Add-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Add-Member 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Add-Type 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Clear-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Clear-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Clear-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Clear-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Compare-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Convert-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet ConvertFrom-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertFrom-Json 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertFrom-SecureString 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet ConvertFrom-StringData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertTo-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertTo-Json 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet ConvertTo-SecureString 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet ConvertTo-Xml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Copy-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Copy-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Debug-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Debug-Runspace 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Disable-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Disable-RunspaceDebug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Enable-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Enable-RunspaceDebug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-Clixml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Export-FormatData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Custom 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-List 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Table 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Format-Wide 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-ChildItem 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Credential 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Get-Culture 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Date 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-EventSubscriber 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Get-FormatData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Host 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-ItemPropertyValue 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Member 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-PSCallStack 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-PSDrive 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-PSProvider 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Random 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Runspace 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-RunspaceDebug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-TraceSource 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-TypeData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-UICulture 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Group-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Clixml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Csv 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-LocalizedData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Invoke-Expression 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Invoke-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Invoke-RestMethod 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Invoke-WebRequest 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Join-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Measure-Command 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Measure-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Move-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Move-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-PSDrive 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-TimeSpan 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet New-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Out-File 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Out-String 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Pop-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Push-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Read-Host 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Register-EngineEvent 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Register-ObjectEvent 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-PSDrive 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-TypeData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Remove-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Rename-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Rename-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Resolve-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Select-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Select-String 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Select-Xml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-Alias 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-Content 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Date 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet Set-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-ItemProperty 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Location 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-PSBreakpoint 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-TraceSource 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Set-Variable 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Sort-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Split-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Sleep 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Start-Transcript 3.0.0.0 Microsoft.PowerShell.Host
Cmdlet Stop-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Transcript 3.0.0.0 Microsoft.PowerShell.Host
Cmdlet Tee-Object 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Test-Path 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Trace-Command 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Unregister-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Update-FormatData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Update-TypeData 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Wait-Debugger 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Wait-Event 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Wait-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Write-Debug 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Error 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Host 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Information 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Output 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Progress 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Verbose 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Write-Warning 3.1.0.0 Microsoft.PowerShell.Utility


윈도우에서 사용할 수 있는 파워쉘에 비해서는 아직 많이 부족하지만 점점 많은 기능과 모듈이 추가되면 파워쉘이 익순한 관리자나 사용자는 리눅스도 윈도우 환경에서도 같이 잘 사용할 수 있을것 같습니다. ^^



그럼 CentOS 7에 파워쉘을 설치하는 오늘의 포스팅을 마칩니다.

감사합니다.

안녕하세요.


오늘 포스팅은 System Center 2012 R2 Virtual Machine Manager에 CentOS 7 VM 템플릿을 만드는 방법입니다.

가상컴퓨터 템플릿을 만들기 위해서는 먼저 Hyper-V에 CentOS를 설치할 필요가 있으니 하기 포스팅을 참고 부탁 드립니다.


Hyper-V에서 게스트 운영체제로 CentOS 7 버전 실행하기


이번 포스팅은 다음과 같은 순서로 이루어져있습니다.


1. CentOS 7에 VMMAgent 설치하기

2. VMM에 VM템플릿 만들기

3. 가상 컴퓨터 생성 후 확인하기




1. CentOS 7에 VMMAgent 설치하기


CentOS에 VMMAgent를 설치하기 위해서는 VMM설치 폴더에 있는 Linux에서 접근할 수 있도록 공유 폴더에 복사합니다.

(VMM Linux Agent는 기본 경로에 설치한 경우 C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\agents\Linux 폴더에 존재합니다)



CentOS에 ROOT 계정으로 로그인한 후 다음과 같은 명령어로 필요한 소프트웨어를 설치합니다.

명령어: yum install cifs-utils


드라이브를 매핑할 폴더를 생성합니다.

명령어: Mkdir /폴더명 (예: Mkdir /vmmagents)


공유 폴더를 생성한 폴더에 마운트 합니다.

명령어: Mount -t cifs -o username=계정명 //윈도우 공유 폴더 경로 /마운트할 폴더명 (예: Mount -t cifs -o username=계정명 //vmm01/VMMLibrary/Linux /VMMAgents)


마운트 한 폴더명으로 이동하여 정상적으로 마운트되었는지 확인합니다.


버전에 맞는 SCVMM Agent를 설치합니다.

명령어: ./install SCVMM Agent (예: 64bit OS인 경우 ./install scvmmguestagent.1.0.2.1075.x64.tar)


VMM Agent 설치가 완료되었다면 시스템을 종료합니다.




2. VMM에 VM템플릿 만들기

CentOS 7 가상디스크 파일(.vhdx)을 VMM Library 폴더에 복사합니다.


VMM 콘솔에서 Library서버의 공유 폴더를 마우스 우클릭한 후 새로 고침 버튼을 클릭합니다.


VMM 콘솔에서 라이브러리 메뉴를 선택한 후 VM 템플릿으로 이동하여 상단의 VM 템플릿 만들기 버튼을 클릭합니다.


VM 템플릿 만들기 마법사 창의 원본 선택 화면에서 '찾이보기(B)' 버튼을 클릭합니다.


VM 템플릿 원본 선택 화면에서 VM 템플릿을 만들 원본을 선택한 후 '확인' 버튼을 클릭합니다.


VM 템플릿 만들기 마법사 창의 원본 선택화면에서 가상 하드 디스크가 선택된 것을 확인 후 '다음(N)' 버튼을 클릭합니다.


VM템플릿 만들기 마법사 창의 ID 화면에서 VM 템플릿 이름을 입력하고 가상 컴퓨터 세대를 선택한 후 '다음(N)' 버튼을 클릭합니다.


VM 템플릿 만들기 마법사 창의 하드웨어 구성 창에서 네트워크 어댑터를 선택한 후 VM네트워크를 선택하고 IP 주소는 고정 IP를 선택합니다.



VM 템플릿 만들기 마법사 창의 하드웨어 구성 창에서 펌웨어로 이동한 후 '보안 부팅 사용(E)'를 체크 해제한 후 '다음(N)' 버튼을 클릭합니다.

(CentOS 7은 보안 부팅을 지원하지 않음)


VM 템플릿 만들기 마법사 창의 운영 체제 구성 화면에서 게스트 OS 프로필을 '새 Linux 운영체 체제 사용자 지정 설정 만들기'를 선택한 후 운영 체제를 CentOS Linux 7 (64bit)로 선택합니다.


VM 템플릿 만들기 마법사 창의 운영 체제 구성 화면에서 루트 자격 증명으로 이동한 후 루트 계정의 암호를 지정하고 '다음(N)' 버튼을 클릭합니다.


VM 템플릿 만들기 마법사 창의 응용 프로그램 구성 화면에서 '다음(N)' 버튼을 클릭합니다.


VM 템플릿 만들기 마법사 창의 SQL Server 구성 화면에서 '다음(N)' 버튼을 클릭합니다.


VM 템플릿 만들기 마법사 창의 요약 화면에서 '만들기(C)' 버튼을 클릭하여 VM 템플릿 만들기 마법사를 완료합니다.








3. 가상 컴퓨터 생성 후 확인하기


VMM 콘솔을 실행한 후 라이브러리 -> VM 템플릿으로 이동하여 가상 템플릿을 선택한 후 가상 컴퓨터 만들기 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 ID 화면에서 가상 컴퓨터 이름을 입력한 후 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 하드웨어 구성 화면에서 하드웨어 구성을 변경할 부분을 변경한 후 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 운영 체제 구성 화면에서 운영 체제 설정과 관련하여 변경할 부분이 있는 경우 변경한 후 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 대상 선택 화면에서 가상 컴퓨터를 배포할 그룹을 선택한 후 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 호스트 선택 화면에서 호스트를 선택한 후 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 설정 구성 화면에서 네트워크 어댑터를 선택한 후 가상 컴퓨터에서 사용할 고정 IP 주소를 입력하고 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 속성 추가 화면에서 '다음(N)' 버튼을 클릭합니다.


가상 컴퓨터 만들기 마법사 창의 요약 화면에서 설정을 확인한 후 '만들기(C)' 버튼을 클릭하여 가상 컴퓨터 만들기를 시작합니다.


(VMM 콘솔에서 작업 메뉴로 이동해보면 가상 컴퓨터가 만들어지는 과정을 확인할 수 있습니다)


가상 컴퓨터 생성이 완료되면 VMM 콘솔에서 VM 및 서비스 메뉴로 이동한 후 해당 VM을 마우스 우 클릭하고 연결 또는 보기 -> 콘솔을 통해 연결 버튼을 클릭하여 콘솔을 통해 연결합니다.


지정한 ROOT 계정과 패스워드로 로그인이 가능한 것을 확인할 수 있습니다.


지정한 IP가 고정 IP주소로 설정된 것을 확인할 수 있습니다.


지정한 Hsotname으로 가상 컴퓨터가 생성된 것을 확인할 수 있습니다.


가상 컴퓨터가 지정한 설정으로 생성된 경우 해당 가상 컴퓨터를 종료하고 VMM 콘솔에서 VM 및 서비스 메뉴로 이동한 후 해당 가상 컴퓨터를 마우스 우 클릭하여 속성 버튼을 클릭합니다.


가상 컴퓨터 속성 창에서 하드웨어 구성 화면으로 이동한 후 네트워크 어댑터를 선택하여 MAC주소가 정정으로 선택되어 있는지 확인합니다.

(만일 동적(Y)으로 선택되어 있는 경우 정적(C)으로 변경)




이상으로 VMM에서 CentOS 7 버전의 VM 템플릿을 만드는 방법에 대한 포스팅을 마칩니다.

감사합니다.

안녕하세요.

오늘 포스팅할 내용은 Hyper-V에서 게스트 운영체제로 CentOS 7을 실행하는 방법으로, 현재 Hyper-V에서 게스트 운영체제로 지원하고 있는 Linux 및 FreeBSD는 하기 사이트들을 통해 확인하실 수 있습니다.


Supported CentOS and Red Hat Enterprise Linux virtual machines on Hyper-V

Supported Debian virtual machines on Hyper-V

Supported Oracle Linux virtual machines on Hyper-V

Supported SUSE virtual machines on Hyper-V

Supported Ubuntu virtual machines on Hyper-V

Supported FreeBSD virtual machines on Hyper-V



이번 포스팅에서는 Hyper-V 2012 R2에서 게스트 운영체제로 CentOS 7 버전을 실행하는 방법에 대해 다음 순서로 설명하고 있습니다.


1. CentOS 다운로드 및 설치하기

2. Hostname 변경 및 고정 IP 설정하기

3. Hyper-V 통합 관리팩 설치(업데이트)하기






1. CentOS 다운로드 및 설치하기


CentOS는 공식 사이트를 통해 다운로드 받을 수 있습니다.

Downolad CentOS: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso


CentOS ISO 다운로드가 완료되면 Hyper-V를 통해 가상 컴퓨터를 생성합니다. CentOS 7 버전부터는 2세대 가상 컴퓨터 지원하기 때문에 2세대로 가상 컴퓨터를 생성할 수 있으나, 보안부팅은 지원하지 않기 때문에 가상 컴퓨터 생성 후 보안부팅에 대해서는 체크 해제해주어야 부팅이 가능합니다.


가상 컴퓨터 생성 시 2세대로 지정


가상 컴퓨터 생성 후 펌웨어에서 보안 부팅 사용 해제

만일, Linux 가상 컴퓨터 생성 시 동적 디스크를 이용하는 경우 Linux 시스템은 파일이 거의 비어있는 경우에도 실제 디스크 공간의 상당양을 소비할 수 있으니 다음과 같이 vhdx 생성 시 Powershell을 통해 BloackSize을 변경하여 생성합니다. (기본 32MB -> 1MB)

예) New-VHD -Path "G:\VM\CentOS\Virtual Hard Disks\CentOS-OS.vhdx" -SizeBytes 60GB -Dynamic -BlockSizeBytes 1MB

가상 컴퓨터 생성이 안료되면 다운로드 받은 CentOS ISO 이미지를 삽입하여 부팅한 후 'Install CentOS 7'를 선택합니다.

사용할 언어를 선택한 후 '계속 진행(C)' 버튼을 클릭합니다. (이번 포스팅에서는 한국어를 선택)

설치 요약 창에서 시스템의 '설치 대상(D)' 버튼을 클릭합니다.

설치 대상 창에서 설치할 디스크를 선택한 후 '완료(D)' 버튼을 클릭합니다.
 

설치 요약 창에서 '설치 시작(B)' 버튼을 클릭하여 설치를 시작합니다.

설치가 시작되면 설정 창에서 ROOT 계정 패스워드를 설정하기 위해 'ROOT 암호(R)' 버튼을 클릭합니다.



ROOT 암호 창에서 ROOT 암호를 입력한 후 '완료(D)' 버튼을 클릭합니다.

설정 창에서 설치가 완료되면 '재부팅(R)' 버튼을 클릭하여 CentOS 7 버전 설치를 완료합니다.






2. Hostname 변경 및 고정 IP 설정하기
CentOS 설치가 완료되면 ROOT 계정으로 로그인하여 설치된 버전을 확인합니다.

명령어: cat /etc/centos-release

이번에는 Hostname을 확인한 후 원하는 이름으로 변경합니다.

Hostname 확인 명령어: hostnamectl status

hostname 변경 명령어: hostnamectl set-hostname [변경할 Hostname]

호스트네임 변경을 완료하였다면 고정 IP 설정을 위해 현재 설정되어있는 IP와 네트워크를 명령어를 통해 확인합니다.
명령어: ifconfig

다음과 같이 네트워크 정보 수정을 위해 vi 편집기를 실행합니다.
명령어: vi /etc/sysconfig/network-script/ifcfg-eth0


vi 편집기를 통해 네트워크 정보를 다음과 같이 수정합니다.

[변경 전]


[변경 후]


BOOTPROTO: dhcp -> STATIC

IPADDR: 사용할 IP 주소

SUBNETMASK: 서브넷 마스크

GATEWAY: 게이트웨이 주소

DNS1: DNS 주소 (2번째 DNS가 있는 경우 DNS2로 추가 입력)

ONBOOT: no -> YES


위와 같이 정보 변경을 완료하였다면 "esc" + ":" + "wq" 키를 입력하여 파일을 저장 후 vi 편집기를 종료합니다.

네트워크 정보를 변경한 후에는 명령어를 입력하여 네트워크 서비스를 재시작 한 후 고정 IP가 정상적으로 설정되었는지 확인합니다.

명령어: /etc/rc.d/init.d/network restart


시스템을 종료한 후 Hyper-V 관리자에서 MAC 주소를 고정으로 변경합니다.




3. Hyper-V 통합 관리팩 설치(업데이트)하기

CentOS 7버전부터는 Hyper-V의 
Linux Integration Service가 내장되어 있으나, 구 버전이 설치되어 있는 경우 업데이트가 필요합니다. 하기 사이트를 통해 최신 버전을 다운로드 받습니다.
다운로드: https://www.microsoft.com/en-us/download/details.aspx?id=51612


다운로드가 완료되면 Hyper-V 관리자를 통해 CentOS에 다운로드 받은 ISO 이미지를 삽입합니다.


ISO 이미지를 마운트할 폴더를 생성하고 이미지를 마운트 합니다.

폴더 생성 명령어: mkdir /폴더명 (예: mkdir /LIS)

이미지 마운트: mount /dev/cdrom /마운트할 폴더명 (예: mount /dev/cdrom /LIS)


마운트한 폴더로 이동하여 정상적으로 마운트가 완료되었는지 확인합니다.


명령어를 통해 Linux Integration Service를 설치 또는 업데이트 합니다.



위와 같은 과정을 통해 Hyper-V에서 게스트 운영체제로 CentOS 7 버전을 실행할 수 있습니다.



이상으로 오늘 포스팅을 마칩니다.

감사합니다.


안녕하세요.

오늘 포스팅은 사설 및 공용 클라우드에 최적화된 나노 서버를 System Center Operations Manager를 통해 모니터링하는 방법입니다. 


나노 서버는 Windows Server 2016 Operations Management Pack을 통해 서버의 기본 동작에 대해 모니터링 할 수 있으며, 다음과 같은 역할을 수행하는 나노 서버를 모니터링 할 수 있습니다.


- Windows Failover Cluster

- DNS 서버

- IIS


나노 서버의 모니터링은 다른 윈도우 서버에 대한 모니터링과 비슷하지만, 나노 서버에 Operations Manager Agent를 설치하는 것은 다른 윈도우 서버에 Agent를 설치하는 것과는 차이가 있습니다. 

(나노 서버는 msi 형식의 파일 설치를 지원하지 않으므로...)


따라서, 나노 서버를 모니터링하려면 다음과 같은 절차를 수행해야 합니다.


1. 나노 서버에 Operations Manager Agent를 설치합니다.

2. Operations Manager Agent가 정상적으로 설치되었는지 검증합니다.

3. Windows Server 2016 관리 팩을 설치합니다.

4. 나노 서버가 정상적으로 모니터링되는지 확인합니다.


현재 나노 서버의 Agent에는 제약사항이 있어 다음 작업들이 현재 버전에서는 지원되지 않습니다.


- MSI 패키지를 통해 Operations Manager Agent 설치

- 작업 관리자와 동일한 도메인에 있는 않은 나노 서버 모니터링 (진짜 중요)

- JScript 또는 VBScript로 작성된 관리 팩으로 나노 서버 모니터링

- 나노 서버에 실행되는 닷넷 응용 프로그램 모니터링 (APM)

- 나노 서버의 프로세스 모니터링 

- 나노 서버의 OLE DB 모니터링

- Active Directory에 통합하여 나노 서버 모니터링

- Operations Manager 콘솔에서 업데이트 적용하여 나노 서버에 설치된 Operations Manager Agent에 대한 업데이트

- 네트워크 검색 규칙을 사용하여 ICMP를 지원하는 나노 서버에 대한 검색

- 나노 서버에서 실행되는 특정 URL 모니터링

- 나노 서버의 응용 프로그램의 로그 데이터 수집





1. 나노 서버에 Operations Manager Agent를 설치

나노 서버 모니터링을 위하여 먼저, Operations Manager Agent를 설치할 나노 서버 이미지를 생성합니다.

예) Import-Module .\NanoServerImageGenerator.psm1


New-NanoServerImage -DeploymentType Guest -Edition Standard -MediaPath H:\ -BasePath .\Base -TargetPath "G:\VM\Nano\NanoOMClient.Vhdx" -ComputerName "NanoOMClient" -InterfaceNameOrIndex Ethernet -Ipv4Address 10.0.0.56 -Ipv4SubnetMask 255.0.0.0 -Ipv4Gateway 10.10.10.254 -Ipv4Dns 10.10.10.21 -DomainName "DONKEY.LAB"  


다음은 Operations Manager 서버에서 Powershell을 통해 Agent를 설치하기 위해 신뢰할 수 있는 호스트로 나노 서버를 추가합니다.

예) Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "NanoOMClient" -Force; 


이제 Powershell을 통해 Operations Manager Agent를 설치할 차례인데 나노 서버 설치를 위한 파워쉘은 나노 서버 이미지 내의 NanoAgent\NanoServer나 Operations Manager 설치 폴더의Server\AgentManagement\Nano\NanoServer에 존재합니다.

(기본 경로에 설치했다면 C:\Program Files\Microsoft System Center 2016\Operations Manager\Server\AgentManagement\Nano\NanoServer에..)


다음과 같이 Powershell을 실행하여 설치합니다.

[중요!: Agent를 설치하기 위해서는 나노 서버의 관리자 권한을 가진 계정(도메인 관리자 계정 또는 나노 서버 Administrators 그룹에 추가된 계정)으로 설치 진행해야 합니다]


예)

$ManagementServer="OM2016.DONKEY.LAB" 

$ManagementGroupName="OM 2016" 

$NanoServer = "NANOOMClient02.DONKEY.LAB" 

$BinaryFolder = "..\"


 .\InstallNanoServerScomAgentOnline.ps1 -ManagementServerFQDN $ManagementServer -ManagementGroupName $ManagementGroupName -NanoServerFQDN $NanoServer -BinaryFolder $BinaryFolder



위와 같이 정상적으로 설치가 되었다면 나노 서버에 다음과 같이 Operations Manager Agent 폴더가 생성되고 파일이 복사된 것을 확인할 수 있습니다.



만일, Operations Manager 서버 이름이나 관리 그룹이름을 모르는 경우 Powershell을 통해 확인한 후 설치를 진행해야 합니다.


Operations Manager Powershell 모듈 가져오기: Import-Module OperationsManager


Operations Manager 관리 서버 조회하기: Get-SCOMManagementServer


Operations Manager 관리 서버 조회하기: Get-SCOMManagementGroup





2. Operations Manager Agent가 정상적으로 설치되었는지 검증

먼저, Operations Manager가 정상적으로 설치되었는지 검증하기 위하여 원격으로 Nano Server에 연결한 후 Operations Manager Service 실행 여부를 확인합니다.


예) Get-Service -Name HealthService 또는 Get-Service -DisplayName 'Microsoft Monitoring Agent'


이벤트 뷰어를 통해 원격으로 나노 서버에 연결해보면 Operations Manager 이벤트가 생성된 것을 확인할 수 있습니다.


Agent가 정상적으로 설치되었다면 Operations Manager 관리 콘솔을 통해 Agent를 승인해주어야 모니터링이 가능합니다. 


먼저, Operations Manager 관리 콘솔을 실행한 후 Administration -> Setting로 이동하여 Security를 클릭합니다.


Global Management Server Settings - Security 화면에서 수동 Agent 설치를 승인하기 위하여 'Reject new manual agent Installation'에 선택된 것을 "Review new manual agent installations in pending management view"로 변경한 후 OK 버튼을 클릭합니다.

[변경 전]


[변경 후]


이제 Administration -> Pending Management으로 이동해보면 수동으로 Agent를 설치한 나노 서버를 확인할 수 있으며, 해당 서버를 선택 후 오른쪽 Tasks 메뉴에서 Approve 버튼을 클릭합니다.


Manual Agent Install 창에서 Approve을 버튼을 클릭합니다.


이후 Administration -> Agent Managed로 이동해보면 Agent 상태 및 버전을 확인할 수 있습니다.





3. Windows Server 2016 관리 팩 설치

Operations Manager는 Agent를 설치한 경우 Agent Service 중지나 서버 다운 여부만 확인할 수 있으며, 성능이나 이벤트 또는 위에서 언급한 서버 역할(IIS, DNS, Failover Cluster 등)에 대한 모니터링은 불가능합니다. 나노 서버의 운영체제 상태나 서버 역할에 대한 모니터링 및 성능 수집 등을 위해 Windows Server 2016 관리 팩을 다운로드 받아 설치합니다.


Microsoft System Center Operations Manager Management Packs for Windows Server Technical Preview: https://www.microsoft.com/en-us/download/details.aspx?id=48256



다운로드 'SC Management Pack for Windows Server 2016' 파일을 더블 클릭하여 설치를 시작합니다.


License Agreement 창에서 'I accept' 를 선택한 후 Next 버튼을 클릭합니다.


Select Installation Folder 창에서 Next 버튼을 클릭합니다.

(관리 팩 설치 폴더를 변경하려는 경우 Browser.. 버튼을 클릭하여 관리 팩이 설치될 폴더를 변경합니다)


Confirm Installation 폴더에서 관리 팩이 설치될 폴더를 확인한 후 Install 버튼을 클릭합니다.


설치가 완료되어 Installation Complete 창이 나타나면 Close 버튼을 클릭하여 관리 팩 설치를 완료합니다. 



관리 팩 설치가 완료된 후에는 Operations Manager에 관리 팩을 가져와야 합니다. Operations Manager 콘솔을 실행한 후 Administration -> Installed Management Pack으로 이동한 후 Tasks 메뉴에서 Import Management Packs..버튼을 클릭합니다.


Import Management Packs 창의 Select Management Packs 화면에서 Add 버튼을 클릭한 후 Add from Disk... 버튼을 선택합니다.


Online Catalog Connection 창에서 No 버튼을 클릭합니다.

(Operations Manager Console이 설치된 서버가 인터넷에 연결되어 있고 설치하려는 관리 팩에 종속된 관리 팩이 필요 시 Online을 통해 다운로드 받으려는 경우 Yes 버튼을 클릭합니다)


Select Management Packs to import 창에서 설치한 관리 팩을 선택한 후 Open 버튼을 클릭합니다.


Import Management Packs 창의 Select Management Packs 화면에서 Install 버튼을 클릭하여 Operations Manager에 관리 팩을 가져옵니다.


이후 관리 팩 가져오기가 완료되면 Close 버튼을 클릭합니다.






4. 나노 서버가 정상적으로 모니터링되는지 확인

나노 서버에 Agent 설치도 정상적으로 완료하였고 관리 팩도 설치를 완료하였다면 이제 나노 서버가 정상적으로 모니터링 되는지 Operations Manager Console을 통해 확인해보면 서버 상태 및 성능 수집 등의 작업이 정상적으로 수행되는 것을 확인할 수 있습니다.





아직은 Windows Server 2016과 System Center 2016 Operations Manager 모두 Preview 단계이기 때문에 정식 버전이 공개되면 더 많은 것들이 모니터링 가능하리라 기대해봅니다. 




그럼 이상으로 오늘 포스팅을 마치겠습니다.

감사합니다.







참고 사이트: https://technet.microsoft.com/en-us/system-center-docs/om/manage/monitoring-nano-server


안녕하세요.

오늘 포스팅할 내용은 나노 서버(Nano Server)에 MySQL을 호스팅하는 방법입니다.


앞서 언급한 내용과 같이 개인적인 판단으로는 경량 OS 역할을 하는 나노 서버가 차후에는 많이 사용되지 않을까 하는 기대감이 있습니다. 나노 서버가 Windows Server의 고유(?) 기능인 IIS, DNS 뿐만 아니라 Node.js와 파이썬, ASP.NET 5를 지원하고 Mysql까지 설치하여 이용이 가능하기 때문에 경량 OS임에도 다양한 역할을 수행할 수 있어 많은 역할들로 사용되지 않을까 싶습니다.

(그래서 미리 미리 많이 공부해두려고 합니다. ^-^)


이번 포스팅에서는 다음 절차를 따라 나노 서버에서 MySQL을 호스팅하는 방법을 설명하고 있습니다.


1. MySQL을 호스팅 할 나노서버 이미지 생성(가상머신 또는 호스트)

2. MySQL 다운로드 및 배포

3. MySQL 구성 및 서비스 시작

4. MySQL 데몬 설치 및 구성

5. 나노서버에서 새 MySQL 데이터베이스 시작하기

6. 원격 서버에 MySQL Workbench 6.3 CE 다운로드 및 설치





1. MySQL을 호스팅 할 나노 서버 이미지 생성

나노 서버에 MySQL을 호스팅하기 위해서는 먼저 나노 서버 이미지를 생성해야 합니다. 이 포스팅에서는 MySQL을 호스팅 할 나노 서버를 가상머신으로 생성하기 때문에 아래와 같은 Powershell 스크립트를 사용하였습니다.


나노서버 모듈 가져오기: Import-Module .\NanoServerImageGenerator.psm1


새로운 나노서버 이미지 생성하기: New-NanoServerImage -DeploymentType Guest -Edition Standard -MediaPath H:\ -BasePath .\Base -TargetPath "G:\VM\Nano\NanoMySQL.Vhdx" -ComputerName "NanoMySQL" -InterfaceNameOrIndex Ethernet -Ipv4Address 10.0.0.55 -Ipv4SubnetMask 255.0.0.0 -Ipv4Gateway 10.10.10.254 -Ipv4Dns 10.10.10.21 -DomainName "DONKEY.LAB" 

-DeploymentType: 가상 머신인 경우 Guest 물리 머신인 경우 Host

-Edition: Windows Server Edition으로 Standard 또는 Datacenter

-MediaPath: ISO 이미지 마운트 경로

-TargetPath: 나노 서버 이미지가 생성될 경로 및 파일명 (2세대인 경우 vhdx, 1세대인 경우 vhd)

-ComputerName: Hostname 

-InterfaceNameOrIndex: IP를 세팅할 네트워크 카드 이름 

-Ipv4Address, -Ipv4SubnetMask, -Ipv4Gateway, -Ipv4Dns; IP주소, 서브넷마스크, 게이트웨이 주소, DNS 주소

-DomainName: 도메인 이름


위와 같이 나노 서버 이미지 생성이 완료되면 해당 이미지로 가상 머신을 생성하고 가상 머신을 시작합니다.



2. MySQL 다운로드 및 배포

MySQL을 호스팅할 나노 서버를 생성하였다면 MySQL을 다운로드 받아 준비할 차례입니다. 아래 사이트를 통해 MySQL을 다운로드 받습니다.


URL: http://dev.mysql.com/downloads/mysql/


다운로드 받은 파일을 원격 공유나 Powershell을 통해 MySQL을 호스팅 할 나노 서버에 복사합니다.


이제부터는 나노 서버에 원격으로 접속하여 작업이 필요하기 때문에 Powershell을 통해 원격 세션을 설정합니다.


먼저 Powershell을 통해 나노 서버가 신뢰할 수 있는 호스트인지 확인합니다.

Get-Item -Path WSMan:\localhost\Client\TrustedHosts;



신뢰할 수 있는 호스트에 나노 서버가 없는 경우 다음 명령어를 통해 신뢰할 수 있는 호스트로 나노 서버 IP주소를 설정합니다.

Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value 10.0.0.55 -Force;

(-Value는 나노 서버 IP 주소입니다)



위와 같이 신뢰할 수 있는 호스트 등록이 완료되었다면 나노 서버에 Powersehll로 원격 세션을 연결할 수 있습니다.

Enter-PSSession -ComputerName 10.0.0.55 -Credential Donkey\administrator





3. MySQL 구성 및 서비스 시작

원격 세션을 통해 나노 서버에 연결되었다면 MySQL의 폴더 경로를 나노 서버의 환경 경로 변수로 등록하여 구성할 차례입니다.


먼저, 다음 명령어를 통해 현재 환경 경로 변수를 확인합니다.

$Env:Path ;


다음 명령어로 위에서 나노 서버에 복사해둔 MySQL 경로를 환경 경로 변수에 추가합니다.

$Env:Path += ";C:\MySQL\mysql-5.7.15-winx64\bin\" ;


다음 명령어로 영구적으로 MySQL 경로를 환경 경로 변수에 저장합니다.

SETX PATH $Env:Path /M


다시 조회해보면 다음과 같이 MySQL 경로가 환경 경로 변수에 추가된 것을 확인할 수 있습니다.

$Env:Path ;


다음은 나노 서버에서 MySQL이 동작할 수 있도록 MySQL 폴더에 기본 데이터 폴더를 만들고 MySQL 데몬을 초기화 할 차례로 다음과 같이 Powershell로 MySQL 기본 데이터 폴더를 생성합니다.

New-Item -Path C:\MySQL\mysql-5.7.15-winx64\Data -ItemType Directory


이제 MySQL 버전 확인 후 MySQL 데몬을 초기화 할 차례입니다.

버전 확인: MySQL --version


MySQL 데몬 초기화: MySqld --initialize --console


MySQL 데몬이 모든 주요 문제 없이 초기화가 가능하다면 root 패스워드를 재거설정하고 MySQL 데몬을 다시 초기화 할 수 있는 초기화 파일을 생성합니다.


root 암호를 변경하는 MySQL-init.txt 파일 생성하기: Set-Content -Value “ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password123';” -Path "C:\MySQL\mysql-5.7.15-winx64\mysql-init.txt" -Encoding Ascii ; 


MySQL 데몬에 root 패스워드를 변경하는 MySQL-init.txt 파일을 전달하여 초기화 파일로 시작하기: MySQLd --init-file="C:\MySQL\mysql-5.7.15-winx64\mysql-init.txt" --console

(Ctrl + C 키를 눌러 종료합니다)






4. MySQL 데몬 설치 및 구성

이제 나노 서버에 서비스로 MySQL 데몬을 설치할 차례입니다.


먼저, 다음과 같이 MySQL 데몬 서비스를 설치합니다.

MySQLd --install 


이제 MySQL 서비스가 생성되었는지와 시작 여부를 확인합니다.

Get-Service -Name MySQL


위와 같이 MySQL 서비스가 생성은 되었으나 시작되지 않은 경우 서비스를 시작한 후 다시 확인합니다.

Start-Service -Name MySQL

Get-Service -Name MySQL


서비스를 시작한 후에는 변경한 패스워드를 통해 root 계정으로 MySQL 데이터베이스에 로그인하여 데이터베이스를 확인합니다.

MySQL --user=root --password=Password123 -Bse "SHOW DATABASES;" 


마지막으로 나노 서버에서 호스팅하는 MySQL을 로컬이 아닌 다른 인프라에서 사용할 필요가 있는 경우 이를 허용하기 위해서는 TCP 포트 3306(MySQL 기본 포트)에 대한 방화벽 허용 규칙을 만들 필요가 있습니다. 


다음과 같은 명령어를 통해 방화벽 규칙을 생성합니다.

New-NetFirewallRule -Name "MySQL Connections" -DisplayName "MySQL Port 3306 connections In" -Description "Allow MySQL to listen on Port 3306 connections from MySQL Workbench" -Group "MySQL" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -Profile Public





5. 나노 서버에서 새 MySQL 데이터베이스 시작하기

위의 작업들을 통해 나노 서버에서 MySQL을 호스팅할 수 있었습니다. 마지막으로 Powershell을 통해 나노 서버에서 호스팅하는 MySQL에 새로운 데이터베이스를 생성하고, 새로운 사용자를 만들어 권한을 부여하는 방법입니다.


새로운 데이터베이스 생성하기

MySQL --user=root --password=Password123 -Bse "CREATE DATABASE NanoMySQLDB CHARACTER SET utf8 COLLATE utf8_bin;" 


새로운 사용자 만들기

MySQL --user=root --password=Password123 -Bse "CREATE USER '계정명'@'%' IDENTIFIED BY 'password';"


사용자에게 모든 데이터베이스에 대한 모든 권한 부여하기

MySQL --user=root --password=Password123 -Bse "GRANT ALL PRIVILEGES ON *.* TO '계정명'@'%' WITH GRANT OPTION;"







6. 원격 서버에 MySQL Workbench 6.3 CE 다운로드 및 설치

이제 나노 서버에 호스팅하는 MySQL을 GUI 환경에서 관리하기 위해 MySQL WorkBench를 다른 클라이언트에 설치한 후 TCP 3306을 사용하여 나노 서버에 호스팅하는 MySQL에 연결하는 방법입니다.


MySQL WorkBench를 다운로드 받아 설치하기 위해서는 먼저 Visual C++ 2013 재배포 패키지를 다운로드 받아 설치해야 합니다.

(Visual C++ 2013 재배포 패키지를 설치하지 않고 MySQL WorkBench를 설치하는 경우 다음과 같은 경고 창이 나타납니다)


Visual C++ 2013 재배포 패키지 다운로드 경로: https://www.microsoft.com/en-my/download/details.aspx?id=40784



이제 MySQL WorkBench를 다운로드 받아 설치할 차례입니다.

다운로드 경로: http://dev.mysql.com/downloads/workbench/



다운로드가 완료되면 설치를 진행할 차례입니다. (설치는 무척 간단합니다..)


MySQL WorkBench 6.3 CE Setup Wizard 화면에서 Next 버튼을 클릭합니다.


설치 폴더 선택 창에서 설치할 폴더를 선택한 후 Next 버튼을 클릭합니다. 


설치 타입 창에서 설치 타입을 결정한 후 Next 버튼을 클릭합니다.


설치 준비 창에서 설치 타입과 설치 경로를 다시 확인한 후 Install 버튼을 클릭합니다.


설치 창에서 설치가 진행됩니다.



설치가 완료되면 나노 서버에서 호스팅하는 MySQL 연결을 위하여 MySQL WorkBench를 실행한 후 왼쪽 상단의 MySQL Connections + 버튼을 클릭합니다.


Setup New Connection 화면에서 Connection Name, HostName(또는 IP Address), Username를 입력한 후 Test Connection을 클릭합니다.


Connect to MySQL Server 화면에서 계정의 Password를 입력한 후 OK 버튼을 클릭합니다.


접속 테스트에 성공하여 다음과 같은 화면이 나타나면 OK 버튼을 클릭합니다.


접속 테스트에 성공하였다면 OK 버튼을 클릭하여 새로운 연결 설정을 완료합니다.


다시 MySQL WorkBench 초기화면에서 생성한 연결을 더블 클릭하여 나노 서버에서 호스팅하는 MySQL에 접속합니다.


접속이 완료되면 다음과 같이 MySQL 서버 상태, 사용자 및 권한 확인, 쿼리 실행 등 MySQL에 대한 관리 및 운영이 가능합니다.






그럼 이상으로 나노 서버에서 MySQL을 호스팅하는 방법에 대한 포스팅을 마치겠습니다.

감사합니다.















이번 포스팅은 정보 공유를 목적으로 하기 사이트에 내용을 옮긴 것입니다. 하기 사이트를 통해 원본 글을 확인해보세요.

 http://social.technet.microsoft.com/wiki/contents/articles/34655.nano-server-deploying-mysql-database-server.aspx


안녕하세요.

오늘 포스팅은 System Center 2016 Preview Virtual Machine Manager에 나노서버를 추가하는 방법입니다.


나노서버가 아닌 Windows Server에서 실행되는 Hyper-V의 경우 기존과 동일하게 VMM 콘솔에서 Hyper-V를 실행하는 호스트 추가 시 Agent를 설치하거나 수동으로 .msi 형태의 Agent를 설치한 후 VMM 콘솔을 통해 추가할 수 있습니다.


하지만, 나노서버는 SCVMM 패키지를 추가하여 이미지를 생성해야 합니다.


[VMM 패키지가 포함된 나노서버 생성하기]

1. Windows Server ISO 이미지 폴더 내에 존재하는 나노서버 모듈을 복사한 후 파워쉘을 관리자 권한으로 실행하여 나노서버 모듈을 가져옵니다.


2. 다음과 같은 명령어를 통해 SCVMM 패키지가 포함된 나노서버 이미지를 생성합니다.

명령어 예) New-NanoServerImage -MediaPath H:\ -BasePath .\Base -TargetPath "G:\VM\NANO\NANO-VMMHV01.vhdx" -ComputerName "NANO-VMMHV01" -DeploymentType "Guest" -Edition "Datacenter" -EnableRemoteManagementPort -DomainName "DONKEY.LAB" -InterfaceNameOrIndex "Ethernet" -Ipv4Address "10.0.0.44" -Ipv4SubnetMask "255.0.0.0" -Ipv4Gateway "10.10.10.254" -Ipv4Dns "10.10.10.21" -Packages Microsoft-NanoServer-SCVMM-Package,Microsoft-NanoServer-SCVMM-Compute-Package

※ Microsoft-NanoServer-SCVMM-Compute-Package 를 설치하는 경우 Hyper-V 기능 설치를 위한 -Compute 옵션을 함께 사용하면 안됩니다.



-MediaPath: ISO 이미지를 마운트한 경로

-TargetPath: 나노서버 이미지가 생성될 경로 및 파일명 (확장자를 vhd로 지정한 경우 1세대, vhdx로 지정한 경우 2세대)

-Computername: Hostname

-DeploymentType: 물리서버인 경우 HOST, 가상머신인 경우 Guest 

-Edtion: Windows Server Edtion (Standard 또는 DataCenter)

-EnableRemoteManagementPort: WinRM Enable

-DomainName: 도메인명

-InterfaceNameOrIndex: Network Adapter 이름

-Ipv4Address: IP주소

-Ipv4SubnetMask: 서브넷

-Ipv4Gateway: 게이트웨이 주소

-Ipv4Dns: DNS 주소

-Packages: SCVMM 관련 패키지 이름



(+)나노서버 패키지는 윈도우 서버 이미지 안에 존재합니다.


이미지 생성이 완료되면 나노서버를 실행한 후 System Center 2016 Virtual Machine Manager에 추가할 차례입니다.


[VMM에 Hyper-V 추가하기]

1. System Center 2016 Virtual Machine Manager 콘솔을 실행한 후 Fabric 메뉴로 이동하여 상단의 Add Resource를 클릭한 후 Hyper-V Hosts and Clusters 버튼을 클릭합니다.


2. Add Resource Wizard 창의 Resource Location 화면에서 Windows Server computers in a trusted Active Directory domain를 선택한 후 Next 버튼을 클릭합니다.


3. Add Resource Wizard 창의 Credentials 창에서 계정을 선택 또는 입력한 후 Next 버튼을 클릭합니다.

(반드시 Nano 서버의 관리자 권한이 있는 계정을 선택해야 합니다)


4. Add Resource Wizard 창의 Discovery Scope 창에서 추가할 나노서버 이름을 입력한 후 Next 버튼을 클릭합니다.


5. Add Resource Wizard 창의 Target Resources 화면에서 검색된 컴퓨터 중 추가할 컴퓨터를 선택한 후 Next 버튼을 클릭합니다.


6. Virtual Machine Manager 창에서 Hyper-V 기능 Enable과 관련한 경고 창이 나타나면 OK 버튼을 클릭하여 계속 진행합니다.


7. Add Resource Wizard 창의 Host Settings 화면에서 Host Group과 VM이 생성될 경로 등을 지정한 후 Next 버튼을 클릭합니다.


8. Add Resource Wizard 창의 Summary 화면에서 앞서 선택한 내용들을 확인한 후 Finish 버튼을 클릭하여 Add Resource Wizard를 완료합니다.


9. 다음과 같이 VMM에 나노서버가 추가된 것을 확인할 수 있습니다.



위의 경우는 나노서버 이미지 생성 시 SCVMM 패키지를 설치하였기 때문에 VMM에 추가가 가능한데, Hyper-V를 실행하는 나노서버를 운영 중에 VMM에 추가해야 하는 경우 Package 파일을 먼저 설치한 후 VMM에 추가할 수 있습니다.


[실행 중인 Nano서버 기반 호스트에 SCVMM 패키지 설치]

1. 먼저 나노서버 이미지(vhd 또는 vhdx) 파일을 마운트 합니다.

명령어 예) 

Diskpart

select vdisk file=H:\VM\NANO-VMMHV02\NANO-VMMHV02.vhdx

attach vdisk

list volume

select volume 8

assign letter=K

exit


2. Dism 명령어를 통해 패키지를 설치합니다.

명령어 예) Dism /image:K:\ /Add-Package /PackagePath:I:\NanoServer\Packages\Microsoft-NanoServer-SCVMM-Compute-Package.cab /PackagePath:I:\NanoServer\Packages\en-us\Microsoft-NanoServer-SCVMM-Compute-Package_en-us.cab /PackagePath:I:\NanoServer\Packages\Microsoft-NanoServer-SCVMM-Package.cab /PackagePath:I:\NanoServer\Packages\en-us\Microsoft-NanoServer-SCVMM-Package_en-us.cab


위와 같이 패키지 설치가 완료되면 위와 동일한 방법으로 VMM에 Nano서버를 추가할 수 있습니다.



그럼 오늘의 포스팅을 마치겠습니다.

감사합니다.











[참고 사이트] 

https://technet.microsoft.com/en-us/system-center-docs/vmm/manage/how-to-add-a-nano-server-as-a-hyper-v-host-in-vmm

https://technet.microsoft.com/en-us/library/hh825070.aspx







안녕하세요.

오늘 포스팅은 나노서버에서 Hyper-V를 실행하는 방법에 대한 내용입니다.


개인적으로 Windows Server 2016에서 가장 강력한 기능 중 하나라고 생각하는 부분이 나노서버인데요.

나노서버에서 실행할 수 있는 역할 중 Hyper-V도 많이 쓰이게되지 않을까 싶습니다.

(저의 희망사항일 수도..^^;;)


나노서버에서 Hyper-V를 실행하기 위해서는 먼저 Hyper-V 역할이 포함된 나노서버 이미지(vhd 또는 Vhdx)를 만들어야 합니다.


Powershell Script 예)

New-NanoServerImage -DeploymentType Guest -Edition DataCenter -MediaPath H:\ -BasePath .\Base -TargetPath "F:\VM\Nano\NANO-HV.Vhdx" -ComputerName "NANO-HV"  -Compute 

-DeploymentType: 물리서버인 경우 Host, 가상머신인 경우 Guest

-Edition: Windows Server Edtion으로 DataCenter 또는 Standard

-MediaPath: ISO 이미지 경로

-TargetPath: 나노서버 이미지가 저장될 경로 및 파일 이름

-Computername: 호스트 이름

-Compute: Hyper-V 역할


이미지가 만들어지면 해당 이미지를 Mount하여 서버를 실행하고 원격서버에서 해당 나노서버 IP를 신뢰할 수 있도록 등록합니다.


Powershell Script 예)

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "servername or IP"


예를 들어 Nano Server IP가 10.0.0.39인 경우 다음과 같이 입력합니다.

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "10.0.0.39"


위와 같이 신뢰할 수 있도록 등록한 경우 Powershell을 통해 원격으로 해당 서버에서 접속할 수 있습니다.


Powershell Script 예)

Enter-PSSession -ComputerName "servername or IP" -Credential servername\administrator


예를 들어 Nano Server IP가 10.0.0.39인 경우 다음과 같이 입력합니다.

Enter-PSSession -ComputerName "10.0.0.39" - Credential "10.0.0.39\administrator"


원격으로 접속이 완료되면 Hyper-V 역할이 정상적으로 설치되어 있는지 확인합니다.


정상적으로 Hyper-V 역할이 설치되어 있다면 Powershell을 통해 VM을 생성하고 정상적으로 실행되는지 확인할 차례입니다.


먼저, VM이 사용할 가상하드디스크를 생성합니다.


Powershell Script 예)

New-VHD -Path "경로 및 파일명" -SizeBytes "가상하드디스크 사이즈" -Dynamic (또는 Fixed)


예를들어 10GB 크기의 동적 디스크를 D:\VM\TESTVM경로에 TESTVM.vhdx로 생성하고 싶은 경우 다음과 같이 입력합니다.

New-VHD -Path D:\VM\TESTVM\TESTVM.vhdx -SizeBytes 10GB -Dynamic


다음으로 나노서버에 VM을 생성합니다.


Powershell Script 예)

New-VM -Name "가상머신이름" -path "가상머신저장공간" -MemoryStartupBytes "메모리크기"


예를 들어 2GB 메모리의 TESTVM이라는 이름으로 D:\VM\TESTVM 경로에 VM을 생성하는 경우 다음과 같이 입력합니다. 

New-VM -Name TESTVM -path D:\VM\TESTVM\ -MemoryStartupBytes 2GB


VM생성이 완료되면 다음과 같이 생성한 가상하드디스크 파일을 가상머신에 연결합니다.


Powershell Script 예)

Get-VM -Name TESTVM | Add-VMHardDiskDrive -path "D:\VM\TESTVM\TESTVM.vhdx"\


VM 생성이 완료되었다면 나노서버에서 VM이 정상적으로 실행되는지 확인하기 위해 VM을 시작해보면 정상적으로 실행되는 것을 확인할 수 있습니다.

Get-VM -Name TESTVM | Start-VM


추가로, Hyper-V 관리자가 설치된 서버에서 원격으로 나노서버에 연결해보면 가상머신이 정상적으로 실행되고 있는 것을 확인할 수 있습니다.





이상으로 오늘 포스팅을 마칩니다.

감사합니다.



안녕하세요. 

이번 포스트는 Bare Metal Computer에 Hyper-V 배포를 위해 WinPE Image에 Driver를 추가하는 방법입니다.

실제로 WinPE Image에 Driver를 추가하지 않은 경우 Network를 인식할 수 없거나 디스크를 인식할 수 없어 배포가 중단되는 경우 꼭 필요한 기능입니다.


실제로 보유하고 있는 HP Microserver Gen8에 VMM를 통해 Bare Metal Deploy 시 디스크를 정상 인식할 수 없어 에러가 발생되었습니다. 


위와 같이 드라이버 문제로 Bare Metal에 오류가 발생되는 경우 다음과 같이 boot.wim 파일에 필요한 드라이버를 추가하여 문제를 해결할 수 있습니다.


[WinPE Image에 Hardware Driver 추가하기]

1. WDS 서버의 Dcmgr\Windows\Image 폴더 내에 있는 Boot.wim 파일을 VMM 서버의 특정 폴더로 복사합니다.


2. VMM 서버에 특정 폴더에 필요한 Driver 파일을 복사합니다. (압축되어 있는 파일의 경우 압축해제하여..)


3. 다음과 같이 Powershell을 실행하여 Boot.wim 파일에 Driver를 추가합니다.


[명령어 예]

$mountdir = "c:\temp\mount"

$winpeimage = "c:\temp\boot.wim"

$winpeimagetemp = $winpeimage + ".tmp"


$path1= "C:\temp\Driver\cp023430\"

$path2 = "C:\temp\Driver\cp027782\"

$path3 = "C:\temp\Driver\cp028045\"

$path4 = "C:\temp\Driver\cp028046\"


mkdir "c:\temp\mount"

copy $winpeimage $winpeimagetemp

Dism /mount-wim /wimfile:$winpeimagetemp /index:1 /mountdir:$mountdir

Dism /image:$mountdir /add-driver /driver:$path1

Dism /image:$mountdir /add-driver /driver:$path2

Dism /image:$mountdir /add-driver /driver:$path3

Dism /image:$mountdir /add-driver /driver:$path4


Dism /Unmount-Wim /MountDir:$mountdir /Commit

publish-scwindowspe -path $winpeimagetemp

Del $winpeimagetemp


- $mountdir은 파일을 Mount 할 폴더입니다.

- $winpeimage는 boot.wim 파일 경로 및 파일명입니다.

- $winpeimagetemp는 boot.wim 파일을 Copy하여 임시로 생성할 폴더 및 파일명입니다.

- $path1~4는 Driver가 있는 폴더 및 파일명입니다. (당연히 Driver가 더 많다면 필요한만큼...?)

- mkdir: 폴더를 생성합니다.

- copy: boot.wim 파일을 임시파일로 복사합니다.

- dism /mount-wim: 지정한 파일을 지정한 경로에 Mount 합니다.

- dism /image:$mountdir /add-driver /driver:$path1~4: Mount한 경로에 Driver를 추가합니다.

- dism /Unmount-Wim: 임시파일을 Unmount 합니다.

- publish-scwindowspe -path $winpeimagetemp 임시 파일을 WDS 서버에 publish 합니다. (실제로 boot.wim 파일이 변경됩니다)

- del: 임시 파일을 삭제합니다.


4. 위의 작업이 완료되면 WDS 서버의 Dcmgr\Windows\Image 폴더 내에 있는 Boot.wim 파일이 변경된 것을 확인할 수 있습니다.

(Driver가 추가되었기 때문에 Size도 변경..)


위와 같은 방법으로 Driver를 추가한 후 HP Microserver Gen8에 Bare Metal Deployment를 통해 Hyper-V를 배포할 수 있었습니다.



오늘 포스팅한 내용은 다음 블로그에서 확인한 내용을 제 경험으로 아주 조금 변경하여 포스팅하였음을 참고 부탁 드립니다.


=> http://www.thomasmaurer.ch/2014/07/add-drivers-to-scvmm-bare-metal-winpe-image/


그럼 오늘의 포스팅을 마치겠습니다.

감사합니다.

안녕하세요. 

오늘 포스팅은 지난 포스팅에 이어 System Center 2012 R2 Virtual Machine Manager를 통해 Bare Metal Computer에 Hyper-V를 배포하는 방법입니다.


다만, 지난 포스팅과 다른 점은 HP Server에 배포를 위해 HP에서 제공하는 HP Onveview for Microsoft System Center 8.0에 포함되어 있는 SCVMM 2012 Integration Kit를 이용해서 Windows 설치 후 필요한 드라이버들을 대부분 설치할 수 있다는 것입니다.

(실제로 이 방법을 통해 짧은 기간내에 HP Blade 서버 수백대를 몇일만에 설치하기도..)


아쉬운점은 Oneview 이후에도 드라이버 및 펌웨어가 꾸준히 나오고 있기 때문에 OS 배포 후에 SPP를 다시 돌려줘야 하는 번거로움은 있지만 그래도 무척 강력한 기능이 아닐 수 없습니다. ^^


그럼 HP Onveview for Microsoft System Center를 통해 HP Bare Metal Computer에 Hyper-V를 배포하는 방법입니다.


[HP Onveview for Microsoft System Center]

1. HP SCVMM 2012 Integration Kit은 HP 사이트를 통해 다운로드 받습니다.

주소: http://www8.hp.com/us/en/products/server-software/product-detail.html?oid=3428082#!tab=features

(다운로드를 위해서는 로그인이 필요하므로 회원가입이 안되어있다면 회원가입을 하셔야지만..다운로드를 받으실 수 있습니다...)


2. 다운로드 받은 파일 중 hpscvmm2012kit-2015.10.0.3 파일을 마우스 우 클릭한 후 '관리자 권한으로 실행(A)'를 선택합니다.


3. HP ProLiant SCVMM 2012 Integration Kit 창에서 END USER LICENSE AGREEMENT에 동의하기 위하여 'Accept' 버튼을 클릭합니다.


4, HP ProLiant SCVMM 2012 Integration Kit 창에서 Browse 버튼을 클릭하여 압축 해제할 폴더를 지정한 후 Extract 버튼을 클릭합니다.


5. 압축 해제가 완료되면 Powershell 스크립트 2개와 drivers 폴더가 생성된 것을 확인할 수 있습니다.


6. 관리자 권한으로 Powershell을 실행한 후 hpproliantscvmmkit-install 명령어를 실행합니다.

명령어:) hpproliantscvmmkit-install VMM-Libraryr Server명\공유폴더명\

예를 들어 다음과 같이 VMM-Library 서버명이 VMM01(FQDN은 VMM01.DONKEY.LAB)이고 공유폴더명이 VMMLibrary이라면 다음 예와 같이 실행합니다.

명령어 예) hpproliantscvmmkit-install.ps1 \\VMM01.DONKEY.LAB\VMMLibrary


6-1) 명령어 실행이 완료되면 지정한 VMM Library 경로에 HP\Proliant\Drivers란 폴더와 OS별 Driver가 Copy된 것을 확인할 수 있습니다.


6-2) 또한, 물리적 컴퓨터 프로필에서 생성한 물리적 프로필 속성 창의 하드웨어 구성 화면에서 드라이버 옵션의 선택 버튼을 클릭해보면 태그가 생성된 것을 확인할 수 있습니다.


위 작업 이후에는 앞서 포스팅한 내용과 동일합니다. 

차이가 있다면 위에서 언급드린 내용과 같이 Bare Metal Computer에 Hyper-V를 배포하며 HP Driver가 함께 설치된다는 것 외에는...^^;


그럼 오늘의 짧은 포스팅을 마치겠습니다.


감사합니다.









+ Recent posts