안녕하세요.  IISKOREA 팀블로그의 김효성입니다.
지난번 소개 및 설치편에 이어진 포스팅이 파워쉘에 관한 정보를 모으느라 많이 늦었네요.
파워쉘을 활용한 IIS 관리에 앞서 파워쉘에 대해 좀 더 알기 위해 정리했습니다.
* 정보문화사의 Windows Server 2008 바이블 및 윈도우 파워쉘 사용을 위한 10가지 팁의 내용을 참고하였습니다.

(1) 파워쉘의 특징

- 자동 탭 완성 지원 : 탭을 활용한 자동 완성 기능을 지원합니다.
예) 파워쉘 창을 실행한다 -> Write- 를 입력하고 탭을 누른다. -> 원하는 명령어가 나올때까지 탭을 누른다.

- 파이프라인(|) 지원 : 파이프라인 문자를 사용하여 여러 cmdlet 을 나열하면, 첫 cmdlet 의 출력 개체물을 다음 cmdlet 으로 전달할 수 있습니다.

예) PSH> Get-Content test.txt | Add-Content test2.txt
test.txt 파일의 내용을 파이프(|)를 통해 개체로 전달받아 test2.txt 에 기록한다.

- 대화형 쉘 : 다중 라인 입력 및 세미콜론을 이용한 다중 명령어 지원

다중 라인 입력 지원

예) PSH> "test
>>1
>>2
>>"
>>
test
1
2
큰 따옴표(") 를 사용하여,  다중 라인 입력을 지원한다.(작은 따옴표도 가능)

다중 명령어 지원

예) PSH> dir;ipconfig
현재 디렉토리 내용을 출력하고, 이어서 IP 구성을 출력한다.

이외에도 실행 에러 방지 및 기존 DOS cmd 명령어 지원 등의 많은 특징이 있습니다.

(2) Cmdlet(Command-let) 이란?

Cmdlet 은 파워쉘에서 사용하는 제일 기본적인 명령어 입니다. 명령어는 "동사-명사"의 형태로 되어있고, 대소문자를 구분하지 않습니다. 다음은 Cmdlet 의 기본 구문입니다.

동사-명사 매개변수 인자

다음 통해 cmdlet 의 명령어와 사용법을 알 수 있습니다.

Get-Command -commandtype cmdlet

cmdlets 의 지원되는 명령어를 알 수 있습니다.

Get-Help "명령어" 혹은 "명령어" -?

특정 명령어의 사용법을 알 수 있습니다.

Get-Help "명령어" -detailed

특정 명령어의 상세한 설명을 얻을 수 있습니다.

Get-Help "명령어" -full

특정 명령어의 -detailed 옵션보다 보강된 설명을 얻을 수 있습니다.

(3) .NET 프레임워크 기반의 언어

파워쉘의 설치 조건 중에 .NET 프레임워크 설치가 있는걸 보면 알 수 있듯이 .NET 프레임워크는 파워쉘이 동작하는데 기반이 됩니다. 때문에 cmdlet 의 출력물은 개체이며 아래의 예제처럼 활용 할 수 있습니다.

PSH> $myString="test"
PSH> $myString
test
PSH> $myString.ToUpper()
TEST

추가로 Get-Member 를 활용하여 해당 개체가 제공하는 모든 메서드 및 속성을 알 수 있습니다.

PSH> $myString | Get-Member

(4) 스냅인(Snap-in) 을 이용한 확장

사용자 삽입 이미지
 스냅인이란 파워쉘의 기능 추가를 위해 C# 또는 VB.NET 로 작성된 DLL 입니다. 파웨쉘이 IIS 관리 기능을 제공하기 위해 스냅인을 사용니다.(IIS 7.0 PowerShell Snap-in 의 MSI 파일 설치)

