“MAAS (Metal as a Service)”
Metal as a Service의 약자로 물리적인 서버를 클라우드 인프라스트럭처의 일부로 관리하기 위한 오픈 소스 플랫폼입니다.
MAAS(Metal as a Service)는 클라우드 환경에서 서버를 프로비저닝하고 관리하는 데 사용됩니다.
[주요 기능 및 목적]
1. 물리적 서버 관리
– 서버의 전원을 켜고 끄거나, PXE부팅을 통한 OS 설치 등과 같은 물리적 서버의 기본 작업을 자동화할 수 있게
해줍니다.
2. 자동 프로비저닝
– 새로운 서버가 필요한 경우 MAAS는 자동으로 해당 서버를 프로비저닝하고 클라우드에 추가할 수 있습니다.
3. 하드웨어 인벤토리
– MAAS는 클러스터의 물리적 서버들에 대한 상세한 하드웨어 정보를 제공합니다.
4. 클라우드 관리
– 물리적 서버를 가상 머신과 함께 통합하여 통합된 클라우드 인프라를 구축할 수 있습니다.
5. API 제공
– 사용자는 자신의 자동화 도구나 클라우드 오케스트레이션 툴을 통해 MAAS를 효과적으로 활용할 수 있습니다.
[구성]
MAAS Server : Ubuntu 22.04
Client Server[IPMI O]
[개 요] ✅ 종 류 : 프로그램/툴 설치 ✅ 난이도 : ⭐ ✅ 내용요약 : MAAS 설치 및 배포 ✅ 테스트환경 : ubuntu 22.04 ✅ 관련직무 : 시스템&클라우드 엔지니어 |
1. MAAS 설치
1️⃣ MAAS 패키지 설치
해당 명령어를 사용하여 maas 패키지를 설치합니다.
원하는 버전이 있을 경우 –channel=[해당 패키지 버전]을 사용하여 원하는 버전 설치합니다.
해당 명령어를 사용하여 postgresql 패키지를 설치합니다.
MAAS_DBUSER, MAAS_DBPASS, MAAS_DBNAME을 설정하여줍니다.
설정한 변수를 사용하여 postgreSQL user를 생성합니다.
MAAS database를 생성합니다.
[추가할 내용] : host
$MAAS_DBNAME $MAAS_DBUSER 0/0 md5
해당 경로에 내용을 추가 후 저장합니다.
해당 명령어를 입력하여 MAAS 서비스를 활성화합니다.
해당 명령어를 입력하여 활성화 시킨 maas의 다양한 서비스의 상태를 확인 할 수 있습니다.
해당 명령어를 사용하여 maas를 관리할 관리자 계정을 생성합니다.
주소 : https://maas-server-ip:5240
해당 주소로 접속하면 [위 사진]과 같은 접속화면이 나옵니다.
생성한 관리자 계정으로 접속합니다.
[위 사진]과 같은 화면이 나오면 정상적으로 로그인이 되었습니다.
빨간색으로 표시한 저 곳을 [아래 사진]과 같이 설정해주어야 합니다.
DNS forwarder : 164.124.101.2
Ubuntu archive : http://mirror.kakao.com/ubuntu
설정이 완료되었을 경우 저장하고 다음 설정으로 넘어갑니다.
다음 설정으로 넘어가면 선택한 이미지를 다운 및 관리를 할 수 있습니다.
원하는 버전의 이미지를 선택한 후 update selection을 눌러 다운로드를 합니다.
현재 다운로드의 진행 상황을 status에서 확인할 수 있습니다.
다운로드가 완료되면 Synced로 상태가 변경됩니다.
원하는 이미지를 다운로드 후 continue를 눌러 다음 설정으로 넘어갑니다.
Finish Setup을 눌러 다음 설정으로 넘어갑니다.
배포된 서버와의 연결을 위해 SSH 키 값이 필요합니다
해당 빨간 부분을 눌러주면 [아래 사진]과 같은 화면이 나옵니다.
해당 화면에서 Upload를 선택합니다.
key값을 생성하여 입력할 수 있는 Public key 칸이 있는지 확인합니다.
MAAS서버에서 해당 명령어를 입력하여 RSA 알고리즘을 사용한 4096 비트의 ssh 키를 생성합니다.
해당 키값을 확인하고 전체를 복사하여줍니다.
복사한 전체 키값을 public key 칸에 붙여넣고 import SSH key를 눌러 적용합니다.
설정한 키 값이 적용되었는지 확인하고 Finish setup을 눌러 설정을 마무리합니다.
해당 화면이 나오면 MAAS 설치가 완료되었습니다.
2. IPMI 설정
1️⃣ IPMI BMC 설정
Client 서버의 바이오스 설정으로 접속 후 IPMI 세팅으로 이동합니다.
BMC Network Configuration으로 들어가서 설정해줍니다.
[Update IPMI LAN Configuration]을 No → Yes로 변경 한 후 Configure IPv4 support 항목들을 설정합니다.
IMPI 설정이 완료되었으면 저장 후 재부팅을 해줍니다.
재부팅 시 [위 사진]처럼 BMC IP가 잡히면 완료된 것입니다.
2️⃣ IPMI 사용자 생성
해당 명령어를 입력하여 maas 서버에서 ipmitool 패키지를 설치합니다.
[명령어] : ipmitool -H [ipmi BMC IP] -U [ipmi 계정] user list
해당 명령어를 입력하여 현재 생성되어 있는 ipmi 사용자 목록을 확인할 수 있습니다.
ipmitool -H [ipmi BMC IP] -U [ipmi 계정] user list로 확인을 한 결과 [위 사진]과 같이 출력됩니다.
[명령어] : ipmitool -H [ipmi BMC ip] -U [ipmi 계정] user set name 2 infra
2번째 ID의 이름이 admin → infra로 변경됩니다.
[명령어] : ipmitool -H [ipmi BMC IP] -U [ipmi 계정] user set password 2 [ipmi password]
해당 명령어를 입력하여 생성한 ipmi user의 비밀번호를 설정합니다.
BMC IP로 접속해보면 [위 사진]과 같은 화면이 나오는데 설정한 계정으로 로그인 시도를 합니다.
로그인 시 [위 사진]과 같은 화면이 나오면 정상적으로 완료되었습니다.
3. MAAS 설정
1️⃣ MAAS 장치 추가
HARDWARE – Machines로 이동합니다.
[위 사진]과 같은 화면이 나오는데 Add hardware를 클릭하여 장치를 추가합니다.
Machine과 Chassis가 나오는데 Machine으로 새 장치를 추가합니다.
Client IPMI 장치에 대한 내용을 입력하여 추가하면 [위 사진]과 같이 baremetal-test라는 새 Machine이 추가됩니다.
Baremetal-test 새 machine을 클릭하면 등록한 machine에 대한 정보가 나옵니다.
현재 client server는 Power on 상태중이며 현재 상태는 Commissioning(시운전) 중인것으로 나오는걸 확인할 수 있습니다. 현재 CPU, MEMORY, STORAGE는 현재 Unknown으로 찾지 못한것으로 나옵니다.
장치를 추가하면 자동으로 commissioning으로 시작하지만 현재 dhcp가 등록되어 있지 않아 Failed Commissiong으로 실패하게 됩니다.
2️⃣ subnets 설정
dhcp를 하기 위해선 NETWORKING – Subnets 으로 접속합니다.
untagged를 눌러 network 수정할 수 있는 창으로 접속합니다.
현재 DHCP상태는 Dsabled로 비활성화되어 있는 상태입니다.
Configure DHCP를 눌러 DHCP를 설정합니다.
Rack controller 설정 및 dhcp ip 대역을 설정해줍니다.
설정이 완료되면 Configure DHCP를 눌러 설정을 저장하고 DHCP를 활성화합니다.
설정 저장 후 DHCP의 상태가 Enabled로 활성화가 되어 있는 모습을 확인할 수 있습니다.
※Baremetal-test를 다시 commission하기 전에 Client Server의 Boot 옵션 1번을 PXE Boot 옵션으로 변경하고 저장합니다.
DHCP를 설정한 후 baremetal-test 장치를 다시 commissioning을 진행합니다.
[위 사진]과 같이 PXE로 부팅하는 모습을 확인할 수 있습니다.
commissioning이 완료되어 Ready로 상태가 바뀐것을 확인할 수 있습니다.
Unknown 이였던 CPU, MEMORY, STORAGE가 Client Server의 정보로 입력이 된 점 확인할 수 있습니다.
4. Deploy
1️⃣ 서버 고정 IP 설정
따로 DHCP로 ip 할당을 해도 되지만 해당 서버의 ip를 고정하고 싶을 경우 하는 설정입니다.
commissioning이 완료되었을 경우 해당 network도 자동으로 잡히는데 사용하는 네트워크 디바이스에 DHCP가 MAAS probided로 되어있는 장치를 수정합니다.
네트워크 항목으로 들어가면 [위 사진]과 같이 네트워크 디바이스 항목이 나옵니다.
현재 사용하는 네트워크 디바이스를 확인하여 actions를 눌러줍니다.
여러 항목중에 Edit Physical을 눌러줍니다.
IP mode → Static assign으로 고정 ip를 할당한 후 Save Interface를 눌러 저장합니다.
확인해보면 Auto assign → 설정한 ip로 할당된 것을 확인할 수 있습니다.
2️⃣ Server Deploy
Action → Deploy 를 눌러 Deploy 를 준비합니다.
원하는 OS, Release, Kernel을 설정한 후 Start deployment for machine을 눌러 deploy를 진행합니다.
현재 baremetal-test machine의 상태가 Ready → Deploying으로 바뀐 점 확인할 수 있습니다.
Baremetal-test machine의 상태가 Deployed로 바뀌면 배포가 완료된 점 확인할 수 있습니다.
이미지 배포가 완료되어 서버에 접근을 시도할 경우 Permission denied가 표시됩니다.
접속을 위해 maas 서버에서 ubuntu 계정으로 접속을 하면 비밀번호 입력 없이 접근이 가능합니다.
원하는 OS 이미지로 배포가 되었는지 확인합니다.
3️⃣ Release
Actions → Release 를 눌러줍니다.
해당 부분을 체크하여 배포한 디스크 내용을 삭제합니다.
체크 후 Release machine을 눌러 release 진행합니다.
Baremetal-test machine의 상태값이 Disk erasing상태로 변경된 점을 확인할 수 있습니다.