Puncte:0

Terraform DataSource DataSourceNone cu Ubuntu 20.04

drapel fr

Problemă

După construirea unui șablon Ubuntu 20.04 (a încercat și 21.04) cu Packer, nu pot seta noi setări atunci când instanțiez șablonul cu Terraform. Această configurație nu a avut probleme cu Debian 10.

Ambalator

{
    „constructori”: [
    {
        „CPU-uri”: „{{user `vm-cpu-num`}}”,
        „RAM”: „{{user `vm-mem-size`}}”,
        „RAM_reserve_all”: adevărat,

        "boot_command": [
        „<esc><esc><esc><esc>e<wait>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        „<del><del><del><del><del><del><del><del>”,
        "linux /casper/vmlinuz --- autoinstall ds=\"nocloud-net;seedfrom=http://{{.HTTPIP}}:{{.HTTPPort}}/\"<enter><wait>",
        "initrd /casper/initrd<enter><wait>",
        "boot<enter>",
        „<introdu><f10><așteptați>”
      ],
      "boot_wait": "3s",
      "boot_order": "disc, cdrom",
      "cluster": "{{user `cluster`}}",
      "convert_to_template": "adevărat",
      "datastore": "{{user `datastore`}}",
      "disk_controller_type": "pvscsi",
      „folder”: „{{utilizator `folder`}}”,
      "guest_os_type": "ubuntu64Guest",
      "gazdă": "{{utilizator `gazdă`}}",
      "http_directory": "http",
      "http_port_min": "8000",
      "http_port_max": "8000",
      "insecure_connection": "adevărat",
      "iso_paths": ["{{user `iso-paths`}}"],
      „adaptoare_rețea”: [
      {
          "network": "{{utilizator `network`}}",
          "network_card": "vmxnet3"
      }
      ],
      "parolă": "{{user `vcenter-password`}}",
      "shutdown_command": "echo '{{user `ssh-username`}}' | sudo -S shutdown -P now",
      "ssh_username": "{{user `ssh-username`}}",
      "ssh_password": "{{user `ssh-password`}}",
      "ssh_timeout": "20m",
      "ssh_handshake_attempts": "50",
      „depozitare”: [
      {
          "disk_size": "{{user `vm-disk-1-size`}}",
          „disk_thin_provisioned”: adevărat
      }
      ],
      "type": "vsphere-iso",
      "nume utilizator": "{{user `vcenter-username`}}",
      "vcenter_server": "{{user `vcenter-server`}}",
      "vm_name": "{{user `vm-name`}}"
    }
    ],
    „furnizori”: [
    {
        "tip": "coaja",
        "inline": ["curl -sSL https://raw.githubusercontent.com/vmware/cloud-init-vmware-guestinfo/master/install.sh | sudo sh -"]
    },
    {
        "tip": "coaja",
        "inline": ["mkdir $HOME/.ssh && echo {{ user `ssh-key` }} > $HOME/.ssh/authorized_keys"]
    },
    {
        "tip": "ansible",
        „playbook_file”: „../../ansible/packer.yml”
    },
    {
        "in linie": [
        „Echo „Build Template Packer -- Complete””
        ],
        "type": "coaja"
    }
    ]
}

fișier de date utilizator distribuit de către packer

#cloud-config
autoinstalare:
  versiunea: 1
  local: ro_US
  pachete:
    - open-vm-tools
    - python-is-python3
    - cloud-init
  tastatură:
    layout: en
    varianta: noi
  reţea:
    reţea:
      versiunea: 2
      ethernet:
        ens192:
          dhcp4: adevărat
          dhcp-identifier: mac
  depozitare:
    aspect:
      nume: lvm
  identitate:
    Nume gazdă: ubuntu
    nume de utilizator: ubuntu
    parola: $6$rounds=4096$8dkK1P/oE$2DGKKt0wLlTVJ7USY.0jN9du8FetmEr51yjPyeiR.zKE3DGFcitNL/nF1l62BLJNR87lQZixObuXYny.Mf17K1
  ssh:
    server de instalare: da
  datele utilizatorului:
    disable_root: false
  comenzi întârziate:
    - „sed -i „s/dhcp4: true/&\n dhcp-identifier: mac/” /target/etc/netplan/00-installer-config.yaml”
    - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/ubuntu

