Vấn đề
Sau khi xây dựng mẫu Ubuntu 20.04 (cũng đã thử 21.04) với Packer, tôi không thể đặt cài đặt mới khi khởi tạo mẫu bằng Terraform. Cấu hình này không có vấn đề gì với Debian 10.
người đóng gói
{
"nhà xây dựng": [
{
"CPU": "{{người dùng `vm-cpu-num`}}",
"RAM": "{{người dùng `vm-mem-size`}}",
"RAM_reserve_all": đúng,
"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>",
"khởi động<nhập>",
"<enter><f10><chờ>"
],
"boot_wait": "3s",
"boot_order": "đĩa, cdrom",
"cụm": "{{người dùng `cụm`}}",
"convert_to_template": "true",
"kho dữ liệu": "{{người dùng `datastore`}}",
"disk_controller_type": "pvscsi",
"thư mục": "{{người dùng `thư mục`}}",
"guest_os_type": "ubuntu64Guest",
"máy chủ": "{{người dùng `máy chủ`}}",
"http_directory": "http",
"http_port_min" : "8000",
"http_port_max" : "8000",
"insecure_connection": "true",
"iso_paths": ["{{người dùng `iso-paths`}}"],
"bộ điều hợp mạng": [
{
"mạng": "{{người dùng `mạng`}}",
"thẻ mạng": "vmxnet3"
}
],
"password": "{{người dùng `vcenter-password`}}",
"shutdown_command": "echo '{{user `ssh-username`}}' | sudo -S shutdown -P now",
"ssh_username": "{{người dùng `ssh-username`}}",
"ssh_password": "{{người dùng `ssh-password`}}",
"ssh_timeout": "20 phút",
"ssh_handshake_attempts": "50",
"kho": [
{
"disk_size": "{{người dùng `vm-đĩa-1-size`}}",
"đĩa_thin_cung cấp": đúng
}
],
"type": "vsphere-iso",
"tên người dùng": "{{người dùng `vcenter-username`}}",
"vcenter_server": "{{người dùng `vcenter-server`}}",
"vm_name": "{{người dùng `vm-name`}}"
}
],
"nhà cung cấp": [
{
"loại": "vỏ",
"nội tuyến": ["curl -sSL https://raw.githubusercontent.com/vmware/cloud-init-vmware-guestinfo/master/install.sh | sudo sh -"]
},
{
"loại": "vỏ",
"inline": ["mkdir $HOME/.ssh && echo {{ user `ssh-key` }} > $HOME/.ssh/authorized_keys"]
},
{
"loại": "ansible",
"playbook_file": "../../ansible/packer.yml"
},
{
"nội tuyến": [
"echo 'Bản dựng mẫu Packer -- Hoàn thành'"
],
"loại": "vỏ"
}
]
}
tệp dữ liệu người dùng được phân phối bởi trình đóng gói
#cloud-config
tự động cài đặt:
phiên bản 1
ngôn ngữ: en_US
gói:
- open-vm-công cụ
- python-là-python3
- khởi tạo đám mây
bàn phím:
bố cục: vi
biến thể: chúng tôi
mạng:
mạng:
phiên bản: 2
ethernet:
vis192:
dhcp4: đúng
định danh dhcp: mac
kho:
cách trình bày:
tên: lvm
xác thực:
tên máy chủ: ubuntu
tên người dùng: ubuntu
mật khẩu: $6$rounds=4096$8dkK1P/oE$2DGKKt0wLlTVJ7USY.0jN9du8FetmEr51yjPyeiR.zKE3DGFcitNL/nF1l62BLJNR87lQZixObuXYny.Mf17K1
ssh:
máy chủ cài đặt: có
dữ liệu người dùng:
vô hiệu hóa_root: sai
lệnh muộn:
- '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
tập lệnh dọn dẹp được gọi bởi nhà cung cấp Ansible
#!/bin/sh
đặt -e
# cloud init: di chuyển tệp và thay đổi quyền
#mv /tmp/cloud-init/* /etc/cloud/cloud.cfg.d/
chown -R root:root /etc/cloud/cloud.cfg.d/
# dọn dẹp dữ liệu khởi tạo trên đám mây
rm -rf /var/lib/cloud/*
ln -s /var/lib/cloud/instance /var/lib/cloud/instance
# dọn dẹp nhật ký khởi tạo trên đám mây
rm -rf /var/log/cloud-init*
# dọn dẹp tập tin tmp
rm -rf /tmp/cloud-init
cắt bớt -s 0 /etc/machine-id
rm /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id
địa hình
chính.tf
tài nguyên "vsphere_virtual_machine" "vm" {
tên = "${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
bộ nhớ = var.vm_ram
guest_id = "${data.vsphere_virtual_machine.template.guest_id}"
scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}"
giao diện mạng {
network_id = "${data.vsphere_network.network.id}"
adapter_type = "${data.vsphere_virtual_machine.template.network_interface_types[0]}"
}
đĩa {
nhãn = "đĩa0"
size = "${var.os_disk_size}"
háo hức_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
}
"đĩa" động {
for_each = var.data_disk? [1] :[]
Nội dung {
#Tất cả các trường trong tài nguyên vsphere_virtual_disk hiện không thay đổi được và buộc phải cung cấp tài nguyên mới nếu thay đổi.
nhãn = "đĩa1"
đính kèm = đúng
đường dẫn = "${vsphere_virtual_disk.data-disk[0].vmdk_path}"
đơn vị_số = 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", {
tên máy chủ = var.hostname,
tên miền = var.domain
})))
"guestinfo.userdata.encoding" = "base64"
}
dòng vô tính {
template_uuid = "${data.vsphere_virtual_machine.template.id}"
}
}
userdata.tmpl
#cloud-config
bảo tồn_hostname: sai
quản lý_etc_hosts: đúng
prefer_fqdn_over_hostname: true
fqdn: "${hostname}.${domain}"
chạy cmd:
- lặp lại xin chào > /root/xin chào
- chạm /root/lol
Cloud-init v. 21.2-3-g899bfaa9-0ubuntu2~21.04.1 đã hoàn thành vào Thứ Ba, ngày 28 tháng 9 năm 2021 15:55:02 +0000. Nguồn dữ liệu DataSourceNone. Lên 19,12 giây
28-09-2021 15:55:02,449 - cc_final_message.py[CẢNH BÁO]: Nguồn dữ liệu dự phòng đã sử dụng