master
Долгий Артём 2022-01-07 15:22:24 +03:00
parent 471fe09aaf
commit 2474ed92e6
1 changed files with 19 additions and 19 deletions

View File

@ -1,16 +1,16 @@
# Автоматизация процесса создания ВМ в Proxmox с использованием Ansible
## Содержание
- [Требования](#требования)
- [Создание шаблона](#создание-шаблона)
- [Создание ВМ с помощью Ansible](#создание-вм-с-помощью-ansible)
- [Необходимые файлы](#необходимые-файлы)
- [Описание переменных](#описание-переменных)
- [Задачи плейбука](#задачи-плейбука)
- [Подключение к ВМ](#подключение-к-вм)
-[Требования](#требования)
-[Создание шаблона](#создание-шаблона)
-[Создание ВМ с помощью Ansible](#создание-вм-с-помощью-ansible)
-[Необходимые файлы](#необходимые-файлы)
-[Описание переменных](#описание-переменных)
-[Задачи плейбука](#задачи-плейбука)
-[Подключение к ВМ](#подключение-к-вм)
## Требования
Для работы 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`
@ -71,11 +71,11 @@ root@pve:~# ./create_template.sh verySecPassword
### Необходимые файлы
Для корректной работы плейбука необходимы следующие файлы:
- `ansible.cfg` - файл общих настроек ansible
- `create_vm.yaml` - файл плейбука
- `hosts.ini` - файл инвентаря, в котором указан, единственный в данном примере хост Proxmox
- `vars.yaml` - используемые переменные
- `vms.yaml` - переменные с описанием создаваемых ВМ
-`ansible.cfg` - файл общих настроек ansible
-`create_vm.yaml` - файл плейбука
-`hosts.ini` - файл инвентаря, в котором указан, единственный в данном примере хост Proxmox
-`vars.yaml` - используемые переменные
-`vms.yaml` - переменные с описанием создаваемых ВМ
[⬆ Наверх](#содержание)
@ -120,7 +120,7 @@ vms:
[⬆ Наверх](#содержание)
### Задачи плейбука
- Клонирование ВМ из шаблона
-Клонирование ВМ из шаблона
*за основу были взяты примеры из документации https://docs.ansible.com/ansible/latest/collections/community/general/proxmox_kvm_module.html#examples*
В задаче создаются виртуальные машины на основе шаблона
конструкция
@ -129,19 +129,19 @@ loop: "{{ lookup('dict', vms) }}"
```
позволяет перебрать все необходимые ключи и значения из словаря `vms`
- Настройка IP адресов
-Настройка IP адресов
В этой задаче назначается IP адрес для каждой созданной ВМ и IP адрес шлюза по-умолчанию
- Настройка DNS
-Настройка DNS
Как видно из названия, в ВМ указывается IP адрес DNS сервера
- Копирование SSH ключей в ВМ
-Копирование SSH ключей в ВМ
Для беспарольного доступа в ВМ будет скопирован указанный SSH ключ хоста, на котором выполняется плейбук
- Обновление параметров ВМ
-Обновление параметров ВМ
При клонировании из шаблона, ВМ создаются с теми же параметрами, что и сам шаблон. Выполнение этой задачи позволяет изменить параметры ВМ, например размер оперативной памяти, количество доступных процессоров и т.д.
- Запуск ВМ
-Запуск ВМ
Финальным этапом будет запуск созданных ВМ
## Подключение к ВМ