Update vmcreate1.sh

This commit is contained in:
2025-10-25 13:17:18 +00:00
parent 4f045ffe5a
commit 6b2b6ffaf9

View File

@@ -7,6 +7,8 @@
storage="syno-tigra"
path="/mnt/pve/$storage/snippets"
username="root"
password=""
show_help()
echo 'Usage:'
@@ -53,7 +55,7 @@ fi
# Если заданы аргументы И файл
if [[ $# -ne 0 && -v file ]]; then echo "Please enter file OR arguments. Use '-f' flag for help"; exit 0; fi
#Проверка файла на соответствие шаблону IPv4 адреса и hostname, создаём временный файл из валидных строк
# Проверка файла на соответствие шаблону IPv4 адреса и hostname, создаём временный файл из валидных строк
if [ -e $file ]; then
touch hosts.tmp
echo -n "" > hosts.tmp
@@ -96,8 +98,8 @@ if [ $# -ne 0 ] then
done
fi
# Функция для проверки IP адреса по шаблону 10.10.*.*, написана гуглом
ipcheck() {
# Функция для проверки IP адреса по шаблону 10.10.*.*, написана гуглом
local ip=$1
local stat=1
oldIFS=$IFS
@@ -114,13 +116,14 @@ ipcheck() {
IFS=$oldIFS
}
# Функция для проверки hostname на валидные символы (буквы, цифры, дефис)
hostcheck (){
local hostname=$1
local pattern="^[a-zA-Z0-9-]+$"
if [[ "$hostname" =~ $pattern ]]; then return 0; else return 1; fi
}
#Проверяем ключ
# Проверяем ключ
if [ -v pubkey ]; then
if [[ ! -f pubkey ]]; then
input=y
@@ -144,14 +147,15 @@ keypair_generate (){
pubkey="$privkey".pub
}
embed_key(){
# Функция, которая создаёт user CloudInit-файл
mksnippet(){
#
}
for line in $(<.hosts.tmp)
for line in $(cat hosts.tmp)
do
ip=$(echo $line | cut -d ' ' -f 1)
vlan=$(echo $ip | cut -d '.' -f 3)
@@ -167,7 +171,7 @@ do
qm set $vmnum --tags 3,gfx
## preparing custom CloudInit snippets
cp ./user.yaml ${path}${vmnum}_user.yaml
sed -i "s/HOSTNAME/$hostname/g" ${path}${vmnum}_user.yaml
# sed -i "s/HOSTNAME/$hostname/g" ${path}${vmnum}_user.yaml
qm resize $vmnum scsi0 +50G
qm set $vmnum --cicustom "user=${storage}:snippets/${vmnum}_user.yaml"
qm set $vmnum --ipconfig0 ip=$ip/24,gw=10.10.35.1