kvm에서 vm생성하는 방법으로 직접 생성하는방법, vagrant, 생성된 vm clone 등 방법이 있는데,
말그대로 autoinstall방법이 있는지 궁금했다.
https://blog.encicle.com/ubuntu-2004-cloud-initeul-tonghan-custom-iso-seolchi-jadonghwa-autoinstall
위 사이트를 찾긴했는데 생략된 부분도 있고 잘 안되서 좀더 찾아보았다.
https://canonical-subiquity.readthedocs-hosted.com/en/latest/reference/autoinstall-reference.html#ai
공식 가이드가 있긴한데 hands-on이 쉽지는 않다. 그래서 좀더 찾다가 스크립트를 찾게되었다.
https://github.com/condensereality/ubuntu-22.04-autoinstall-generator
이게 현재 가장 사용하기 쉬운 방법 같다. (스크립트를 분석하면 역으로 실행 방식을 찾을수 있긴하겠으나…굳이…)
ubuntu22.04 autoinstall Quick Start
preinstall
apt install p7zip-full isolinux -yPull ISO Image
$ wget -P ~/ https://releases.ubuntu.com/22.04/ubuntu-22.04.5-live-server-amd64.isogit clone
$ git clone https://github.com/condensereality/ubuntu-22.04-autoinstall-generator$ cd ubuntu-22.04-autoinstall-generator접속 비밀번호 생성
$ openssl passwd -6 '비밀번호'
# 출력된값을 user-data에서 사용user-data설정 샘플
$ vi user-data#cloud-config
autoinstall:
version: 1
identity:
hostname: ubuntu-server
password: "위에서출력된 비밀번호값"
username: ubuntumeta-data파일생성
데이터는 비어있어도 되지만 파일은 필요하다.
$ touch meta-dataISO Image Build
# -s 이미지는 다운 받아놓아야하고
# -m meta-data는 비어있어도됨
# -u user-data는 필요하고 내용채울것.
# -d 출력결과
$ ./ubuntu-autoinstall-generator.sh -a -k -u ./user-data -m ./meta-data -s ~/ubuntu-22.04.5-live-server-amd64.iso -d ubuntu-22.04-autoinstall.isovm 생성

생성을 누르면 알아서 진행된다.

완료된 결과

Network Interface
dhcp설정으로 자동으로 ip를 받게하고 정적으로 dns설정을 해야한다면 아래 템플릿을 이용할 수 있다.
#cloud-config
autoinstall:
version: 1
identity:
hostname: ubuntu-autoins
# openssl passwd -6 '비밀번호'
password: "password"
username: ubuntu
ssh:
install-server: true
allow-pw: true
network:
version: 2
ethernets:
primary:
match:
name: "en*"
dhcp4: true
dhcp6: false
nameservers:
addresses:
- 8.8.8.8
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
late-commands:
- systemctl poweroffDisk
Disk 수동 확장
disk크기를 100GB로 부여하고 autoinstall을 하면 disk를 전부사용하지 않고 있는 것을 확인 할수 있다.

lv 타입으로 생성된경우 vm내부에서 아래 명령어로 확장할수 있다.
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
