Enterprise IT Solutions 37

[vCenter] "No connection could be made because the target machine

작년에 Horizon을 사용하는 VDI 시스템의 vCenter Server 콘솔상에서 "No connection could be made because the target machine actively refused it"이라는 오류와 함께 각 ESXi 호스트를 제어하지 못하는 문제를 겪었습니다. 그 때 생각했던 문제 원인과 해결 방법을 정리합니다. Possible cause 1: vCenter workflow manager service Access to the VCSA, then service vmware-vpx-workflow status/restart or shell.set --enabled true shell cd /bin service-control --status vmware-vpx-work..

Non-Microsoft DHCP Relay 환경에서 DHCP request timeout 문제해결

개요 작년에 겪었던 문제인데, VMware Horizon을 활용한 VDI 시스템을 운영하는 곳에서 Master VM Image를 Compose하는 과정에서 반복적으로 일부 클론들에 Agent Communication Failure가 발생하는 문제가 있었습니다. 그래서 Fail된 클론에 들어가서 이벤트 로그를 확인해 보았더니, 공통적으로 아래 로그가 있었습니다. Netlogon - 5719 Group Policy - 1129 DHCP-Client Operational - 50024 구글링 해보니, KB2459530가 나왔습니다. (지금 다시 검색해보니 해당 KB가 검색결과에 노출되지 않는 것 같습니다.) 원인은 윈도우 7 클라이언트가 부팅될 때, Broadcast 플래그를 0으로 세팅한 DHCP-Disco..

[iptables] Dynamic NAT (Pooled NAT)

eth0으로 나가는 내부망 패킷을 외부 공인 IP 주소와 1:1 대응시켜 NAT 하고자 할 때 이렇게 한 줄로 작성이 가능합니다. iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.1-192.168.0.5 -j SNAT --to-source 1.1.1.1-1.1.1.5 iptables는 한마디로 packet classification framework인데, 리눅스 커널 내 netfilter 모듈 제어와 ruleset을 관리하는 소프트웨어입니다. 그런데 이제 nftables가 대체재로써 훨씬 나은 퍼포먼스와 기능을 제공한다고 합니다. 찾아보니 리눅스 커널 3.13부터 새로운 syntax를 사용하는 nft 명령어와 기존 iptables 명령을 nftables 커널 ..

[vCenter] OVF template import via PowerCLI

얼마 전 어느 vSphere 클러스터에서 다른 클러스터로 VM 하나를 복사할 일이 생겼습니다. 이럴 때 VHDX 이미지를 복사하는 것 보다 OVF template를 export하는 것이 옮길 용량도 적어지고, VHDX 스냅샷도 고려할 필요가 없어 편리합니다. 서로 분리된 시스템이라서 외장 드라이브를 통해 옮겼는데, OVF template을 import 할 때 IE에서는 파일이 4GB 이상이면 한 번에 업로드가 되지 않기때문에 PowerCLI 파워셸 모듈을 처음 사용해 보았습니다. 먼저 원본 클러스터에서 내보낼 VM을 선택하고 OVF template를 다운로드 받습니다. .ovf, .mf, .vhdx, .nvram 파일이 다운로드되고, .mf파일에 SHA256 해시값이 있으니 파일들을 검증하면 좋습니다. ..

[PowerShell] 파워셸로 마우스, 키보드 입력 매크로 만들기

마우스와 키보드 입력을 간단한 매크로처럼 활용할 수 있게 해 보았습니다. 쏠쏠하게 잘 활용하고 있습니다^^ mouse_event() Add-Type -Name mouse -Namespace u32 -MemberDefinition '[DllImport("user32.dll")] public static extern void mouse_event(int flag, int x, int y, int a, int b);' $move = 0x0001 $ldn = 0x0002 $lup = 0x0004 $rdn = 0x0008 $rup = 0x0010 $abs = 0x8000 $left_click = $ldn -bor $lup -bor $move -bor $abs $right_click = $rdn -bor $rup ..

[PowerShell] 워드 파일을 PDF로 일괄 변환하는 스크립트

고등학생 시절 학습자료를 워드 파일(혹은 RTF)로 정리하다 간혹 다른 사람에게 주기 위해 PDF로 바꿀 필요가 있었습니다. 그 때 요긴하게 사용했던 스크립트입니다. 코드에는 *.docx로 되어 있는데, 워드로 열 수 있는 확장자면 필요에 따라 바꾸시면 됩니다. 실행할 때는 변환하려는 워드 파일들이 있는 디렉터리에서 하면 됩니다. function Export-WordToPDF { param( [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)] [Alias("FullName")] $path, $pdfpath = $null) process { if (!$pdfpath) { $pdfpath = [System.IO.Path]::ChangeEx..

[PowerShell] HTTP 서버 만들기

1. 개요 System.Net.HttpListener는 .NET Framework 2.0에서 도입된 클래스인데, 파워셸과 닷넷만 설치되어 있으면(대부분 Windows 7 이상에서) 사용할 수 있습니다. 이 클래스를 이용해서 현재 디렉터리에 있는 파일을 Plaintext로 보여주는 간단한 웹 서버를 만들 수 있습니다. 2. 예제 $listener = New-Object System.Net.HttpListener $listener.Prefixes.Add("http://localhost:8080/") $directoryroot = (pwd).Path try { $listener.Start() } catch { "Unable to start listener." exit 1 } while ($listener.Is..