готово
parent
4def6da5f1
commit
10f7f2b7ea
|
@ -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 Создаю ВМ
|
||||
|
|
60
readme.md
60
readme.md
|
@ -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
|
||||
```
|
||||
|
||||
**перед запуском плейбука необходимо убедиться, что установлены корректные значения**
|
||||
|
||||
[⬆ Наверх](#содержание)
|
||||
|
||||
### Задачи плейбука
|
||||
|
||||
|
||||
[⬆ Наверх](#содержание)
|
||||
|
|
Loading…
Reference in New Issue