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='peon04'
host_name='myhostname'
user_name='mmaireanu'
user_name='myusername'
password='parolamea'
password='mypassword'


virt_ram='1024'
distro='bionic'
virt_ram='2048'
disk_path='/var/lib/kvm'
disk_path='/var/lib/kvm'
disk_size='9'
disk_size=9
virt_cpu='1'
virt_cpu='2'


network_bridge="br0" # virbr0
network_bridge="br0"
ip_adress='192.168.0.207'
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 variable into the preseed.cfg file
##### Change variables into the preseed.cfg file


sed -i "s|^d-i netcfg/get_hostname string.*|d-i netcfg/get_hostname string $host_name|" /home/mmaireanu/virt-install/preseed.cfg
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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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|" /home/mmaireanu/virt-install/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
##### 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_cpu},format=qcow2,bus=virtio \
--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 ubuntu16.04 \
--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 'http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/' \
--location "http://archive.ubuntu.com/ubuntu/dists/${distro}/main/installer-amd64/" \
--initrd-inject=/home/mmaireanu/virt-install/preseed.cfg \
--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.