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