KIMKYUTAE.COM · ©
MAAS란? 물리 서버 OS 자동 설치
PC 한 대에 운영체제(OS)를 설치하는 일은 크게 어렵지 않다. 설치 USB로 부팅하고 화면 안내에 따라 진행하면 된다. 하지만 같은 작업을 서버 수십 대에 반복해야 한다면 이야기가 달라진다.
OS 설치뿐 아니라 디스크 구성, IP 주소, 계정 설정까지 맞춰야 한다. 원격으로 설치 화면에 접속하더라도 서버마다 같은 항목을 입력하는 일은 여전히 남는다. MAAS는 이런 반복 작업을 줄여주는 서버 관리 도구이다.
MAAS의 개념
MAAS는 Metal as a Service의 약자로, Ubuntu를 개발하는 Canonical의 오픈소스 소프트웨어이다. 여기서 Metal은 실제 하드웨어인 물리 서버(Bare Metal)를 뜻한다.
클라우드에서는 운영체제와 사양을 선택해 가상 서버를 생성한다. MAAS는 데이터센터의 물리 서버를 이와 비슷한 방식으로 준비할 수 있게 한다. 관리 화면이나 API에서 서버와 OS를 지정하면 네트워크를 통해 설치 작업을 진행한다.
예를 들어 Ubuntu 서버 10대가 필요하다면, 등록된 서버 10대를 골라 같은 이미지를 배포하는 방식이다. 서버별 설치 화면에서 같은 작업을 반복하는 수고가 줄어든다.
주요 기능
- OS 설치: 준비된 운영체제 이미지를 서버에 배포한다.
- 하드웨어 확인: CPU, 메모리, 디스크, 네트워크 장치 정보를 수집하고 하드웨어 테스트를 실행한다.
- 전원 제어: 서버의 원격 관리 기능과 연동해 전원을 켜거나 끄고 재부팅한다.
- 설치 설정: 배포할 서버의 IP 주소와 디스크 구성을 관리한다.
- 회수와 재배포: 사용이 끝난 서버를 반환받아 다른 용도로 다시 배포한다.
OS 자동 설치에 하드웨어 정보 수집과 전원 제어, 서버 할당 기능이 묶여 있다고 보면 된다. 서버를 준비하고 사용한 뒤 회수하는 과정까지 관리하는 것이다.
설치 과정
출발점은 네트워크 부팅(PXE)이다. USB나 내부 디스크 대신 네트워크에서 부팅 파일을 받아 실행하는 방식이다. 서버가 이 방식으로 MAAS에 접속하면 하드웨어를 확인하고 OS를 설치할 수 있다.