scriptul de curățare numit de Ansible provisioner

#!/bin/sh

set -e

# cloud init: mutați fișiere și modificați permisiunile
#mv /tmp/cloud-init/* /etc/cloud/cloud.cfg.d/
chown -R root:root /etc/cloud/cloud.cfg.d/

# curățați datele cloud-init
rm -rf /var/lib/cloud/*

ln -s /var/lib/cloud/instances /var/lib/cloud/instance

# curățați jurnalele de inițiere în cloud
rm -rf /var/log/cloud-init*

# curățați fișierele tmp
rm -rf /tmp/cloud-init

trunchiați -s 0 /etc/machine-id

rm /var/lib/dbus/machine-id

ln -s /etc/machine-id /var/lib/dbus/machine-id

Terraform

principal.tf

resursă „vsphere_virtual_machine” „vm” {
  nume = "${var.hostname}"
  #resource_pool_id = "${data.vsphere_compute_cluster.cluster.resource_pool_id}"
  resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
  datastore_id = „${data.vsphere_datastore.datastore.id}”

  num_cpus = var.vm_cpus
  memorie = var.vm_ram

  guest_id = „${data.vsphere_virtual_machine.template.guest_id}”
  scsi_type = „${data.vsphere_virtual_machine.template.scsi_type}”

  interfata retea {
    network_id = „${data.vsphere_network.network.id}”
    adapter_type = „${data.vsphere_virtual_machine.template.network_interface_types[0]}”
  }

  disc {
    etichetă = „disc0”
    dimensiune = "${var.os_disk_size}"
    eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
    thin_provisioned = „${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}”
  }

  „disc” dinamic {
    for_each = var.data_disk ? [1] :[]
    continut {
      #Toate câmpurile din resursa vsphere_virtual_disk sunt momentan imuabile și forțează o nouă resursă dacă este modificată.
      etichetă = „disc1”
      atașare = adevărat
      cale = „${vsphere_virtual_disk.data-disk[0].vmdk_path}”
      unit_number = 1
      datastore_id = „${data.vsphere_datastore.datastore.id}”
    }
  }

  extra_config = {
    "guestinfo.metadata" = base64gzip(templatefile ("${path.module}/templates/metadata.tmpl", { hostname = var.hostname }))
    "guestinfo.metadata.encoding" = "base64"
    „guestinfo.userdata” = base64gzip(templatefile(„${path.module}/templates/userdata.tmpl”, {
        hostname = var.hostname,
        domain = var.domain
    }))
    "guestinfo.userdata.encoding" = "base64"
  }

  clona {
    template_uuid = „${data.vsphere_virtual_machine.template.id}”
  }
}

userdata.tmpl

#cloud-config

preserve_hostname: false
manage_etc_hosts: adevărat
prefer_fqdn_over_hostname: adevărat
fqdn: „${hostname}.${domain}”

runcmd:
  - echo hello > /root/hello
  - atingeți /root/lol
Cloud-init v. 21.2-3-g899bfaa9-0ubuntu2~21.04.1 terminat la Mar, 28 Sep 2021 15:55:02 +0000. Sursă de date DataSourceNone. Mai sus 19,12 secunde
2021-09-28 15:55:02,449 - cc_final_message.py[AVERTISMENT]: sursă de date alternativă folosită
Puncte:0
drapel fr

Problema este specifică VMware vSphere. Pentru a o repara:

rm -rf /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg
rm -rf /etc/cloud/cloud.cfg.d/99-installer.cfg

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.