ابتدا تنظیمات اولیه را طبق مراحل زیر انجام میدهیم تا پکیج های مورد نیاز نصب و آماده سازی اولیه انجام گردد.
# Install packages
zypper install wget open-vm-tools cloud-init curl
systemctl enable cloud-init-local.service
systemctl enable cloud-init.service
systemctl enable cloud-config.service
systemctl enable cloud-final.service
# 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
# 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
grub2-mkconfig -o /boot/grub2/grub.cfg
# Set timezone
timedatectl set-timezone Asia/Tehran
# Create swap file
touch /swap.img
chattr +C /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
# Allow login to console with blank password
pam-config -a --nullok
# 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
پس از انجام مراحل اولیه تنظیمات نهایی را طبق دستورات زیر انجام میدهیم.
zypper purge-kernels
zypper clean -a
cloud-init clean -ls
rm -rf /var/log/* /root/.bash_history /root/.cache/ /root/.ssh/ /root/.viminfo /root/.password.md5 /var/lib/dhcp/*.leases
rm -f /etc/udev/rules.d/70-persistent-net.rules
passwd -d root
unset HISTFILE
history -c
shutdown -h now