이렇게 파워쉘을 이해할 수 있도록 간략히 정리해 보았습니다. 다음 포스팅은 IIS 7.0 파워쉘 스냅인 설치 및 IIS 7.0 스냅인 명령어를 알아보겠습니다. 그리고 파워쉘에 대한 추가적인 내용은 별도로 포스팅 하도록 하겠습니다.


 

안녕하세요, IISKOREA 팀블로그의 김효성 입니다.

Windows XP 및 2003 에서도 PowerShell 2.0 이 사용 가능 합니다.
(Window 7 및 2008 R2는 기본지원합니다.)

http://support.microsoft.com/kb/968929 

지원 운영체제는

Windows Server 2008 Sp1, Sp2, Sp3
Windows Server 2003 SP2
Windows Vista Sp1, Sp2
Windows XP Sp3


 안녕하세요. IISKOREA 팀블로그의 김효성입니다.

(1) 윈도우, 파워쉘로 자동화를 꿈꾸다.

 윈도우에 있어서 파워쉘에 역활에 대한 정의는 제각각이지만, 저는 윈도우서버 관리의 자동화를 위한 파워쉘이라고 생각합니다. 리눅스 서버를 다루다가 윈도우 서버를 다뤄보면 뭔가의 부재로 불편함을 종종 느끼게 되는데 대부분이 자동화의 불편함에 따른 이슈가 대부분이었습니다.

 물론 윈도우도 배치파일을 활용하거나 어플리케이션 제작을 통한 해결책이 있지만, 배치로는 한계가 있고  어플리케이션 개발은 기회비용이 크게 요구됩니다. 이런 고민을 할때즈음, 우연히 IIS7 에 대한 세미나를 듣다가 파워쉘이라는 것을 알게되었습니다.

 윈도우 파워쉘은 2006년 하반기에 1.0 버전을 발표하였습니다. (제가 최초 파워쉘에 대한 소식을 접하기 딱 2년 전에 발표가 된 것에 놀랐습니다. ^^;;) 현재 파워쉘 1.0 은 윈도우 XP, 2003, 비스타, 2008 에 설치 가능하고, 윈도우7 및 윈도우 2008 R2 부터는 파워쉘 2.0 으로 버전이 올라갑니다.
* 제 포스팅은 윈도우 2008 기준 파워쉘 1.0을 기준으로 작성하겠습니다.

 파워쉘은 리눅스의 쉘처럼 텍스트 기반의 화면에서 시스템 및 서비스 상태를 모니터링 할 수 있고 서비스의 동작을 제어할 수 있으며 레지스트리 값을 수정할 수 있는 환경을 제공하여 줍니다. 이는 더 이상 GUI 기반의 관리 환경에서 벗어나 반복적인 작업에 대한 자동화를 손쉽게 구현할 수 있는 장점으로 승화될 수 있습니다. 또한 다수의 윈도우 서버 관리 시 동일한 환경 구축 및 배포에 있어서 고려할만한 선택권이 생겼다는 의미가 됩니다. 이미 훌륭한 GUI 를 이용한 관리가 가능하지만, 조금이라도 단순 반복 작업을 줄여 줄 수 있다면 사용하는게 좋겠지요?

 자, 파워쉘에 대한 소개는 이 정도로 하고 실제 사용해 볼 수 있도록 환경을 구축하여 보지요.

(2) 파워쉘 on 윈도우2008

 윈도우2008은 기존의 윈도우 서버들과는 달리 모든 서비스 및 기능들이 설치되어있지 않습니다. 파워쉘도 마찬가지구요. 다행히 윈도우2008 에서 파워쉘의 설치는 간단합니다. 다른 서비스들 처럼 서버관리자의 기능 추가 통해 설치가 가능합니다. 아래의 순서로 설치부터 기본 실행까지 따라해 보도록 하세요.
* 화면을 클릭하면, 원본 사이즈로 보실 수 있어요.

1) 서버관리자를 실행한다.
사용자 삽입 이미지

