2013년 1월 31일 목요일

윈도우PC들의 소프트웨어 설치 원격 관리하기

회사 또는 소프트웨어 개발 프로젝트에서 신입 요원이 들어온 첫날 하는 일은? 다른건 몰라도 PC를 지급받고 필요한 소프트웨어를 설치하는 작업은 빠지지 않을까 한다. 오늘은 윈도우 환경 PC들에 대한 인스톨 작업의 자동화 및 원격 관리에 방법을 소개해 보고자 한다.

Active Directory환경의 윈도우 PC들

의외로 많이 쓰여지지 않는 기능인데, 마이크로 소프트에서는 Active Directory의 그룹정책을 통해 원격으로 어플리케이션을 인스톨/제거 할 수 있는 관리 기능을 제공하고 있다.

위 방법은 서버 2003뿐만이 아니라 Windows 2000 이후에 발표된 모든 윈도우 제품군들에 대해서 사용이 가능하나, 배포하려는 소프트웨어는 확장자가 msi이어야만 한다는 제약이 따른다. EXE로 배포되는 인스톨러를 MSI로 변환하는 툴은 아래 사이트에서 구할 수 있다.


WPKG를 이용한 리모트 인스톨



Active Directory이외의 환경이나 msi파일 이외의 패키징으로 프로그램을 설치해야 하는 경우엔  WPKG를 추천한다. WPKG는 클라이언트 서버 프로그램으로 구성된 오픈소스 솔루션으로 다음과 같은 기능들을 제공한다.

  • 윈도우PC에대한 완전 자동화된 프로그램 배포/업데이트/삭제
  • MSI,EXE를 포함해 어떠한 포멧이라도 배포 가능
  • 그룹이 다른 PC들 또는 단일 PC에 대한 프로그램 배포
  • 간단한 사용법
  • 커스텀 스크립트를 이용해 프린터 세팅, 월 페이퍼 변경, 시계 동기화, 레지스트리 변경을 포함한 거의 모든 종류의 윈도우 세팅 변경이 가능
  • 로컬 도메인, 워크스페이스는 물론 인터넷과 VPN등의 네트워크 환경에서 동작 가능
  • 윈도우즈2000에서부터 윈도우8 까지 다양한 윈도우 OS를 서포트. 
  • 과거 작업들에 대한 목록 보존 가능
  • 직관적인 웹 인터페이스 제공




2013년 1월 30일 수요일

젠킨스(Jenkins)를 이용한 지속적 통합(CI:Continuous Integration) (1) - 미스터 젠킨스씨를 소개합니다.

젠킨스(Jenkins)를 이용한 지속적 통합(CI:Continuous Integration)
(1) 미스터 젠킨스씨를 소개합니다

고담시의 평화를 지키는 배트맨. 악당들과 싸움질에 바쁜 부르스 웨인의 곁에는 언제나 묵묵히 자리를 지키며 보좌해온 집사 알프레드가 있었다. 

이상적인 집사의 표상


배트맨에서 알프레드가 하는 집사 역할의 중요성은 <다크나이트 라이징>에서 아직 상당한 재산이 남아 있었음에도 전기 요금을 못내 전기가 끊기고, 그 결과 추운 대리석 바닥에서 자다가 안좋아진 컨디션으로 인해 베인이게 일방적으로 혼쭐이 나는 배트맨의 모습에서 잘 알 수 있다.

여담이지만 일상적인 집사 역할 이외에 알프레드의 역할은 다음과 같다.
  • 배트맨 부재시 배트 케이브 경비
  • 배트 모빌을 포함해 배트맨이 사용하는 각종 장비의 제작 및 정비
  • 의료
  • 비상시 전투 보조(특히 사격)

단, 출신이 그곳이다 보니 요리만큼은 잘 못한다 카더라...


아무튼, 물려받은 재산은 없어도 바쁘기 만으로 따지면 배트맨 부럽지 않은 우리 프로그래머들에게도 알프레드와 같이 묵묵히 온갖 굳은일을 처리해주시는 분이 나타나셨으니 그분이 바로 오늘 여러분들께 소개드릴 젠킨스씨이다.

이... 이분은 아니시고...


이분이 젠킨스씨 (2010년까진 허드슨)


젠킨스는 Agile창시자중 한명인 마틴파울러씨가 주창한 지속적 통합(Continuous Integration)을 구현하기 위한 자바 오픈소스 소프트웨어로서 웹 어플리케이션의 형태를 하고 있다. 국내에서는 허드슨이란 이름으로 더 잘 알려져 있으며 2010년 오라클과의 상표권 문제로 인해 젠킨스로 이름이 바뀌게 되었다.

젠킨스의 배경에 대한 좀 더 자세한 사항은 위키피디아의 해당 항목을 참고하기 바란다.

젠킨스가 제공하는 기능은 다음과 같다.
  • 미려한 웹 인터페이스를 통한 간편한 설정
  • 강력하고 편리한 레포팅 기능
  • 지속적인 자동화 빌드
  • 지속적인 자동화 테스트
  • 커버리지 감시
  • 코드 품질 감시
  • 다양한 인증기반과 결합한 인증 및 권한관리 기능
  • Groovy script를 이용한 고수준의 잡 스케줄링 기능
  • 커맨드라인 인터페이스 제공
  • 자동화된 배포 관리
  • 분산빌드 기능
  • 윈도우 커맨드 스케줄링 실행기능

이 외에도 지금도 활발히 추가되고 있는 수많은 플러그인을 통해 간단히 기능을 추가/확장 할 수 있다.

이렇게 강력하면서도 많은 기능들을 제공해 주지만 젠킨스는 노련한 집사의 이미지 답게 까다롭지 않으시다. (게다가 무보수이다!)

배포파일은 Java Web Archive(.war)화일 형태로 제공되어 기본적으로 자바가 동작하는 환경이라면 어디든지 동작하며 윈도우, Ubuntu, Red Hat, Mac OS X, BSD등 아홉가지 OS에서 동작하는 네이티브 패키지를 제공한다.

젠킨스는 이미지 그대로 집사와도 같이 귀찮은 잡무들을 해결해 줌으로서 개발자들이 본연의 창의적인 업무에 집중 할 수 있도록 도와준다. 굳이 Agile이라는 키워드를 꺼내들지 않더라도 젠킨스는 사용하기에 따라 거의 대부분의 프로젝트에서 개발자와 관리자에게 도움을 줄 수 있으리라고 확신한다.

관련링크


다음번 포스팅에서는 젠킨스의 설치와 주요 플러그인에 대해서 알아보도록 하겠다.





블로그를 시작하며

Agile개발이라는 주제로 새롭게 블로그를 시작합니다.
작심삼일이 되지 않게 열심히 해 볼 생각입니다.
하루 하루 절실하게!
감사합니다.