Virt-install usage example: Difference between revisions
From Newroco Tech Docs
Jump to navigationJump to search
(Created page with "<pre> #!/bin/bash #####Setup up for the guest host_name='peon04' user_name='mmaireanu' password='parolamea' virt_ram='1024' disk_path='/var/lib/kvm' disk_size='9' virt_cpu...") |
No edit summary |
||
Line 1: | Line 1: | ||
<pre> | ==Building VMs with virt-install== | ||
#!/bin/bash | The script that builds the VM: | ||
<pre>#!/bin/bash | |||
#####Setup up for the guest | #####Setup up for the guest | ||
host_name=' | host_name='myhostname' | ||
user_name=' | user_name='myusername' | ||
password=' | password='mypassword' | ||
virt_ram=' | distro='bionic' | ||
virt_ram='2048' | |||
disk_path='/var/lib/kvm' | disk_path='/var/lib/kvm' | ||
disk_size= | disk_size=9 | ||
virt_cpu=' | virt_cpu='2' | ||
network_bridge="br0" | network_bridge="br0" | ||
ip_adress='192.168.0. | ip_adress='192.168.0.36' | ||
netmask='255.255.255.0' | netmask='255.255.255.0' | ||
gateway='192.168.0.1' | gateway='192.168.0.1' | ||
nameservers='192.168.0.1' | nameservers='192.168.0.1' | ||
##### Change | ##### Change variables into the preseed.cfg file | ||
sed -i "s|^d-i netcfg/get_hostname string.*|d-i netcfg/get_hostname string $host_name|" | sed -i "s|^d-i netcfg/get_hostname string.*|d-i netcfg/get_hostname string $host_name|" preseed.cfg | ||
sed -i "s|^d-i netcfg/get_domain string.*|d-i netcfg/get_domain string $host_name|" | sed -i "s|^d-i netcfg/get_domain string.*|d-i netcfg/get_domain string $host_name|" preseed.cfg | ||
sed -i "s|^d-i netcfg/get_ipaddress string.*|d-i netcfg/get_ipaddress string $ip_adress|" | sed -i "s|^d-i netcfg/get_ipaddress string.*|d-i netcfg/get_ipaddress string $ip_adress|" preseed.cfg | ||
sed -i "s|^d-i netcfg/get_netmask string.*|d-i netcfg/get_netmask string $netmask|" | sed -i "s|^d-i netcfg/get_netmask string.*|d-i netcfg/get_netmask string $netmask|" preseed.cfg | ||
sed -i "s|^d-i netcfg/get_gateway string.*|d-i netcfg/get_gateway string $gateway|" | sed -i "s|^d-i netcfg/get_gateway string.*|d-i netcfg/get_gateway string $gateway|" preseed.cfg | ||
sed -i "s|^d-i netcfg/get_nameservers string.*|d-i netcfg/get_nameservers string $nameservers|" | sed -i "s|^d-i netcfg/get_nameservers string.*|d-i netcfg/get_nameservers string $nameservers|" preseed.cfg | ||
sed -i "s|^d-i passwd/user-fullname string.*|d-i passwd/user-fullname string $user_name|" | sed -i "s|^d-i passwd/user-fullname string.*|d-i passwd/user-fullname string $user_name|" preseed.cfg | ||
sed -i "s|^d-i passwd/username string.*|d-i passwd/username string $user_name|" | sed -i "s|^d-i passwd/username string.*|d-i passwd/username string $user_name|" preseed.cfg | ||
sed -i "s|^d-i passwd/user-password password.*|d-i passwd/user-password password $password|" | sed -i "s|^d-i passwd/user-password password.*|d-i passwd/user-password password $password|" preseed.cfg | ||
sed -i "s|^d-i passwd/user-password-again password.*|d-i passwd/user-password-again password $password|" | sed -i "s|^d-i passwd/user-password-again password.*|d-i passwd/user-password-again password $password|" preseed.cfg | ||
##### Create folder where disk will be stored | ##### Create folder where disk will be stored | ||
Line 43: | Line 45: | ||
--name $host_name \ | --name $host_name \ | ||
--ram $virt_ram \ | --ram $virt_ram \ | ||
--disk path=${disk_path}/${host_name}/${host_name}.qcow2,size=${ | --disk path=${disk_path}/${host_name}/${host_name}.qcow2,size=${disk_size},format=qcow2,bus=virtio \ | ||
--vcpus ${virt_cpu} \ | --vcpus ${virt_cpu} \ | ||
--os-type linux \ | --os-type linux \ | ||
--os-variant | --os-variant auto \ | ||
--autostart \ | --autostart \ | ||
--network bridge=$network_bridge \ | --network bridge=$network_bridge \ | ||
--graphics none \ | --graphics none \ | ||
--console pty,target_type=serial \ | --console pty,target_type=serial \ | ||
--location | --location "http://archive.ubuntu.com/ubuntu/dists/${distro}/main/installer-amd64/" \ | ||
--initrd-inject= | --initrd-inject=preseed.cfg \ | ||
--extra-args 'locale=en_US auto=true priority=critical console=ttyS0,115200n8 serial file=file:/preseed.cfg' | --extra-args 'locale=en_US auto=true priority=critical console=ttyS0,115200n8 serial file=file:/preseed.cfg'</pre> | ||
</pre> | |||
preseed.cfg file can be found [[preseed file|here]]. |
Revision as of 12:53, 21 June 2018
Building VMs with virt-install
The script that builds the VM:
#!/bin/bash #####Setup up for the guest host_name='myhostname' user_name='myusername' password='mypassword' distro='bionic' virt_ram='2048' disk_path='/var/lib/kvm' disk_size=9 virt_cpu='2' network_bridge="br0" ip_adress='192.168.0.36' netmask='255.255.255.0' gateway='192.168.0.1' nameservers='192.168.0.1' ##### Change variables into the preseed.cfg file sed -i "s|^d-i netcfg/get_hostname string.*|d-i netcfg/get_hostname string $host_name|" preseed.cfg sed -i "s|^d-i netcfg/get_domain string.*|d-i netcfg/get_domain string $host_name|" preseed.cfg sed -i "s|^d-i netcfg/get_ipaddress string.*|d-i netcfg/get_ipaddress string $ip_adress|" preseed.cfg sed -i "s|^d-i netcfg/get_netmask string.*|d-i netcfg/get_netmask string $netmask|" preseed.cfg sed -i "s|^d-i netcfg/get_gateway string.*|d-i netcfg/get_gateway string $gateway|" preseed.cfg sed -i "s|^d-i netcfg/get_nameservers string.*|d-i netcfg/get_nameservers string $nameservers|" preseed.cfg sed -i "s|^d-i passwd/user-fullname string.*|d-i passwd/user-fullname string $user_name|" preseed.cfg sed -i "s|^d-i passwd/username string.*|d-i passwd/username string $user_name|" preseed.cfg sed -i "s|^d-i passwd/user-password password.*|d-i passwd/user-password password $password|" preseed.cfg sed -i "s|^d-i passwd/user-password-again password.*|d-i passwd/user-password-again password $password|" preseed.cfg ##### Create folder where disk will be stored mkdir -p /var/lib/kvm/${host_name} #### Run virt-install command virt-install \ --name $host_name \ --ram $virt_ram \ --disk path=${disk_path}/${host_name}/${host_name}.qcow2,size=${disk_size},format=qcow2,bus=virtio \ --vcpus ${virt_cpu} \ --os-type linux \ --os-variant auto \ --autostart \ --network bridge=$network_bridge \ --graphics none \ --console pty,target_type=serial \ --location "http://archive.ubuntu.com/ubuntu/dists/${distro}/main/installer-amd64/" \ --initrd-inject=preseed.cfg \ --extra-args 'locale=en_US auto=true priority=critical console=ttyS0,115200n8 serial file=file:/preseed.cfg'
preseed.cfg file can be found here.