Browse Source

Add DNS params

master
nemo 3 years ago
parent
commit
bf65a99ebf
  1. 12
      deploy_vm.conf
  2. 31
      deploy_vm.sh
  3. 6
      vm-template.conf

12
deploy_vm.conf

@ -1,10 +1,17 @@
# URL of the API
URL="https://ipam.example.conf/api/${USER_IPAM}"
# Bridge used by VMs
VM_BRIDGE_DEV="vmbr99"
# IPv6 gateway for the VM
IPV6_GATEWAY="fe80::123:123:123:123"
# ID of the ranges, you can put multiple ranges per AFI
# If multiple DNS nameservers, seperate each of them vy a space
DNS_NAMESERVERS_IPV4='1.2.3.4 2.3.4.5'
DNS_NAMESERVERS_IPV6='1111:2222::3333 2222:3333::4444'
# ID of the ranges, you can put multiple ranges per AFI, these values will be use to check if the new VM_ID is already registered or not in IPAM
ID_RANGES_V4='123 234'
ID_RANGES_V6='345'
@ -12,11 +19,14 @@ ID_RANGES_V6='345'
ID_RANGE_V4_TO_CREATE_VM='123'
ID_RANGE_V6_TO_CREATE_VM='345'
# Set the limit for possible disk size (Giga)
VM_DISK_MIN=32
VM_DISK_MAX=64
# Set the limit for possible vCPU number
VM_CPU_MIN=1
VM_CPU_MAX=4
# Set the limit for possible RAM size (Mega)
VM_RAM_MIN=512
VM_RAM_MAX=2048

31
deploy_vm.sh

@ -29,7 +29,7 @@ if [ $1 ]; then
usage
exit 1
else
# Verification of the presence of VM conf file
# Check the presence of VM conf file
if [ -f "$1" ]; then
VM_CONF_FILE=$1
. ${VM_CONF_FILE}
@ -348,14 +348,9 @@ echo "INFO : Get the FE80 IPv6 of the new VM..."
VM_MAC=$(grep net0 /etc/pve/qemu-server/${VM_ID}.conf | cut -d '=' -f 2 | cut -d ',' -f 1)
VM_FE80=$(ipv6calc --action prefixmac2ipv6 --in prefix+mac --out ipv6addr fe80:: $VM_MAC)
VM_BRIDGE_DEV="vmbr1"
# Define SSH host
SSH_HOST="root@${VM_FE80}%${VM_BRIDGE_DEV}"
echo "INFO : wait 2 minutes to be sure that ssh service is started"
sleep 180
# Create network configuration file for new VM
echo "INFO : Create network configuration file for new VM..."
echo "# This file describes the network interfaces available on your system
@ -373,11 +368,12 @@ allow-hotplug ens18
iface ens18 inet static
address ${VM_IPV4_NEW}/${VM_IPV4_NEW_SUBNET_MASK}
gateway ${VM_IPV4_NEW_SUBNET_GW}
dns-nameservers 89.234.186.5 89.234.186.4
dns-nameservers ${DNS_NAMESERVERS_IPV4}
iface ens18 inet6 static
address ${RANGE_IPV6_NEW_WITHOUT_MASK}1/${RANGE_IPV6_NEW_MASK}
gateway ${IPV6_GATEWAY}" > /tmp/interfaces_vm${VM_ID}
gateway ${IPV6_GATEWAY}
dns-nameservers ${DNS_NAMESERVERS_IPV6}" > /tmp/interfaces_vm${VM_ID}
# Replace network configuration file on new VM
echo "INFO : Replace network configuration file on new VM... (VM NETWORK CONF UPDATE)"
@ -405,12 +401,12 @@ if [ $? -ne 0 ]; then
fi
# Regenerate SSH host keys for the VM and restart SSHD
#echo "INFO : Regenerate SSH host keys for the VM and restart SSHD..."
#ssh ${SSH_OPT} ${SSH_HOST} "/bin/rm -v /etc/ssh/ssh_host_* && dpkg-reconfigure openssh-server && systemctl restart ssh" &> /dev/null
#if [ $? -ne 0 ]; then
# echo 'ERROR : problem during regenerate SSH host keys for the VM, please finish manually the deploy OR delete VM and IPAM information'
# exit 1
#fi
echo "INFO : Regenerate SSH host keys for the VM and restart SSHD..."
ssh ${SSH_OPT} ${SSH_HOST} "/bin/rm -v /etc/ssh/ssh_host_* && dpkg-reconfigure openssh-server && systemctl restart ssh" &> /dev/null
if [ $? -ne 0 ]; then
echo 'ERROR : problem during regenerate SSH host keys for the VM, please finish manually the deploy OR delete VM and IPAM information'
exit 1
fi
# Get FingerPrint
echo "INFO : Get SSH FingerPrint of the new VM..."
@ -439,7 +435,6 @@ if [ "${VM_DISK_EXTEND}" -ne 0 ]; then
# Wait for system reboot
sleep 20
echo "INFO : wait 3 minutes to be sure that ssh service is started"
sleep 180
echo "INFO : Create new PV... (pvcreate /dev/vda3)"
@ -455,7 +450,7 @@ sleep 180
if [ $? -ne 0 ]; then
echo 'ERROR : problem during get the name of the default VG'
exit 1
fi
fi
echo "INFO : Add new PV to VG ${DEFAULT_VG}... (vgextend ${DEFAULT_VG} /dev/vda3)"
@ -468,12 +463,12 @@ sleep 180
echo "INFO : Resize LV on disk... (RESIZE VM LV)"
DEFAULT_LV_ROOT=$(find /dev/mapper -name '*root*')
DEFAULT_LV_ROOT=$(find /dev/mapper -name '*root*')
if [ $? -ne 0 ]; then
echo 'ERROR : problem during get the name of the default root LV'
exit 1
fi
fi
ssh ${SSH_OPT} ${SSH_HOST} "lvextend -l +100%FREE ${DEFAULT_LV_ROOT}" &> /dev/null

6
vm-template.conf

@ -8,14 +8,14 @@ USER_MAIL="user@example.net"
# WARNING, if this value is incorrect, nobody could connect the deployed VM...
USER_SSH_PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZWqqdey/B95uiSAXJUFo56UHCsk5b3AxRw+SfnuOGyP15tGwOT4AhCyx2XXcxAlnuTNYhONfHg82wVN581suF3w2wnWkJdYqlwmCB20CQENuFXIIcw1ZYTyVcLfdSNhMAO1VuvkvyTEDac2Mh9epMe3lcgYpM/+YZiRfuInDYzixOJOuSz+NFMCm9XHhQDZ3CxZSMjKCV3+yW6vcQ/QfWs749C1JwdTiEMSrwpMm+IwtVnO5Tv4EA/jUs6a+CVo4GtfwIVWH5CGtrc4SYfbfFwoITS3UKDUGgx1YKU81bXrzldlofPxAAAAAAAAAA6n6orTu81pKRiok3oN/Vhuhb john@host"
# Disk size in GB (ex : 32)
# Disk size in Giga (ex : 32)
VM_DISK=32
# vCPU number (ex : 1)
VM_CPU=1
# RAM size in MB (ex : 512)
# RAM size in Mega (ex : 512)
VM_RAM=512
# VM Proxmox ID of template (ex : 123)
# VM Proxmox ID of template to use to create the new VM (ex : 123)
VM_TEMPLATE_ID=123

Loading…
Cancel
Save