ابتدا تنظیمات اولیه را طبق مراحل زیر انجام میدهیم تا پکیج های مورد نیاز نصب و آماده سازی اولیه انجام گردد.
# Install packages
apt install -y wget open-vm-tools cloud-init curl
# Enable memory and cpu hotplug
echo 'ACTION=="add", SUBSYSTEM=="cpu", ATTR{online}="1"
ACTION=="add", SUBSYSTEM=="memory", ATTR{state}="online"' > /etc/udev/rules.d/99-vmware-hotplug-udev.rules
# Permit root login
sed -i "/PermitRootLogin/d" /etc/ssh/sshd_config && echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
# Disable predictable interface name
sed -i -r 's/GRUB_CMDLINE_LINUX="(.*)"/GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 \1"/g' /etc/default/grub
# Update netplan or interfaces file and change interface name to legacy names
# Disable UUID for partitions in grub config
echo 'GRUB_DISABLE_LINUX_UUID="true"' >> /etc/default/grub
# Replace UUID in /etc/fstab with device file name
# Recreate grub configuration
grub-mkconfig -o /boot/grub/grub.cfg
# Set timezone
timedatectl set-timezone Asia/Tehran
# Activate local repository mirror for ubuntu
sed -i -r 's#http://.*/ubuntu#http://ubuntu.mirror.afranet.com/ubuntu#g' /etc/apt/sources.list
# Create swap file (if needed)
touch /swap.img
chmod 600 /swap.img
dd if=/dev/zero of=/swap.img bs=1024k count=2000
mkswap /swap.img
swapon /swap.img
echo "/swap.img none swap sw 0 0" >> /etc/fstab
# Download password and ssh key management script
curl https://shop.afranet.net/files/cloud-password-manager -o /usr/sbin/cloud-password-manager
chmod +x /usr/sbin/cloud-password-manager
# Activate ConfigSDrive and CloudStack datasource in Cloud-init
echo 'datasource: ConfigDrive, CloudStack' > /etc/cloud/ds-identify.cfg
# Configure Cloud-init
curl https://shop.afranet.net/files/cloud-init.cfg -o /etc/cloud/cloud.cfg.d/zzz-afracloud.cfg
پس از انجام مراحل اولیه تنظیمات نهایی را طبق دستورات زیر انجام میدهیم.
apt clean
cloud-init clean -ls
rm -rf /var/log/* /root/.bash_history /root/.cache/ /root/.ssh/ /root/.viminfo /root/snap /root/.password.md5 /var/lib/dhcp/*.leases
passwd -d root
unset HISTFILE
history -c
shutdown -h now