Files
vmcreate/README1.md
2025-10-28 09:55:54 +00:00

66 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Срипт для создания нескольких виртуальных машин одновременно с помощью Cloud-Init.
**Имеется 2 версии скрипта: универсальный** `vmcreate.sh` **и специальный для gfx-машин Юры** `gfxcheate.sh`
# GFX-скрипт
Скрипт парсит файл `gfx_hosts`
создаёт и запускает на **pve3** виртуальные машины с заданным `IP` и `hostname` в 35 сети.
Синтаксис: ip-адрес, точка с запятой, hostname.
* 10.10.35.XX1;hostname1
* 10.10.35.XX2;hostname2
VMID формируется на основе последних двух октетов IP адреса, пример для _ip=10.10.35.21_ > `VMID=3521`
### Создание и запуск
```shell
git -C /root/ clone https://git.tvstart.ru/dbadovsky/vmcreate.git
```
```shell
cd /root/vmcreate/
```
```shell
bash gfxcreate.sh
```
**ВНИМАНИЕ! Нельзя закрывать консоль Proxmox до заершения работы скрипта!**
Либо отправлять его работу в фоновый режим:
```shell
bash vmcreate.sh &
```
Но в этом случае скрипт не будет выводить в консоль свои действия и результат.
### Ключ
Публичный ключ вшит в файл `gfx.yaml`.
### Пакеты, устанавливаемые автоматически
- qemu-guest-agent
- git
- net-tools
- python3
- python3-pip
- python3-venv
Также в `gfx.yaml` вшита команда, которая подтягивает и разворачивает python-скрипт Юры.
# Универсальный скрипт
В качестве списка используются аргументы либо файл.
В случае использования аргументов необходимо передать список IPv4-адресов в диапазоне 10.10.0.0/16.
```
bash vmcreate 10.10.MMM.XXX 10.10.NNN.YYY
```
В этом случае имена хостов сгенерируются автоматически. Например, для 10.10.35.99, hostname="vm35099".
Либо передать с флагом `-h` файл со списком в следующем формате:
```
10.10.MMM.XXX;hostnameX
10.10.NNN.YYY;hostnameY
...
```
В этом случае имена хостов будут браться из второго столбца.
VMID созданных ВМ также будет сгенегирован автоматически. Например для 10.10.35.99, **VMID=35099**; для 10.10.0.9 - **VMID=100009**.
_VMID состоит из двух частей - VLAN и последнего октета IP адреса (дополненного нулями до длины 3)_
При этом VMID и числа в автоматически сгенерированном _hostname_ совпадают.
# Файл **user.yaml**