Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    [РЕШЕНО] Имя хоста не устанавливается через CloudInit с --cicustom и Ubuntu 22.04

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    [РЕШЕНО] Имя хоста не устанавливается через CloudInit с --cicustom и Ubuntu 22.04, Proxmox Виртуальная Среда
     
    uncle.cripple
    Guest
    #1
    0
    03.06.2022 14:04:00
    У меня проблема с CloudInit на Proxmox 7.2 и Ubuntu 22.04: имя хоста VM, указанное в GUI Proxmox, не устанавливается в VM. В качестве основы я использую CloudImage jammy-server-cloudimg-amd64.img от Ubuntu с сайта https://cloud-images.ubuntu.com/jammy/current/. У меня есть два CloudInit-файла, один для пользователя и один для вендора (см. ниже), которые добавляются в шаблон. Шаблон создается следующими шагами:

    ```bash
    #!/bin/bash
    qm create 800001 --name ubuntu-2204-cloud-init --numa 0 --ostype l26 --cores 2 --sockets 1 --memory 2048 -net0 virtio,bridge=vmbr100,firewall=1
    qm importdisk 800001 /mnt/pve/nas02-templates/template/iso/jammy-server-cloudimg-amd64.img nas02-images --format=qcow2
    qm set 800001 --scsihw virtio-scsi-pci --scsi0 nas02-images:800001/vm-800001-disk-0.qcow2
    qm resize 800001 scsi0 50G
    qm set 800001 --boot c --bootdisk scsi0
    qm set 800001 --serial0 socket --vga serial0
    qm set 800001 --ide2 nas02-images:cloudinit
    qm set 800001 --agent enabled=1
    qm set 800001 --cicustom "user=nas02-templates:snippets/cloudinit-user.yml,vendor=nas02-templates:snippets/cloudinit-vendor.yml"
    qm template 800001
    ```

    После этого я клонирую мою VM в GUI Proxmox из шаблона, созданного, например, со следующими опциями:

    *   **ID VM:** 100044
    *   **Имя:** derufin – это должно быть именем хоста
    *   **Ресурсный пул:** test-VMs
    *   **Режим:** Полное клонирование
    *   **Целевое хранилище:** nas02-images-ssd
    *   **Формат:** qcow2

    Затем я настраиваю следующие параметры CloudInit в VM:

    *   **DNS домен:** domain.info
    *   **DNS серверы:** 172.16.100.10
    *   **Настройка IP (net0):**
       *   **IPv4/CIDR:** 172.16.100.44/22
       *   **Шлюз (IPv4):** 172.16.100.1

    Я не изменяю и не устанавливаю пользователя, пароль и SSH-ключ, так как это настраивается через cloudinit-user.yml.

    При запуске VM все настраивается как ожидалось, но имя хоста VM по-прежнему ubuntu, а не derufin! Если я добавлю `hostname: derufin` в любой из моих двух CloudInit-файлов, имя хоста будет установлено правильно. Но, очевидно, я не хочу устанавливать имя хоста в шаблоне. Если я удалю файл CloudInit для пользователя cloudinit-user.yml из шаблона, имя хоста будет установлено правильно, но тогда не будет пользователя для входа.

    Одна странная вещь, которую я обнаружил: при дампе конфигурации CloudInit из VM через `qm cloudinit dump 100044 user`, здесь можно найти имя хоста, manage\_etc\_hosts и fqdn. Почему это в user? Разве это не должно быть частью network или meta?

    ```yaml
    #cloud-config
    hostname: derufin
    manage_etc_hosts: true
    fqdn: derufin.domain.info
    chpasswd:
     expire: False
    users:
     - default
    package_upgrade: true
    ```

    В общем, я не знаю, как правильно установить имя хоста VM.

    ```yaml
    #cloud-config
    hostname: derufin
    manage_etc_hosts: true
    fqdn: derufin.domain.info
    chpasswd:
     expire: False
    users:
     - default
    package_upgrade: true
    ```

    ```yaml
    #cloud-config
    hostname: derufin
    manage_etc_hosts: true
    fqdn: derufin.domain.info
    chpasswd:
     expire: False
    users:
     - default
    package_upgrade: true
    ```

    **Содержимое cloudinit-user.yml:**

    ```yaml
    #cloud-config
    users:
     - name: someuser
       gecos: Some User
       uid: 1000
       ssh_authorized_keys:
         - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...
    ```

    **Содержимое cloudinit-vendor.yml:**

    ```yaml
    #cloud-config
    packages:
     - somepackage
    ```

    **Содержимое /etc/network/interfaces:**

    ```
    auto lo
    iface lo inet loopback

    auto enp3s0
    iface enp3s0 inet static
     address 172.16.100.44/22
     gateway 172.16.100.1
    ```

    **Версии:**

    *   **Proxmox:**
       *   **pve-manager:** 7.2-4 (running version: 7.2-4/ca9d43cc)
       *   **kernel:** 5.15.35-1-pve
    *   **Прочее:** (см. полный список в конце файла)

    Надеюсь, это поможет в отладке проблемы.
     
     
     
    uncle.cripple
    Guest
    #2
    0
    24.06.2022 16:24:00
    @bbgeek17 Спасибо за ответ, извините за поздний ответ. Есть ли способ динамически добавлять Meta-конфигурацию к шаблону, в зависимости от VM-ID? Или можно использовать переменную в Meta-шаблоне для ссылки на hostname из конфигурации VM? Хочется, чтобы пользователи, которые создают (Dev/Test/Whatever) VM, использовали только Proxmox GUI, указывали hostname и IP-адрес и больше ничего. Но кажется, что это в данный момент невозможно.
     
     
     
    uncle.cripple
    Guest
    #3
    0
    28.06.2022 14:15:00
    Оказывается, есть довольно простое – хоть и не очевидное, по крайней мере, мне так показалось – решение для установки имени хоста в упомянутом выше сценарии, при этом все еще используя файлы cloudinit-user.yml и cloudinit-vendor.yml! Как указано в документации cloud-init для источника данных NoCloud, можно передать имя хоста (и кое-что еще) через серийный номер SMBIOS. Так что добавление ds=nocloud;h=derufin в мои клонированные ВМ в поле "Options -> SMBIOS settings (type1) -> Serial" сработало у меня.
     
     
     
    koval
    Guest
    #4
    0
    28.09.2022 10:19:00
    Как я понимаю, нет способа автоматически подставлять имя хоста из имени VM на стадии клонирования? Ищу решение, чтобы автоматически брать имя хоста из имени VM без дополнительных шагов.
     
     
     
    jordantrizz
    Guest
    #5
    0
    28.10.2022 21:05:00
    Здесь была дискуссия, но я не понимаю, как они указывают имя хоста из имени ВМ, используя конфигурацию вендора. https://forum.proxmox.com/threads/c...-with-auto-generated.59008/page-3#post-428772
     
     
     
    farhood
    Guest
    #6
    0
    09.02.2024 15:18:00
    Поднимаю эту тему, чтобы узнать, есть ли способ задать имя хоста через возможности Jinja-шаблонов для cloud-config в Proxmox? Я изучил файлы cloud-config для "ванильного" Proxmox, настроенного с помощью cloud-init, как в VM, так и в инстансах, и в тех случаях, когда я использую `--cicustom` для создания собственной конфигурации cloud-init, наблюдается отсутствие многих сведений `v1` или `metadata`. Это команда для монтирования моих пользовательских cloudinit-файлов:

    Bash: `qm set 9001 --cicustom "user=local:snippets/alpine-user.yml,network=local:snippets/alpine-network.yml"`

    JSON:
    ```json
    {
     "v1": {
       "_beta_keys": [
         "subplatform"
       ],
       "availability-zone": null,
       "availability_zone": null,
       "cloud-name": "unknown",
       "cloud_id": "nocloud",
       "cloud_name": "unknown",
       "distro": "alpine",
       "distro_release": "Alpine Linux v3.19",
       "distro_version": "3.19.0",
       "instance-id": "1facf3598efb52159bfa245b9c6d4b2341bc7fd4",
       "instance_id": "1facf3598efb52159bfa245b9c6d4b2341bc7fd4",
       "kernel_release": "6.6.4-1-virt",
       "local-hostname": "(none)",
       "local_hostname": "(none)",
       "machine": "x86_64",
       "platform": "nocloud",
       "public_ssh_keys": [],
       "python_version": "3.11.6",
       "region": null,
       "subplatform": "config-disk (/dev/sr0)",
       "system_platform": "Linux-6.6.4-1-virt-x86_64-with",
       "variant": "alpine"
     }
    }
    ```
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры