- Hướng dẫn này dành cho các image không sử dụng LVM
- Sử dụng công cụ virt-manager hoặc web-virt để kết nối tới console máy ảo
- OS cài đặt KVM là Ubuntu 20.04
- Phiên bản OpenStack sử dụng là Queens
- Hướng dẫn bao gồm 2 phần chính: thực hiện trên máy ảo cài OS và thực hiện trên KVM Host
Chọn English
Chọn Continue without updating
Chọn Done
Chọn Done
Chọn Done
Chọn Done
Chọn Use an entire disk
> Done
. Lưu ý: KHÔNG DÙNG OPTION THIẾT LẬP DISK dạng LVM
Chọn Done
Điền các thông tin cho máy ảo. User mặc định được sử dụng là ubuntu.
Chọn cài đặt Install OpenSSH Server
.
Bỏ qua các option, kéo xuống chọn Done
.
Quá trình cài đặt Ubuntu 20.04 bắt đầu.
Chọn Cancel update and reboot
, lưu ý ĐỢI VM REBOOT VÀO ĐƯỢC OS RỒI MỚI THỰC HIỆN BƯỚC TIẾP THEO
Kết quả
Login
Kiểm tra dịch vụ SSH
Lưu ý nếu dịch vụ SSH không khởi động được, thực hiện
sudo ssh-keygen -A
sudo systemctl restart sshd
Lưu ý:
- Chỉnh sửa file .xml của máy ảo, bổ sung thêm channel trong (để máy host giao tiếp với máy ảo sử dụng qemu-guest-agent), sau đó save lại
Truy cập Settings
> XML
> EDIT SETTINGS
Nếu đã tồn tại channel đổi port channel này về port='2' và add channel bình thường
Định dạng
<devices>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
</devices>
Login ssh với tài khoản ubuntu
, chuyển user sudo
sudo su
Đặt mật khẩu cho root
passwd
Enter new UNIX password: <root_passwd>
Retype new UNIX password: <root_passwd>
Cấu hình cho phép ssh bằng user root /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/'g /etc/ssh/sshd_config
service sshd restart
Disable firewalld
systemctl disable ufw
systemctl stop ufw
systemctl status ufw
Khởi động lại VM
init 6
Login lại bằng user root
Xóa user ubuntu
userdel ubuntu
rm -rf /home/ubuntu
Đổi timezone về Asia/Ho_Chi_Minh
timedatectl set-timezone Asia/Ho_Chi_Minh
Bổ sung env locale
echo "export LC_ALL=C" >> ~/.bashrc
Thực hiện
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p
Kiểm tra
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Lưu ý: Kết quả ra 1
=> Tắt thành công, 0
tức IPv6 vẫn bật
Kiểm tra swap:
cat /proc/swaps
Filename Type Size Used Priority
/swap.img file 2009084 780 -2
Xóa swap
swapoff -a
rm -rf /swap.img
Xóa cấu hình swap file trong file /etc/fstab
sed -Ei '/swap.img/d' /etc/fstab
Kiểm tra lại:
free -m
total used free shared buff/cache available
Mem: 981 134 223 0 623 690
Swap: 0 0 0
apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove
sed -i 's|GRUB_CMDLINE_LINUX=""|GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 console=tty1 console=ttyS0"|g' /etc/default/grub
update-grub
Xóa netplan
apt-get --purge remove netplan.io -y
rm -rf /usr/share/netplan
rm -rf /etc/netplan
Cài đặt ifupdown
apt-get update
apt-get install -y ifupdown
Tạo file interface
cat << EOF > /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
EOF
Lưu ý
- Khởi động lại, kiểm tra SSH
Để sau khi boot máy ảo, có thể nhận đủ các NIC gắn vào:
apt-get install netplug -y
wget https://raw.githubusercontent.com/danghai1996/thuctapsinh/master/HaiDD/CreateImage/scripts/netplug_ubuntu -O netplug
mv netplug /etc/netplug/netplug
chmod +x /etc/netplug/netplug
Kiểm tra snap:
df -H
List danh sách snap
snap list
Để xóa, ta sử dụng lệnh snap remove <package>
: lxd
-> core18
-> snapd
snap remove lxd
snap remove core18
snap remove snapd
Remove snapd package
apt purge snapd -y
Xóa các thự mục snap
rm -rf ~/snap
rm -rf /snap
rm -rf /var/snap
rm -rf /var/lib/snapd
Kiểm tra lại:
df -H
Cài đặt cloud-init
apt-get install -y cloud-init
Cấu hình user mặc định
sed -i 's/name: ubuntu/name: root/g' /etc/cloud/cloud.cfg
Disable default config route
sed -i 's|link-local 169.254.0.0|#link-local 169.254.0.0|g' /etc/networks
Cấu hình datasource, bỏ chọn mục NoCloud bằng cách dùng dấu SPACE, sau đó ấn ENTER
dpkg-reconfigure cloud-init
Clean cấu hình và restart service
cloud-init clean
systemctl restart cloud-init
systemctl enable cloud-init
systemctl status cloud-init
Lưu ý: Việc restart có thể mất 2-3 phút hoặc hơn (Nếu quá lâu có thể bỏ qua bước restart cloud-init)
Chú ý: qemu-guest-agent là một daemon chạy trong máy ảo, giúp quản lý và hỗ trợ máy ảo khi cần (có thể cân nhắc việc cài thành phần này lên máy ảo)
Để có thể thay đổi password máy ảo bằng nova-set password thì phiên bản qemu-guest-agent phải >= 2.5.0
apt-get install software-properties-common -y
apt-get update -y
apt-get install qemu-guest-agent -y
service qemu-guest-agent start
Kiểm tra phiên bản qemu-ga bằng lệnh:
qemu-ga --version
service qemu-guest-agent status
curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/ghichep-cmdlog/master/cmdlog.sh | bash
Clear toàn bộ history
apt-get clean all
rm -f /var/log/wtmp /var/log/btmp
history -c
> /var/log/cmdlog.log
Tắt VM
init 0
virt-sysprep -d OPS_Template_Ubuntu2004
virt-sparsify --compress --convert qcow2 /var/lib/libvirt/images/OPS_Template_Ubuntu2004.qcow2 U20-Blank
glance image-create --name U20-Blank --disk-format qcow2 --container-format bare --file U20-Blank --visibility=public --property hw_qemu_guest_agent=yes --progress