2) 서버관리자의 기능요약탭의 기능추가를 실행하여, Windows Powershell 항목을 체크 후 설치를 진행합니다.
사용자 삽입 이미지
사용자 삽입 이미지

4) 설치가 완료되고, 기능요약에 Windows PowerShell 이 추가되었음을 확인한다.
사용자 삽입 이미지

5) 마지막으로 파워쉘을 실행해 봅니다.
사용자 삽입 이미지
사용자 삽입 이미지

위 처럼 시작메뉴의 프로그램 항목에서 찾아서 실행 가능하고, 실행 기능을 통해 powershell 이란 커맨드로도 실행 가능합니다. 개인적으로는 프로그램 항목에서의 실행이 화면칼라가 마음에 드네요.

 금번 포스팅은 파워쉘의 소개 및 설치까지만 다뤄보았네요. 바로 다음 포스팅을 준비해서 파워쉘을 어떻게 사용하는지 다뤄보도록 하겠습니다~ ^^

안녕하세요. IISKOREA  팀블로그의 김대우 입니다. 이번에 소개해 드릴 내용은 어플리케이션 개발자 / 관리자 분들이라면 모두가 고민하는 웹 어플리케이션의 구성/관리/배포에 대한 내용입니다.

단순히, 웹사이트 설치나 웹사이트 이전, 백업 하는 정도라고 생각하기 쉽습니다만, 웹사이트 및 응용프로그램들이 가지는 다양한 종속성(Dependency)등에 대한 고려와 시스템 / 웹사이트에 대한 설정까지 다양한 환경이 정확히 생성/관리/배포 되어야 하기 때문에 관리 작업에서 가장 어렵고 시간이 많이 소요되는 힘든 과정이 바로 이 구성/관리/배포가 아닐까 생각합니다.

또한, 한 두대의 웹서버를 관리하시는 분들부터, 5~10대의 서버를 관리해야 하는 경우, 또는 수백대의 웹서버를 자동화 기능들을 통해 관리해야 하는 호스팅사까지 다양한 환경에 맞는 스크립트나 배포 도구, 또는 필요할 경우 배포나 유지관리를 위한 툴을 직접 제작해야 하는 경우까지, 다양한 환경에 맞는 기능을 선택하는 것도 필요하실 겁니다. 이런 비지니스 구조, 환경에 맞는 툴들이나 방법은 어떻게 선택해야 할까요?

예를 들어, 한 서버에서 대략 300개 정도의 운영 중인 웹사이트에 하드웨어 적인 장애가 발생해 다른 시스템으로 이전해야 하는 상황이 발생하는 (웹호스팅) Shared Hosting 환경이라면 어떨까요? 더더욱 자동화된 배포나 이전, 백업 등에 대해서 고민하시게 될겁니다.

이 복잡한 작업들을 어떻게 쉽고 빠르게 해결 가능할까요?
IIS7은 여려 배포를 위한 훌륭한 기능들을 제공하고 있는데요. 그 배포 기능들을 차례대로 소개해 드리려고 합니다. ^_^

IIS의 다양한 배포 도구

(1) 웹 플랫폼 설치 관리자 – WPI
image
웹플랫폼 설치 관리자는 설치 과정을 GUI로 쉽게 구성 가능하도록 돕는 도구 입니다. 특히, Dependency가 있는 웹 어플리케이션을 자동으로 설치하거나, 관리툴, 개발도구, 다양한 확장기능들을 설명과 함께 선택이 가능하기 때문에 유용한 도구 입니다.
- 가장 손쉽고 자동화된 설치 환경 제공
- 국내&전세계의 다양한 웹 어플리케이션 기본 탑재
- 웹서버/데이터베이스서버/프레임워크/도구들을 설치 가능
- 웹 어플리케이션 설치시 종속적인 웹서버 기능이나 데이터베이스 기능들을 자동 설치
WPI 기술소개 링크 : http://www.iis.net/webpi 
WPI 다운로드 : http://www.microsoft.com/web/downloads/default.aspx
웹플랫폼 설치 관리자는 단순한 배포 도구를 넘어선, 훨씬 중요한 역할을 Microsoft 웹 플랫폼 아키텍쳐와 관련해 수행하게 되는데요. 관련해서는 따로 상세하게 소개해 드릴 예정이니 도움 되시길 바랍니다.

