Selasa, 18 Juni 2019

Install and Configure KVM on Ubuntu 18.04

We can use VirtualBox or KVM on Ubuntu to do virtualization, we often use virtual machine for development, not necessarily on a server, we can use KVM on Ubuntu Desktop.

To setup KVM on Ubuntu 18.04, perform the following steps:

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install qemu qemu-kvm libvirt-bin  bridge-utils  virt-manager

What the command does:

1. Update and upgrade Ubuntu
2. Install required packages for running KVM
3. We use qemu and qemu-kvm for hypervisor
4. bridge-utils for working with network bridge
5. virt-manager is GUI application for KVM.

Let see our new network interface created by bridge-utils and KVM by running "ip a" command:

4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:2f:e6:3c brd ff:ff:ff:ff:ff:ff
    inet brd scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:2f:e6:3c brd ff:ff:ff:ff:ff:ff

Now, there are two new network interfaces, those are bridge network interface created by libvirt, we can use virbr0 for bridge network with our virtual machine.

Lets run a virtual machine for testing, we will use CentOS minimal as a guest OS, before that, download CentOS minimal image, and put it where ever you want, and the run the following command:

$ virt-install --virt-type=kvm --name centos7 --ram 2000 --vcpus=2 --os-variant=centos7.0 --network=bridge=virbr0,model=virtio --graphics vnc  --cdrom=/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-1810.iso --disk path=/var/lib/libvirt/images/centos.qcow2,size=10,bus=virtio,format=qcow2

We create a virtual machine, with 2GB ram, and 2 cpus, using CentOS 7 as a guest OS, and we create 10GB virtual disk.

That's all.

Nested Virtualization KVM on CentOS 7

Nested Virtualization is disabled by default on CentOS 7, we can verify by running a command:

# cat /sys/module/kvm_intel/parameters/nested

Make sure KVM is intalled on the machine, if output is N, then Nested Virtualization is disabled, to enable the feature, set options kvm-intel nested=1 in /etc/modprobe.d/kvm-nested.conf

# echo "options kvm-intel nested=1" > /etc/modprobe.d/kvm-nested.conf

Reboot the machine, and verify like above command.

Selasa, 26 Maret 2019

Delete All Comments in a File With VS Code

What if you want to delete all comments in a file with VS Code? VS Code has a find and replace feature that support regular expression, so we can use that feature to automatically find line starting with hash (#), Here we go: 1. Press ctrl + f 2. Click on "Use regular expression" button on "find and replace" widget 3. Type the regular expression: ^#.*$\n 4. Leave the "Replace" field empty 5. Click "Replace All" button And all of your comment deleted, actually it is replaced by the empty character. Notes ^#.*$\n : • ^ = matches position just before the first character of the string • # = character that we want to find • . = matches a single character. Does not matter what character it is, except newline • * = matches preceding match zero or more times • $ = matches position just after the last character of the string • \n = Line feed character

7 GNU Screen Commands To Make Your Life Easier

Here 7 GNU Screen commands that could make your life easier:

* ^A ^W - window list
* ^A ^C - create new window
* ^A space - next window
* ^A p - previous window
* ^A ^A - switch to previous screen
* ^A [0-9] - go to window [0-9]
* ^A esc - copy mode