MAAS에서 UEFI KVM 게스트 만들기
소개
지난번 만든 MAAS 환경에서 KVM 게스트 관리도 하려고 했는데, PXE 설정을 UEFI 전용으로 하고 있었기 때문에, 그대로는 KVM 게스트를 작성할 수 없었습니다.
환경
MAAS 서버
· 우분투 20.04 arm64
· MAAS 2.9
· MAAS의 설치는 apt에서 실시
KVM 서버 (MAAS를 사용하여 OS 설치됨)
· 우분투 20.04 amd64
· MAAS에 배포 할 때 "Register as MAAS KVM host"옵션이 부여되었습니다.
KVM측 대응
KVM/QEMU용 UEFI 펌웨어 OVMF를 설치합니다.
$ sudo apt install ovmf
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
ovmf はすでに最新バージョン (0~20191122.bd85bf54-2ubuntu3.1) です。
ovmf は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
이번에는 이미 설치되었습니다.
MAAS측 대응
MAAS 리포지토리에서 KVM 게스트를 만드는 과정을 찾으면 다음과 같이 진행되었습니다.
htps : // 기주 b. 이 m/뭐 s/뭐 s/bぉb/2. py
libvirt 용 XML 파일을 생성하여 게스트를 만드는 모습.
이것에 손을 넣어 OVMF를 이용하도록 합니다.
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram template='/usr/share/OVMF/OVMF_VARS.fd'></nvram>
을 XML 템플릿 부분에 추가합니다.
apt package로 MAAS를 설치한 경우,
"/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/virsh.py"에 해당 파일이 있으므로 이것에 추가.
DOM_TEMPLATE_AMD64 = dedent(
"""\
<domain type='{type}'>
<name>{name}</name>
<uuid>{uuid}</uuid>
<memory unit='MiB'>{memory}</memory>
<vcpu>{cores}</vcpu>
<os>
<type arch="{arch}">hvm</type>
+ <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
+ <nvram template='/usr/share/OVMF/OVMF_VARS.fd'></nvram>
</os>
<features>
<acpi/>
<apic/>
</features>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>{emulator}</emulator>
<controller type='pci' index='0' model='pci-root'/>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000'
bus='0x00' slot='0x05' function='0x0'/>
</controller>
<serial type='pty'>
<log file="/var/log/libvirt/qemu/{name}-serial0.log" append="off" />
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<graphics type='spice' autoport='yes'>
<image compression='off'/>
</graphics>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
</devices>
</domain>
"""
)
KVM 게스트 배포
브라우저에서 MAAS에 로그인하고 상단 메뉴에서 "KVM"을 선택, 게스트를 배치하는 KVM 호스트를 선택하고 "Take Action"버튼에서 "Compose"를 선택.
게스트의 이름과 사양을 입력하고 Compose Machine 버튼을 클릭합니다.
Machines 목록에 KVM 게스트가 추가되어 Commissioning이 움직입니다.
Commissioning이 끝나면, 나머지는 온프레 기기와 마찬가지로 OS를 Deploy 가능하게 됩니다.
손님에게 우분투를 배포하고 로그인하면,
$ ls /sys/firmware/efi/
config_table efivars fw_platform_size fw_vendor runtime runtime-map systab vars
그리고 UEFI로 부팅 중인지 확인할 수 있습니다.
결론
코드를 직접 재작성한다는 고리 누르기 방법이므로, 다른 스마트한 손이 있으면 알고 싶은 곳.
Reference
이 문제에 관하여(MAAS에서 UEFI KVM 게스트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/cff7fd4384416f77e04b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MAAS 서버
· 우분투 20.04 arm64
· MAAS 2.9
· MAAS의 설치는 apt에서 실시
KVM 서버 (MAAS를 사용하여 OS 설치됨)
· 우분투 20.04 amd64
· MAAS에 배포 할 때 "Register as MAAS KVM host"옵션이 부여되었습니다.
KVM측 대응
KVM/QEMU용 UEFI 펌웨어 OVMF를 설치합니다.
$ sudo apt install ovmf
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
ovmf はすでに最新バージョン (0~20191122.bd85bf54-2ubuntu3.1) です。
ovmf は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
이번에는 이미 설치되었습니다.
MAAS측 대응
MAAS 리포지토리에서 KVM 게스트를 만드는 과정을 찾으면 다음과 같이 진행되었습니다.
htps : // 기주 b. 이 m/뭐 s/뭐 s/bぉb/2. py
libvirt 용 XML 파일을 생성하여 게스트를 만드는 모습.
이것에 손을 넣어 OVMF를 이용하도록 합니다.
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram template='/usr/share/OVMF/OVMF_VARS.fd'></nvram>
을 XML 템플릿 부분에 추가합니다.
apt package로 MAAS를 설치한 경우,
"/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/virsh.py"에 해당 파일이 있으므로 이것에 추가.
DOM_TEMPLATE_AMD64 = dedent(
"""\
<domain type='{type}'>
<name>{name}</name>
<uuid>{uuid}</uuid>
<memory unit='MiB'>{memory}</memory>
<vcpu>{cores}</vcpu>
<os>
<type arch="{arch}">hvm</type>
+ <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
+ <nvram template='/usr/share/OVMF/OVMF_VARS.fd'></nvram>
</os>
<features>
<acpi/>
<apic/>
</features>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>{emulator}</emulator>
<controller type='pci' index='0' model='pci-root'/>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000'
bus='0x00' slot='0x05' function='0x0'/>
</controller>
<serial type='pty'>
<log file="/var/log/libvirt/qemu/{name}-serial0.log" append="off" />
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<graphics type='spice' autoport='yes'>
<image compression='off'/>
</graphics>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
</devices>
</domain>
"""
)
KVM 게스트 배포
브라우저에서 MAAS에 로그인하고 상단 메뉴에서 "KVM"을 선택, 게스트를 배치하는 KVM 호스트를 선택하고 "Take Action"버튼에서 "Compose"를 선택.
게스트의 이름과 사양을 입력하고 Compose Machine 버튼을 클릭합니다.
Machines 목록에 KVM 게스트가 추가되어 Commissioning이 움직입니다.
Commissioning이 끝나면, 나머지는 온프레 기기와 마찬가지로 OS를 Deploy 가능하게 됩니다.
손님에게 우분투를 배포하고 로그인하면,
$ ls /sys/firmware/efi/
config_table efivars fw_platform_size fw_vendor runtime runtime-map systab vars
그리고 UEFI로 부팅 중인지 확인할 수 있습니다.
결론
코드를 직접 재작성한다는 고리 누르기 방법이므로, 다른 스마트한 손이 있으면 알고 싶은 곳.
Reference
이 문제에 관하여(MAAS에서 UEFI KVM 게스트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/cff7fd4384416f77e04b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sudo apt install ovmf
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
ovmf はすでに最新バージョン (0~20191122.bd85bf54-2ubuntu3.1) です。
ovmf は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
MAAS 리포지토리에서 KVM 게스트를 만드는 과정을 찾으면 다음과 같이 진행되었습니다.
htps : // 기주 b. 이 m/뭐 s/뭐 s/bぉb/2. py
libvirt 용 XML 파일을 생성하여 게스트를 만드는 모습.
이것에 손을 넣어 OVMF를 이용하도록 합니다.
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram template='/usr/share/OVMF/OVMF_VARS.fd'></nvram>
을 XML 템플릿 부분에 추가합니다.
apt package로 MAAS를 설치한 경우,
"/usr/lib/python3/dist-packages/provisioningserver/drivers/pod/virsh.py"에 해당 파일이 있으므로 이것에 추가.
DOM_TEMPLATE_AMD64 = dedent(
"""\
<domain type='{type}'>
<name>{name}</name>
<uuid>{uuid}</uuid>
<memory unit='MiB'>{memory}</memory>
<vcpu>{cores}</vcpu>
<os>
<type arch="{arch}">hvm</type>
+ <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
+ <nvram template='/usr/share/OVMF/OVMF_VARS.fd'></nvram>
</os>
<features>
<acpi/>
<apic/>
</features>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>{emulator}</emulator>
<controller type='pci' index='0' model='pci-root'/>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000'
bus='0x00' slot='0x05' function='0x0'/>
</controller>
<serial type='pty'>
<log file="/var/log/libvirt/qemu/{name}-serial0.log" append="off" />
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<graphics type='spice' autoport='yes'>
<image compression='off'/>
</graphics>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
</devices>
</domain>
"""
)
KVM 게스트 배포
브라우저에서 MAAS에 로그인하고 상단 메뉴에서 "KVM"을 선택, 게스트를 배치하는 KVM 호스트를 선택하고 "Take Action"버튼에서 "Compose"를 선택.
게스트의 이름과 사양을 입력하고 Compose Machine 버튼을 클릭합니다.
Machines 목록에 KVM 게스트가 추가되어 Commissioning이 움직입니다.
Commissioning이 끝나면, 나머지는 온프레 기기와 마찬가지로 OS를 Deploy 가능하게 됩니다.
손님에게 우분투를 배포하고 로그인하면,
$ ls /sys/firmware/efi/
config_table efivars fw_platform_size fw_vendor runtime runtime-map systab vars
그리고 UEFI로 부팅 중인지 확인할 수 있습니다.
결론
코드를 직접 재작성한다는 고리 누르기 방법이므로, 다른 스마트한 손이 있으면 알고 싶은 곳.
Reference
이 문제에 관하여(MAAS에서 UEFI KVM 게스트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ussvgr/items/cff7fd4384416f77e04b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ ls /sys/firmware/efi/
config_table efivars fw_platform_size fw_vendor runtime runtime-map systab vars
코드를 직접 재작성한다는 고리 누르기 방법이므로, 다른 스마트한 손이 있으면 알고 싶은 곳.
Reference
이 문제에 관하여(MAAS에서 UEFI KVM 게스트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ussvgr/items/cff7fd4384416f77e04b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)