. 동일한 사양의 여러 서버에 OS를 하나씩 수동으로 설치하는 것은 시간 낭비일 뿐만 아니라 휴먼 에러를 유발할 수 있습니다. 실무에서는 무인 자동 설치(Unattended Installation) 기술과 네트워크 부팅(PXE)을 결합하여, 서버 전원만 켜면 자동으로 OS가 설치되도록 구축합니다. OS별로 사용하는 도구가 다릅니다. 1. Ubuntu 자동 설치 (Autoinstall) Ubuntu는 20.04 버전부터 서버 설치 시 기존의 Debian Preseed 방식 대신 Cloud-init 기반의 Autoinstall(Subiquity) 방식을 기본으로 사용합니다. 동작 방식: 키보드 언어, 파티션 설정, 생성할 계정, 네트워크 설정 등을 user-data 라는 YAML 형식의 텍스트 파일로 미리 작성합니다. 적용 방법: 설치용 USB를 만들 때 부트 파라미터(GRUB 메뉴)에 autoinstall ds=nocloud-net;s=http://웹서버주소/ 를 추가하여, 설치 스크립트가 해당 웹 서버에서 user-data 파일을 읽어오도록 지시합니다. 설치 프로그램이 실행되면 사용자 개입 없이 YAML 파일의 내용대로 파티셔닝부터 패키지 설치까지 자동으로 진행합니다. 2. Arch Linux 자동 설치 (Archinstall) Arch Linux는 전통적으로 모든 것을 수동으로 타이핑해야 했지만, 최근에는 공식 설치 스크립트인 archinstall 을 통해 자동화를 지원합니다. 동작 방식: archinstall 은 Python 스크립트이며, JSON 형태의 설정 파일을 읽어 자동 설치를 진행할 수 있습니다. 적용 방법: 한 대의 서버에서 archinstall 을 실행하여 원하는 대로 설정을 마친 후, 설치 직전에 "Save configuration" 옵션을 선택하여 user_configuration.json , user_credentials.json , user_disk_layout.json 파일들을 추출합니다. 다른 서버를 부팅한 후, 추출한 JSON 파일들을 불러와서 archinstall --config 설정파일.json --creds 자격증명.json 명령어를 실행하면 동일한 환경으로 자동 설치됩니다. 3. 완전 자동화를 위한 궁극의 세팅: PXE (네트워크 부팅) USB를 들고 여러 대의 서버를 돌아다니며 꽂는 것도 일입니다. 이를 해결하기 위해 PXE (Preboot eXecution Environment) 서버를 구축합니다. DHCP 서버: 새로운 서버가 켜지면 IP를 할당하면서 "OS 부트 파일은 저쪽 TFTP 서버에 있어"라고 알려줍니다. TFTP 서버: 서버가 부팅에 필요한 최소한의 커널과 initrd(초기 램디스크)를 네트워크로 넘겨줍니다. HTTP 서버: 커널이 부팅된 후, 앞서 만든 Ubuntu의 user-data 나 Arch의 archinstall 스크립트를 다운로드하여 자동 설치를 시작합니다. 4. 엔터프라이즈급 관리 도구 서버가 수십 대 이상이거나 관리가 편해야 한다면, 위 과정들을 GUI로 묶어놓은 베어메탈 프로비저닝 도구를 사용합니다. MAAS (Metal As A Service): Canonical(Ubuntu 제작사)에서 만든 도구로, 웹 화면에서 서버 전원을 켜고 OS를 배포하는 데 특화되어 있습니다. Foreman / Cobbler: 다양한 리눅스 배포판의 네트워크 설치와 설정 관리를 자동화해주는 강력한 도구들입니다. 현재 구축하시려는 환경의 규모(서버 대수)는 어느 정도이며, 내부 네트워크 장비(DHCP 서버 등)를 직접 제어하실 수 있는 환경이신가요?