저자: Mitch Tulloch, 역 한동훈
원문: http://www.windowsdevcenter.com/pub/a/windows/2004/11/30/answer_files.html
응답 파일은 윈도우를 설치할 때 나타나는 다양한 질문에 대한 응답을 갖고 있는 텍스트 파일이다. 응답 파일을 작성하여 윈도우 설치를 자동화하고, 사용자 개입을 없애고, 시간을 절약하고, 배포를 단순화할 수 있다. 윈도우 NT 4.0 시절로 돌아가면, 관리자는 메모장 같은 텍스트 에디터를 사용해서 직접 응답 파일을 만들어야 했다.(또는 윈도우 NT 4.0 CD에 포함된 예제 파일 unattend.txt 파일을 편집했다) 윈도우 2000에서는 윈도우 2000 CD의 \Support\Tools\Deploy.cab 폴더에 Setup Manager라는 도구를 제공함으로써 과거의 방법을 변경했다. Setup Manager를 사용하면 마법사를 사용해서 단계를 진행하는 것으로 새로운 응답 파일을 쉽게 작성할 수 있으며, 응답 파일을 열어 입맛에 맞게 수정할 수 있다. 윈도우 XP와 2003은 비슷하게 동장하는 Setup Manager의 업데이트된 버전을 갖고 있다.(항상 운영체제 시스템이나 서비스 팩에 맞는 최신 버전의 Setup Manager를 사용하도록 한다)
네트워크 상에 있는 수많은 PC에 윈도우를 배포하기 위해 응답 파일을 사용할 때의 문제점은 웍스테이션을 설치할 것인지, 서버를 설치할 것인지, 어떤 서버 역할을 할당할 것인지, 다른 서브넷이나 도메인간에 배포하는 경우, 다른 버전의 윈도우를 설치하는 경우와 같이 다양한 목적에 대한 다양한 응답 파일들을 갖게 된다는 것이다. 사용자들이 초기 버전의 윈도우에서 응용 프로그램을 설치할 때 사용자들을 괴롭혔던 구버전의 DLL 지옥처럼, 위와 같은 결과는 응답 파일 지옥이다.
응답 파일 관리의 또 다른 문제는 Setup Manager를 사용해서 처음부터 새로운 응답 파일을 쉽게 생성할 수 있다는 것이지만, 이 도구가 완벽한 것은 아니다. 사실, Setup Manager는 배포를 커스터마이징하기 위해 필요한 중요한 설정들의 많은 부분을 제공하지 않는다. -- 특히, 엔터프라이즈 환경에서 두드러진다 -- 따라서 Setup Manager를 사용해서 응답 파일을 생성한 후에 메모장을 사용해서 직접 응답 파일을 편집하는 것이 필요한 경우가 있다. 또한, Setup Manager 마법사의 단계를 수행하는 것은 때때로 기존 응답 파일을 수정하기 위해 메모장을 사용하는 것에 비해 느린 방법이라는 것이다.
템플릿 사용
이러한 제한들 때문에 많은 관리자들은 Setup Manager 대신에 템플릿 사용을 선호한다. 템플릿은 용도에 맞게 수정할 수 있게 미리 만들어둔 응답 파일이다. 응답 파일 템플릿 라이브러리를 만들어 두는 것의 이점은 회귀 테스트(regression testing)의 이점을 얻을 수 있다는 것이다. 먼저, Setup Manager 사용하여 기본 응답 파일을 생성한다. Setup Manager가 설정할 수 없는 부분에 대해 메모장을 사용해서 커스터마이징한다. 랩 환경에서 이 파일을 테스트한다. 일단, 동작하는 응답 파일을 만들었으면, 다른 걱정없이 이 파일을 재사용할 수 있으며, 또한 이를 템플릿으로 제대로 동작할거라 예상할 수 있는 수정된 버전을 만들 수도 있다.
응답 파일 템플릿과 효율적으로 동작하기 위한 핵심은 템플릿에서 불필요한 것은 제거하고 가능한한 간결하게 유지하는 것이다. 10여줄 내외면 충분하다. 자동화된 윈도우 배포를 위해 제대로 동작하는 응답 파일은 실제로 5개의 섹션만 필요하다.
[Unattended]
EULA를 생략하기 위한 키, 설치를 얼마나 자동화할 것인지, %windir% 폴더의 위치등을 포함한다.
[GuiUnattended]
로컬 Administrator 비밀번호, 시간대, 환영 페이지 생략, 지역 설정을 지정하는 키를 포함한다.
[UserData]
컴퓨터 이름, 사용자, 조직 이름, 제품 키와 같은 키를 포함한다.
[Identification]
도메인에 새 머신을 포함시키길 원하는 경우 설정에 필요한 키를 포함한다.
[Networking]
네트워크 프로토콜, 클러스터, 서비스를 설정하기 위해 필요하다.
이처럼 간단한 응답 파일을 사용하는 것은 메모장을 사용하더라도 그다지 복잡하지 않다.
물론, 여러분의 환경에서 자동화된 배포 시나리오가 많다면, 메모장보다 나는 텍스트 에디터가 필요할 것이다. 사용할만한 것은
Ultraedit나
TextPad가 있다. 두 가지 모두 강력한 텍스트 에디터로 블록 수정을 단순화하기 위한 매커로를 제공하며, 키워드 에러를 쉽게 알 수 있게 해주는 구문 강조와 같은 다양한 기능을 제공한다.
또 다른 방법은 응답 파일을 생성하기 위해 MS 워드를 사용하는 것이다. 내장된 버전 관리 기능은 응답 파일의 초기 버전을 추적하는데 도움이 되며, 필요한 경우 이를 되돌릴 수 있다. 워드를 사용하면 응답 파일에 코멘트를 추가할 수 있다. 새로운 배포를 위해 응답 파일을 커스터마이징할 때 무엇을 변경했는지 알기 위해 변경사항 추적 기능을 사용할 수 있다. 워드에서 응답 파일의 철자 검사를 보다 쉽게 하기 위해 직접 사전을 만들 수 있다. 일단, 변경을 하게되면 응답 파일을 .txt나 .doc로 저장할 수 있다. .txt는 작업 버전이며, .doc는 문서화된 버전이 될 수 있으며, 이들을 같은 네트워크 공유에 저장할 수 있다.
그러나, 템플릿 접근법은 두 가지 단점을 갖고 있다. 한가지는 로컬 Administrator 계정에 대해 암호화된 패스워드를 원한다면 Setup Manager를 사용해서 이를 생성해야만 한다. 무인 배포를 사용해서 특정 PC의 설정을 다른 PC로 복제하길 원한다면 Setup Manager가 좋은 선택이다. 왜냐하면 Setup Manager는 해당 PC의 기존 설정을 응답 파일로 변환하는 기능을 갖고 있으며, 이를 복제 용도로 사용할 수 있다. 그러나, 대부분의 경우에 템플릿을 이용하는 방법이 Setup Manager에 비해 더 많은 장점을 갖고 있으며, 엔터프라이즈 환경에서는 더욱 그러하다.
결론
회귀 테스트를 거친 응답 파일 라이브러리를 구축했다면, 배포를 위해서 자신있게 응답 파일을 사용할 수 있다. 더 이상 사용하지 않는 오래된 응답 파일을 삭제해서 라이브러리를 간결하게 유지해야한다. 이처럼 응답 파일 라이브러리를 관리함으로써 네트워크에 새 머신을 배포하는 작업을 대단히 쉽게 할 수 있다.