Add libvirt helpers
This commit is contained in:
parent
f4e9b627f8
commit
6a5b1e8451
4 changed files with 108 additions and 0 deletions
46
virt-install/cmd.sh
Normal file
46
virt-install/cmd.sh
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# sudo dnf install -y guestfs-tools
|
||||||
|
|
||||||
|
# sudo dnf install virt-viewer ??
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
qemu-img create -f qcow2 -o preallocation=metadata test.qcow2 100G
|
||||||
|
|
||||||
|
virt-resize --expand /dev/sda3 /home/ncox/Downloads/rhel-guest-image-8.4-1269.x86_64.qcow2 ./test.qcow2
|
||||||
|
|
||||||
|
# Run under sudo - won't work as a user mode install
|
||||||
|
sudo virt-install \
|
||||||
|
--os-variant rhel8.4 \
|
||||||
|
--name test \
|
||||||
|
--memory 2048 \
|
||||||
|
--disk ./test.qcow2 \
|
||||||
|
--import \
|
||||||
|
--graphics spice,listen=0.0.0.0 \
|
||||||
|
--video virtio \
|
||||||
|
--channel spicevmc \
|
||||||
|
--wait 0 \
|
||||||
|
--cloud-init meta-data=./meta-data,user-data=./user-data \
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--network \
|
||||||
|
--network
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--network br0 \
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--extra-args "ip=192.168.1.2::192.168.1.1:255.255.255.0:test.example.com:eth0:none"
|
||||||
|
|
||||||
|
[root@rhel-8 ~]# virt-install
|
||||||
|
--name centos8-2 --memory 10240 --vcpus=2
|
||||||
|
--cdrom=/tmp/rhel-server-7.6-x86_64-dvd.iso
|
||||||
|
--disk path=/disks/centos8-2.qcow2,size=20,format=qcow2
|
||||||
|
--network bridge=nm-bridge --graphics=vnc -v
|
||||||
|
|
||||||
|
Starting install...
|
||||||
54
virt-install/create_aio_vm.py
Normal file
54
virt-install/create_aio_vm.py
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
import argparse
|
||||||
|
import pathlib
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
MD_PATH = "./meta-data"
|
||||||
|
UD_PATH = "./user-data"
|
||||||
|
|
||||||
|
def parse_args():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("--password", required=True)
|
||||||
|
parser.add_argument("--public-key", required=True, type=open)
|
||||||
|
parser.add_argument("--local-hostname", default="aio3.gpslab.cbr.redhat.com")
|
||||||
|
parser.add_argument("--user-data", default="./user-data.tpl", type=open)
|
||||||
|
parser.add_argument("--meta-data", default="./meta-data.tpl", type=open)
|
||||||
|
parser.add_argument("--instance-id", default="aio3")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
args.public_key = args.public_key.read()
|
||||||
|
|
||||||
|
args.user_data = args.user_data.read()
|
||||||
|
args.user_data = args.user_data.format(data=args)
|
||||||
|
|
||||||
|
args.meta_data = args.meta_data.read()
|
||||||
|
args.meta_data = args.meta_data.format(data=args)
|
||||||
|
|
||||||
|
return args
|
||||||
|
|
||||||
|
def write_user_data(user_data):
|
||||||
|
with open(UD_PATH, "w", encoding="utf-8") as user_data_file:
|
||||||
|
user_data_file.write(user_data)
|
||||||
|
|
||||||
|
def write_meta_data(meta_data):
|
||||||
|
with open(MD_PATH, "w", encoding="utf-8") as meta_data_file:
|
||||||
|
meta_data_file.write(meta_data)
|
||||||
|
|
||||||
|
def delete_meta_data():
|
||||||
|
pathlib.Path.unlink(MD_PATH)
|
||||||
|
|
||||||
|
def delete_user_data():
|
||||||
|
pathlib.Path.unlink(UD_PATH)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
args = parse_args()
|
||||||
|
|
||||||
|
print(args)
|
||||||
|
write_meta_data(args.meta_data)
|
||||||
|
write_user_data(args.user_data)
|
||||||
|
|
||||||
|
delete_meta_data()
|
||||||
|
delete_user_data()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
2
virt-install/meta-data.tpl
Normal file
2
virt-install/meta-data.tpl
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
instance-id: {data.instance_id}
|
||||||
|
local-hostname: {data.local_hostname}
|
||||||
6
virt-install/user-data.tpl
Normal file
6
virt-install/user-data.tpl
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#cloud-config
|
||||||
|
password: {data.password}
|
||||||
|
chpasswd: {{expire: False}}
|
||||||
|
ssh_pwauth: True
|
||||||
|
ssh_authorized_keys:
|
||||||
|
- {data.public_key}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue