|
||
---|---|---|
ansible.cfg | ||
create_template.sh | ||
create_vm.yaml | ||
hosts.ini | ||
readme.md | ||
vars.yaml | ||
vms.yaml |
readme.md
Автоматизация процесса создания ВМ в Proxmox с использованием Ansible
Содержание
- Требования
- Создание шаблона
- Создание ВМ с помощью Ansible
- Структура данных
- Циклы
- Полезные ссылки
- Благодарности
Требования
Для работы Ansible с гипервизором Proxmox, написан соответсвующий модуль proxmox_kvm
Создание шаблона
ВМ создаются из существующего шаблона. При этом, необходимо, чтобы шаблон был с поддержкой 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
Пример запуска скрипта
root@pve:~# ./create_template.sh verySecPassword
Результатом работы скрипта будет созданный шаблон, из которого с помощью ansible-playbook будут созданы ВМ
Создание ВМ с помощью Ansible
Необходимые файлы
Для корректной работы плейбука необходимы следующие файлы:
- ansible.cfg - файл общих настроек ansible
- create_vm.yaml - файл плейбука
- hosts.ini - файл инвентаря, в котором указан, единственный в данном примере хост Proxmox
- vars.yaml - используемые переменные
- vms.yaml - переменные с описанием создаваемых ВМ