서버 등록 → 하드웨어 확인 → OS 배포 → 사용 준비
- 서버 등록: 네트워크 부팅으로 서버를 등록하거나 관리자가 직접 추가한다.
- 하드웨어 확인: 임시 운영 환경으로 부팅해 장치 정보를 수집한다. MAAS에서는 이 과정을 커미셔닝(Commissioning)이라고 한다.
- 배포 준비: 사용할 서버를 할당받고 OS 이미지, 네트워크, 디스크 구성을 선택한다.
- OS 설치: 서버를 다시 부팅해 선택한 이미지를 디스크에 설치한다.
- 초기 설정: 해당 OS와 이미지가 지원하는 방식으로 계정과 접속 설정 등을 적용한다.
Ubuntu 배포를 예로 들면 DHCP가 네트워크 주소와 부팅 정보를 제공하고, Curtin이 디스크 구성과 OS 설치를 처리한다. Cloud-init은 첫 부팅 때 계정과 SSH 키 같은 초기 설정을 적용한다. 다른 OS는 이미지에 포함된 도구에 따라 처리 방식이 달라질 수 있다.
지원 운영체제
MAAS에서는 Ubuntu 외의 운영체제도 배포할 수 있다. 다만 Ubuntu처럼 제공되는 이미지를 가져다 쓰는 경우와, 배포용 이미지를 직접 만들어야 하는 경우를 구분할 필요가 있다.
| 운영체제 | 이미지 준비 |
|---|---|
| Ubuntu Server | 공식 이미지 스트림에서 필요한 이미지 동기화 |
| Debian·RHEL·Rocky Linux·SLES 등 | 대상 OS와 버전에 맞는 커스텀 이미지 제작·등록 |
| Windows Server | Windows용 커스텀 이미지 제작 및 라이선스 준비 |
| VMware ESXi | 커스텀 이미지 제작 및 서버·드라이버 호환성 확인 |
커스텀 이미지는 MAAS가 디스크에 설치하고 부팅할 수 있도록 준비한 배포용 이미지이다. 일반 설치 ISO를 올리는 것만으로 배포 준비가 끝나지는 않는다. Canonical이 공개한 Packer 템플릿을 활용하면 필요한 이미지를 만드는 과정을 자동화할 수 있다.
실제 배포에 앞서 템플릿이 지원하는 OS 버전과 완성도, 서버 드라이버, 라이선스 조건을 확인해야 한다. 템플릿마다 유지관리 상태가 다르므로 테스트 서버에서 설치와 부팅까지 검증하는 편이 좋다. CentOS처럼 지원이 종료된 버전은 새로 구축할 서버의 OS를 고를 때 특히 주의할 부분이다.
활용 예
테스트용 물리 서버 20대가 있는 환경을 생각해볼 수 있다. Ubuntu와 Rocky Linux 이미지를 준비해두면 필요한 서버를 골라 OS를 배포하고, 테스트가 끝난 뒤 회수해 다음 작업에 사용할 수 있다. ESXi 배포용 이미지와 호환 하드웨어를 준비했다면 가상화 호스트를 설치하는 작업에도 활용할 수 있다.
서버를 자주 설치하거나 용도를 바꾸는 환경에서 효과가 크다. 같은 이미지와 설정을 반복해서 사용하므로 작업자에 따른 설정 차이도 줄일 수 있다.
Ansible과의 차이
서버 자동화 도구로는 Ansible도 많이 사용한다. 일반적인 구성에서 MAAS는 하드웨어 확인과 OS 배포를, Ansible은 OS 설치 후 프로그램과 설정 관리를 맡는다.
MAAS로 Ubuntu를 설치한 뒤 Ansible로 웹 서버와 모니터링 도구를 설치하고 보안 설정을 적용하는 식이다. Ansible도 모듈과 API를 통해 인프라 작업을 자동화할 수 있으므로, 두 도구를 어느 단계에 사용할지는 운영 구성에 따라 정하면 된다.
도입 준비
처음에는 서버와 네트워크를 자동 배포에 맞게 구성하는 작업이 필요하다. 서버 수보다도 설치와 재구성이 얼마나 자주 발생하는지를 함께 보는 편이 좋겠다.
- 배포 네트워크: PXE 부팅과 DHCP 구성을 확인한다. 기존 사내 DHCP와 충돌하지 않도록 배포망과 주소 범위를 설계해야 한다.
- 원격 관리: 자동 전원 제어에 사용할 IPMI·Redfish 등의 지원 여부를 확인한다. 관리망은 접근을 제한하고 접속 자격증명을 보호해야 한다.
- 데이터 보호: 재배포는 디스크를 덮어쓸 수 있다. 실행 전 대상 서버를 식별하고, 필요한 데이터의 백업과 복구 가능 여부를 확인해야 한다.
- 이미지 유지관리: OS와 드라이버, 보안 업데이트, 라이선스를 관리하고 이미지 변경 후에는 배포 테스트를 거친다.
설치가 드문 소규모 환경에서는 MAAS 자체를 관리하는 일이 더 부담스러울 수 있다. 반대로 서버를 계속 준비하고 회수하는 환경이라면, 처음에 구성해둔 배포 절차를 반복해서 사용할 수 있다는 장점이 있다. OS 설치 횟수와 이미지 유지관리 비용을 함께 따져보면 도입 여부를 판단하는 데 도움이 될 것이다.
공식 자료 : MAAS OS 배포 과정 · 커스텀 이미지 안내 · Packer MAAS 템플릿






