61 lines
4.4 KiB
Markdown
61 lines
4.4 KiB
Markdown
# Автоматизация процесса создания ВМ в Proxmox с использованием Ansible
|
||
## Этапы
|
||
- [Создание шаблона](#создание-шаблона)
|
||
- [О файлах примерах](#о-файлах-примерах)
|
||
- [О версиях Ansible](#О-версиях-ansible)
|
||
- [Структура данных](#Структура-данных)
|
||
- [Списки](#Списки)
|
||
- [Словари (Хеш таблицы)](#Словари-Хеш-таблицы)
|
||
- [Списки словарей](#Списки-словарей)
|
||
- [Словари словарей](#Словари-словарей)
|
||
- [Циклы](#Циклы)
|
||
- [with_items](#with_items)
|
||
- [С простыми списками](#С-простыми-списками)
|
||
- [with_dict](#with_dict)
|
||
- [Полезные ссылки](#Полезные-ссылки)
|
||
- [Благодарности](#Благодарности)
|
||
|
||
## Создание шаблона
|
||
|
||
ВМ создаются из существующего шаблона. При этом, необходимо, чтобы шаблон был с поддержкой cloudinit. Здесь возможны 2 варианта, создать такой шаблон самостоятельно или скачать готовый образ.
|
||
Я подготовил скрипт, который скачивает официальный образ Ubuntu с поддержкой cloudinit и на основании этого образа создаётся шаблон.
|
||
|
||
Скрипт `create_template.sh` необходимо скопировать на хост Proxmox, добавить права на исполнение.
|
||
|
||
Стоит обратить внимание на объявленные в скрипте переменные:
|
||
*скачиваемый образ и его URL*
|
||
```
|
||
cloudimg=focal-server-cloudimg-amd64.img # имя скачиваемого образа
|
||
img_url=https://cloud-images.ubuntu.com/focal/current # адрес, по которому доступен образ
|
||
```
|
||
|
||
*параметры создаваемого шаблона*
|
||
```
|
||
vm_id=200 # идентификатор создаваемого шаблона
|
||
vm_name="ubuntu-2004-cloudinit-template" # имя создаваемого шаблона
|
||
vm_memory=2048 # объем оперативной памяти выделяемый шаблону
|
||
vm_cores=2 # количество ядер процессора доступных шаблону
|
||
vm_user="da2001" # имя пользвателя, который будет создан в шаблоне
|
||
```
|
||
|
||
*переменные, относящиеся к гипервизору Proxmox*
|
||
```
|
||
px_storage=local-lvm # хранилище, в котором будет размещен диск шаблона
|
||
px_bridge=vmbr1 # имя сетевого интерфейса к которому будет подключен шаблон
|
||
```
|
||
|
||
**необходимо изменить значения переменных на свои**
|
||
|
||
Скрипт необходимо запустить от имени пользователя, который может создавать и редактировать ВМ (по-умолчанию это `root`). При запуске нужно придумать и указать в качестве аргумента пароль, который будет добавлен для авторизации пользователя, указанного в переменной `vm_user`
|
||
|
||
Пример запуска скрипта
|
||
```bash
|
||
root@pve:~# ./create_template.sh verySecPassword
|
||
```
|
||
|
||
**Результатом работы скрипта будет созданный шаблон, из которого с помощью ansible-playbook будут созданы ВМ**
|
||
|
||
[⬆ Наверх](#этапы)
|
||
|
||
### О файлах примерах
|
||
Во многих разделах идёт ссылка на файл пример из директории [examples](examples/). Все файлы примеры написаны с использованием модуля ``debug`` и просто работают с параметрами или синтаксисом, показывая возможное применение и возможные ошибки. Запуск этих файлов-примеров не приводит к каким-либо изменениям на локальной или удалённой системе. |