proxmox_vm_create/readme.md

61 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Автоматизация процесса создания ВМ в 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`` и просто работают с параметрами или синтаксисом, показывая возможное применение и возможные ошибки. Запуск этих файлов-примеров не приводит к каким-либо изменениям на локальной или удалённой системе.