(2) 웹 배포 도구 – Web Deployment Tool
image
웹 배포 도구는 웹사이트나 웹서버에 대해서 배포를 가능하게 돕는 IIS7의 확장기능(Extension)입니다. 특히, IIS6에서 IIS7으로의 마이그레이션이나 구성파일 패키징 기능을 지원하기 때문에 다양한 웹사이트 구성을 쉽게 이전이 가능한 특징이 있습니다. 여러대의 서버를 관리하는 경우라면 이 웹 배포 도구가 많은 도움이 되실 겁니다.
링크 : http://www.iis.net/extensions/WebDeploymentTool
- 패키징 기능으로 전체 웹사이트 파일, 포함된 데이터베이스, 권한 및 레지스트리정보 등을 패키지 가능
- IIS6를 IIS7으로 손쉽게 마이그레이션 가능
- 서버간 동기화(Synchronization) 가능
- IIS Manager와 연계해 이용 가능
웹 배포 도구 관련된 내용 역시 곧 포스트를 통해 상세히 전달해 드릴 예정입니다.

(3) IIS7의 파워쉘(Power Shell) 부가기능
파워쉘은 윈도우서버에 대해서 관심있는 분들은 잘 알고계시는 기능일텐데요. 윈도우 서버의 다양한 작업들을 파워쉘을 이용하면 모두 스크립트로 자동화가 가능한 것처럼, IIS7도 파워쉘을 이용해 모든 기능들을 스크립트화 시킨 후 웹사이트 생성부터 유지관리까지의 작업을 스크립트로 자동화시켜 실행 가능합니다. 다수의 웹서버를 관리하실 경우에 유용하며, 호스팅 환경 등에서도 활용 가능합니다.
- IIS7의 구성 정보들을 파워쉘 스크립트로 관리
- 웹사이트, 응용프로그램 풀, 웹응용프로그램, 가상디렉토리, 작업자 프로세스 등을 관리 가능
- 파워쉘의 다양한 스크립팅 기능으로 대규모의 복잡한 IIS 관리 기능을 처리 가능
- 파워쉘 2.0의 원격 기능을 이용해, 원격 서버를 파워쉘로 제어 가능
마찬가지로, IISKOREA 팀블로그에서 이 파워쉘을 이용한 유지 관리도 준비하고 있으니 기대해 주세요.

(4) 프로그래밍 API를 이용한 사용자 정의(Custom) 배포/관리툴 제작을 위한 기능
API를 이용한 방법은 자신이 소속된 회사에 적합한 패턴의 웹서버 생성, 관리 및 배포를 위한 프로그램을 직접 제공되는 기능을 이용해 제작 가능하게 합니다. 즉, 수백대가 넘는 호스팅사와 같은 IIS 웹서버 관리에 필요한 기능들을 이 제공되는 프로그래밍을 위한 API로 제작해 회사에 맞는 관리/배포를 위한 프로그램 직접 생성 가능하게 합니다. – 이미 나와있는 관리 솔루션들도 있지요.
WMI(Windows Management Instrument)
http://learn.iis.net/page.aspx/163/managing-applications-and-application-pools-on-iis-7-with-wmi/ 
Microsoft.Web.Administration
http://learn.iis.net/page.aspx/165/how-to-use-microsoftwebadministration/ 

자~ 이렇게 IIS는 비지니스 방식과 운용 규모 등에 맞는 다양한 관리/배포 도구를 제공하고 있습니다. 각각의 기능들에 대해서는 차후에 IISKOREA의 팀블로그를 통해 계속 소개해 드리도록 하겠습니다.
감사합니다.