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