готово

master
artemdolgiy 2022-01-06 23:59:19 +03:00
parent 4def6da5f1
commit 10f7f2b7ea
3 changed files with 60 additions and 5 deletions

View File

@ -13,6 +13,7 @@ fi
# задаём необходимые переменные
cloudimg=focal-server-cloudimg-amd64.img
img_url=https://cloud-images.ubuntu.com/focal/current
# параметры вм
vm_id=200
@ -29,7 +30,7 @@ px_bridge=vmbr1
if [ ! -f "$cloudimg" ]; then
echo "Файл $cloudimg не существует"
echo Скачиваю образ Ubuntu Server 20.04 с поддержкой cloud-init
wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
wget $img_url/$cloudimg
fi
echo Создаю ВМ

View File

@ -19,7 +19,18 @@
- [Благодарности](#Благодарности)
## Требования
Для работы Ansible с гипервизором Proxmox, написан соответсвующий модуль [proxmox_kvm](https://docs.ansible.com/ansible/latest/collections/community/general/proxmox_kvm_module.html)
Для работы Ansible с гипервизором Proxmox, написан соответсвующий модуль [proxmox_kvm](https://docs.ansible.com/ansible/latest/collections/community/general/proxmox_kvm_module.html).
В свою очередь, для работы модуля `proxmox_kvm` на хосте Proxmox, необходимо установить пакеты `requests` и `proxmoxer`.
Т.к. Ansible написан на Python, необходимые ему пакеты можно установить с помощью PIP.
Для установки PIP для Python 2 - `sudo apt install python-pip`
Для установки PIP для Python 3 (предпочтительнее) - `sudo apt install python3-pip`
Далее установим необходимые пакеты:
*в зависимости от способа установки Python и PIP, команда для установки пакетов может отличаться. В общем случае, команда выглядит так:*
```
pip install requests
pip install proxmoxer
```
## Создание шаблона
@ -56,7 +67,7 @@ px_bridge=vmbr1 # имя сетевого интерфейса к которо
Пример запуска скрипта
```bash
root@pve:~# ./create_template.sh verySecPassword
root@pve:~# ./create_template.sh verySecPassword
```
**Результатом работы скрипта будет созданный шаблон, из которого с помощью ansible-playbook будут созданы ВМ**
@ -75,4 +86,47 @@ root@pve:~# ./create_template.sh verySecPassword
[⬆ Наверх](#содержание)
### Описание задач плейбука
### Описание переменных
Используемые в плейбуке переменные разделены на два файла: `vars.yaml`, `vms.yaml`. Это разделение сделано для удобства, чтобы отделить переменные виртуальных машин.
`vars.yaml`
```
pve_storage: local-lvm # название хранилища на котором будут созданы ВМ
api_host: 192.168.13.9 # IP адрес хоста Proxmox
api_user: root@pam # данные для авторизации по API
api_password: securePassword # пароль для авторизации
node: pve # имя ноды Proxmox
clone_vm: ubuntu-2004-cloudinit-template # имя шаблона из которого создаются ВМ
key_name: id_rsa.pub # имя SSH ключа, который будет скопирован в ВМ для дальнейшего доступа к ним
```
`vms.yaml`
```
vms:
us1:
name: us10.da2001.ru # имя создаваемой ВМ
ip: 192.168.10.21/24 # IP адрес ВМ
gw: 192.168.10.9 # IP адрес шлюза по-умолчанию, который будет прописан в ВМ (адрес гипервизора)
dns: 8.8.8.8 # IP адрес DNS сервера
vmid: 201 # идентификатор создаваемой ВМ
cores: 2 # количество доступных процессоров для ВМ, если отличается от указанных в шаблоне
sockets: 1 # количество доступных сокетов для ВМ, если отличается от указанных в шаблоне
memory: 2048 # количество доступной оперативной памяти для ВМ, если отличается от указанного значения в шаблоне
us2:
name: us11.da2001.ru
ip: 192.168.10.22/24
gw: 192.168.10.9
dns: 8.8.8.8
vmid: 202
cores: 2
sockets: 1
memory: 2048
```
**перед запуском плейбука необходимо убедиться, что установлены корректные значения**
[⬆ Наверх](#содержание)
### Задачи плейбука
[⬆ Наверх](#содержание)

View File

@ -1,7 +1,7 @@
pve_storage: local-lvm
api_host: 192.168.13.9
api_user: root@pam
api_password: KatIrina1
api_password: securePassword
node: pve
clone_vm: ubuntu-2004-cloudinit-template
key_name: id_rsa.pub