Назад | Перейти на главную страницу

как добавить конфигурацию сети в образ облачной инициализации для запуска образа kvm

Я пытаюсь использовать CloudInit для раскрутки виртуальных машин в среде гипервизора KVM.
Я загрузил образ Ubuntu 18.04 и создал следующий файл конфигурации:

#cloud-config
package_upgrade: true
users:
  - name: <your_user>
    groups: wheel
    lock_passwd: false
    passwd: <your_passord_hash>
    shell: /bin/bash
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - <your_public_ssh_key> 

Я могу развернуть виртуальную машину и войти в систему через консоль.
Я осмотрелся, но не нашел никакой информации о том, как настроить мою сеть
интерфейсы, IP-адреса и т. д.
Я не мог понять документы CloudInit.

Любые ссылки или советы будут оценены.

Хорошо, вот как я это решил
для образа Ubuntu вы можете использовать файл netplan, расположенный в /etc/netplan/SOMEFILE.yaml
для centos я заметил, что у изображения нет плана сети, поэтому я просто написал файлы интерфейса в своей конфигурации
используйте write_files для создания файла netplan в ubuntu и файлов интерфейса в centos
после этого используйте runcmd для инициализации интерфейсов, выполнив соответствующие команды
вот мои файлы config.yaml для ubuntu и centos соответственно

#cloud-config
package_upgrade: true
users:
  - name: USER
    groups: wheel
    lock_passwd: false
    passwd: PASSWORD_HASH
    shell: /bin/bash
    ssh_pwauth: true
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - ssh-rsa YOUR_KEY

write_files:
  - path:  /etc/netplan/50-cloud-init.yaml
    permissions: '0644'
    content: |
         network:
           version: 2
           renderer: networkd
           ethernets:
             ens3:
               addresses: [IP/SUBNET]
               routes:
                  - to: NETWORK
                    via: NEXT_HOP

             ens4:
               addresses: [IP/SUBNET]
               gateway4: GATEWAY
               nameservers:
                 addresses: [DNS]

runcmd:
 - [sudo, ifconfig, IFNAME, up]
 - [sudo, ifconfig, IFNAME, up]
 - [sudo, netplan, generate]
 - [sudo, netplan, apply]
 - [sudo, sed ,-i, 's/PasswordAuthentication no/PasswordAuthentication yes/g', /etc/ssh/sshd_config] 
 - [sudo, systemctl, restart, sshd]

#cloud-config
package_upgrade: true
users:
  - name: USER
    groups: wheel
    lock_passwd: false
    passwd: PASSWORD_HASH
    shell: /bin/bash
    ssh_pwauth: true
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    ssh-authorized-keys:
      - ssh-rsa YOUT_KEY

write_files:
  - path:  /etc/sysconfig/network-scripts/ifcfg-INTERFACE
    permissions: '0644'
    content: |
         TYPE="Ethernet"
         PROXY_METHOD="none"
         BROWSER_ONLY="no"
         BOOTPROTO="none"
         IPV4_FAILURE_FATAL="no"
         NAME="INTERFACE"
         DEVICE="INTERFACE"
         ONBOOT="yes"
         IPADDR="IP"
         PREFIX="PREFIX"
         GATEWAY="GATEWAY"
         DNS1="DNS"
         ZONE=ZONE

  - path:  /etc/sysconfig/network-scripts/ifcfg-INTERFACE
    permissions: '0644'
    content: |
         TYPE=Ethernet
         PROXY_METHOD=none
         BROWSER_ONLY=no
         BOOTPROTO=none
         NAME=INTERFACE
         DEVICE=INTERFACE
         ONBOOT=yes
         IPADDR=IP
         PREFIX=PREFIX
         IPV6_PRIVACY=no
         ZONE=ZONE







runcmd:
 - [sudo, ifup, INTERFACE]
 - [sudo, ifup, INTERFACE]
 - [sudo, sed ,-i, 's/PasswordAuthentication no/PasswordAuthentication yes/g', /etc/ssh/sshd_config]
 - [sudo, systemctl, restart, sshd]