AUTOVM Blog > News > Add Ubuntu 22.…
Add Ubuntu 22.04 and Debian 11 on AutoVM
By Alireza Mahdavi | 21 October 2022 | 1372 views
Ubuntu 22.04 and Debian 11 has been released for AutoVM platform.
Download and deploy OVA templates into your servers. Ubuntu and Debian link.
Then go to “AutoVM admin area > Template > Template > Create” and enter the following details:
Name: Debian 11 64
Username: root
Password: 123QWEqwe
Clue: debian_11_64
Icon: Debian
Click on save and click on Create icon again and enter the following details for Ubuntu:
Name: ubuntu 22.04 64
Username: root
Password: 123QWEqwe
Clue: ubuntu_22_64
Icon: Ubuntu
Click on save and go to “Template > Script > Create” and enter the following details for Debian:
Name: Setup
Template: Debian 11 64
Type: Setup
Where is program: /bin/bash
Where to upload: /home/setup.sh
How to execute: /home/setup.sh
Enter the following code into the “Content” part:
#!/bin/bash
# FIND DETAILS
details=$(cat /etc/os-release)
# FIND DIST
dist=$(echo "$details" | grep ^ID= | grep -Eo [a-z]+)
# FIND VERSION
version=$(echo "$details" | grep ^VERSION= | grep -Eo [0-9]+ | head -n 1)
# FIND NAME
name=$(ls /sys/class/net | head -n 1)
# NETMASK SCRIPT
cat <<EOF > /etc/cidr.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('netmask')
args = parser.parse_args()
cidr = 0
for bits in args.netmask.split('.'):
bits = bin(int(bits)).count('1')
cidr = cidr + bits
print(cidr)
EOF
# DEBIAN
function debianIP {
cat <<EOF > /etc/network/interfaces
auto lo
iface lo inet loopback
auto $name
iface $name inet static
address @address
netmask @netmask
gateway @gateway
dns-nameservers 4.2.2.4 8.8.4.4
EOF
# START
ifdown $name
ifup $name
}
# DEBIAN
function debianIPWithRoute {
cat <<EOF > /etc/network/interfaces
auto lo
iface lo inet loopback
auto $name
iface $name inet static
address @address
netmask @netmask
broadcast @address
post-up route add @gateway dev $name
post-up route add default gw @gateway
pre-down route del @gateway dev $name
pre-down route del default gw @gateway
dns-nameservers 4.2.2.4 8.8.4.4
EOF
# START
ifdown $name
ifup $name
}
if [ $cidr == 32 ]; then
debianIPWithRoute
else
debianIP
fi
# RESIZE PARTITION
function commonPartition {
# RESIZE PARTITION
(echo d; echo n; echo p; echo ; echo ; echo ; echo N; echo w) | fdisk /dev/sda
# RESIZE FILESYSTEM
resize2fs /dev/sda1
}
commonPartition
# PUBLIC KEY
if [ ! -z "@publicKey" ]; then
# SSH DIRECTORY
mkdir -p $HOME/.ssh
# PUBLIC KEY
echo "@publicKey" > $HOME/.ssh/authorized_keys
fi
# PASSWORD
(echo "@password"; echo "@password") | passwd @username
# HOSTNAME
if [ ! -z "@name" ]; then
hostnamectl set-hostname "@name"
fi
# DELETE FILE
rm /home/setup.sh
Click on “Save” and click on “Create” to add Ubuntu script and enter the following details:
Name: Setup
Template: Ubuntu 22 64
Type: Setup
Where is program: /bin/bash
Where to upload: /home/setup.sh
How to execute: /home/setup.sh
Enter the following code into the “Content” part:
#!/bin/bash
# FIND interface NAME
interface=$(ls /sys/class/net | head -n 1)
# NETMASK SCRIPT
cat <<EOF > /etc/cidr.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('netmask')
args = parser.parse_args()
cidr = 0
for bits in args.netmask.split('.'):
bits = bin(int(bits)).count('1')
cidr = cidr + bits
print(cidr)
EOF
# NETMASK TO CIDR
if which python3; then
cidr=$(python3 /etc/cidr.py @netmask)
else
cidr=$(python /etc/cidr.py @netmask)
fi
# NETPLAN
function netplanIP {
cat <<EOF > /etc/netplan/config.yaml
network:
version: 2
renderer: networkd
ethernets:
$interface:
dhcp4: no
addresses: [@address/$cidr]
routes:
- to: default
via: @gateway
nameservers:
addresses: [4.2.2.4, 8.8.4.4]
EOF
# START
netplan apply
}
# NETPLAN
function netplanIPWithRoute {
cat <<EOF > /etc/netplan/config.yaml
network:
version: 2
renderer: networkd
ethernets:
$interface:
addresses: [@address/$cidr]
dhcp4: no
nameservers:
addresses: [4.2.2.4, 8.8.4.4]
routes:
- to: 0.0.0.0/0
via: @gateway
on-link: true
EOF
# START
netplan apply
}
# NETPLAN
if [ -d /etc/netplan ]; then
if [ $cidr == 32 ]; then
netplanIPWithRoute
else
netplanIP
fi
fi
# RESIZE PARTITION
function commonPartition {
# RESIZE PARTITION
(echo d; echo 2; echo n; echo 2; echo ; echo ; echo N; echo w) | fdisk /dev/sda
# RESIZE FILESYSTEM
partprobe && resize2fs /dev/sda2
}
commonPartition
# PUBLIC KEY
if [ ! -z "@publicKey" ]; then
# SSH DIRECTORY
mkdir -p $HOME/.ssh
# PUBLIC KEY
echo "@publicKey" > $HOME/.ssh/authorized_keys
fi
# PASSWORD
(echo "@password"; echo "@password") | passwd @username
# HOSTNAME
if [ ! -z "@name" ]; then
hostnamectl set-hostname "@name"
fi
# DELETE FILE
rm /home/setup.sh
Related Blogs
New AutoVM WHMCS module client area
The new AutoVM WHMCS module will be released soon with enormous updates regarding the client area interface. Take a look at our new UI […]
Subscription for email