diff --git a/create_template.sh b/create_template.sh index c119250..9427322 100644 --- a/create_template.sh +++ b/create_template.sh @@ -13,6 +13,7 @@ fi # задаём необходимые переменные cloudimg=focal-server-cloudimg-amd64.img +img_url=https://cloud-images.ubuntu.com/focal/current # параметры вм vm_id=200 @@ -29,7 +30,7 @@ px_bridge=vmbr1 if [ ! -f "$cloudimg" ]; then echo "Файл $cloudimg не существует" echo Скачиваю образ Ubuntu Server 20.04 с поддержкой cloud-init - wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img + wget $img_url/$cloudimg fi echo Создаю ВМ diff --git a/readme.md b/readme.md index 8bef434..2396644 100644 --- a/readme.md +++ b/readme.md @@ -19,7 +19,18 @@ - [Благодарности](#Благодарности) ## Требования -Для работы 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` +Для установки PIP для Python 3 (предпочтительнее) - `sudo apt install python3-pip` + +Далее установим необходимые пакеты: +*в зависимости от способа установки Python и PIP, команда для установки пакетов может отличаться. В общем случае, команда выглядит так:* +``` +pip install requests +pip install proxmoxer +``` ## Создание шаблона @@ -56,7 +67,7 @@ px_bridge=vmbr1 # имя сетевого интерфейса к которо Пример запуска скрипта ```bash -root@pve:~# ./create_template.sh verySecPassword +root@pve:~# ./create_template.sh verySecPassword ``` **Результатом работы скрипта будет созданный шаблон, из которого с помощью ansible-playbook будут созданы ВМ** @@ -75,4 +86,47 @@ root@pve:~# ./create_template.sh verySecPassword [⬆ Наверх](#содержание) -### Описание задач плейбука \ No newline at end of file +### Описание переменных +Используемые в плейбуке переменные разделены на два файла: `vars.yaml`, `vms.yaml`. Это разделение сделано для удобства, чтобы отделить переменные виртуальных машин. +`vars.yaml` +``` +pve_storage: local-lvm # название хранилища на котором будут созданы ВМ +api_host: 192.168.13.9 # IP адрес хоста Proxmox +api_user: root@pam # данные для авторизации по API +api_password: securePassword # пароль для авторизации +node: pve # имя ноды Proxmox +clone_vm: ubuntu-2004-cloudinit-template # имя шаблона из которого создаются ВМ +key_name: id_rsa.pub # имя SSH ключа, который будет скопирован в ВМ для дальнейшего доступа к ним +``` + +`vms.yaml` +``` +vms: + us1: + name: us10.da2001.ru # имя создаваемой ВМ + ip: 192.168.10.21/24 # IP адрес ВМ + gw: 192.168.10.9 # IP адрес шлюза по-умолчанию, который будет прописан в ВМ (адрес гипервизора) + dns: 8.8.8.8 # IP адрес DNS сервера + vmid: 201 # идентификатор создаваемой ВМ + cores: 2 # количество доступных процессоров для ВМ, если отличается от указанных в шаблоне + sockets: 1 # количество доступных сокетов для ВМ, если отличается от указанных в шаблоне + memory: 2048 # количество доступной оперативной памяти для ВМ, если отличается от указанного значения в шаблоне + us2: + name: us11.da2001.ru + ip: 192.168.10.22/24 + gw: 192.168.10.9 + dns: 8.8.8.8 + vmid: 202 + cores: 2 + sockets: 1 + memory: 2048 +``` + +**перед запуском плейбука необходимо убедиться, что установлены корректные значения** + +[⬆ Наверх](#содержание) + +### Задачи плейбука + + +[⬆ Наверх](#содержание) diff --git a/vars.yaml b/vars.yaml index be51a11..b891da0 100644 --- a/vars.yaml +++ b/vars.yaml @@ -1,7 +1,7 @@ pve_storage: local-lvm api_host: 192.168.13.9 api_user: root@pam -api_password: KatIrina1 +api_password: securePassword node: pve clone_vm: ubuntu-2004-cloudinit-template key_name: id_rsa.pub