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