Proxmox VE: Автоматическая установка

Proxmox VE: Автоматическая установка

Автоматическая установка Proxmox VE требует запуска отдельного http-сервера, который на запрос Proxmox VE будет отдавать специальный файл ответов.

Подготовка сервера

  • Установить необходимые пакеты:
1
apt install --yes python3-aiohttp
  • Создать директорию /srv/pve:
1
mkdir '/srv/pve'
  • Создать файл сервера /srv/pve/server.py со следующим содержанием:
server.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Serving a Static Answer File via Python.
# proxmox-fetch-answer http http://192.168.1.2:8000/answer > /run/automatic-installer-answers && exit

import logging
from aiohttp import web

routes = web.RouteTableDef()


@routes.post("/answer")
async def answer(request: web.Request):
    logging.info(f"Received request from peer '{request.remote}'")
    file_contents = app.get("answer_file", None)
    if file_contents is None:
        return web.Response(status=404, text="not found")
    return web.Response(text=file_contents)


if __name__ == "__main__":
    app = web.Application()
    with open("answer.toml") as answer_file:
        file_contents = answer_file.read()
    app["answer_file"] = file_contents
    logging.basicConfig(level=logging.INFO)
    app.add_routes(routes)
    web.run_app(app, host="0.0.0.0", port=8000)
  • Создать файл ответов /srv/pve/answer.toml со следующим содержанием:
answer.toml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[global]
keyboard = "en-us"
country = "ru"
fqdn = "pve-auto.pve-domain.com"
mailto = "root@localhost"
timezone = "UTC"
root-password = "cDFymu2aML"
reboot-mode = "power-off"

[network]
source = "from-dhcp"

[disk-setup]
filesystem = "xfs"
disk-list = ["sda"]
# filter.ID_MODEL = "CT250MX500*"
  • Отредактировать файл ответов /srv/pve/answer.toml согласно своим предпочтениям.
  • Запустить файл сервера:
1
cd '/srv/pve' && python3 'server.py'

Установка Proxmox VE

  • Запустить установщик Proxmox VE и в главном меню выбрать Advanced Options / Automatic.
  • После загрузки среды ввести команду (192.168.1.2 - заменить на IP-адрес сервера):
1
proxmox-fetch-answer http http://192.168.1.2:8000/answer > /run/automatic-installer-answers && exit