Хотя я новичок в сценариях Packer и Kickstart, я пытаюсь автоматизировать установку ящиков CentOS 7 (в конечном итоге 8) в кластере VSphere. Мой код Packer вызывает сценарий Kickstart для завершения установки, но при этом возникают проблемы с подключением к сети. Поскольку каждый узел в кластере ESX - 6.5.X, я вижу, что взлом гостевого IP-адреса не требуется.
Когда я запускаю «packer build --debug» с PACLOG = 1 для большей подробности, я вижу, что мой код не выполняет шаг .Waiting for IP ... »:
==> vsphere-iso: Adding generated Floppy...
==> vsphere-iso: Set boot order...
==> vsphere-iso: Power on VM...
==> vsphere-iso: Waiting 10s for boot...
==> vsphere-iso: Typing boot command...
2020/06/09 18:40:15 packer-builder-vsphere-iso plugin: Special code '<esc>' found, replacing with: CodeEscape
2020/06/09 18:40:15 packer-builder-vsphere-iso plugin: Waiting 1 second
2020/06/09 18:40:20 packer-builder-vsphere-iso plugin: Special code '<enter>' found, replacing with: CodeReturnEnter
2020/06/09 18:40:20 packer-builder-vsphere-iso plugin: Waiting 1 second
2020/06/09 18:40:21 packer-builder-vsphere-iso plugin: [INFO] Waiting for IP, up to total timeout: 30m0s, settle timeout: 5s
==> vsphere-iso: Waiting for IP...
==> vsphere-iso: Post "https://<server name>.com/sdk": EOF
==> vsphere-iso: Step "StepWaitForIp" failed
Запустив установщик с установщиком с графическим интерфейсом пользователя или без него на виртуальной машине, я вижу, что на виртуальной машине не настроена сеть (адаптер включен, но IP-адрес отсутствует). Поскольку имя адаптера несовместимо, я пытаюсь позволить Packer использовать любые подключенные адаптеры и использовать DHCP для облегчения массового развертывания. Я пробовал «сеть --onboot yes --device = link --activate» и «network --onboot yes --activate», а также другие комбинации. Каждый раз файл создается в / etc / sysconfig / network-scripts /, но сеть все еще не установлена.
Я заменил все переменные в моем пакере JSON жестко запрограммированными переменными, но получил те же результаты.
В качестве проверки я также могу видеть временную виртуальную машину, указанную как виртуальную машину, принадлежащую сети в VSphere, и у нее есть действующий MAC.
Я также пытался убедиться, что установлен пакет open-vm-tools, но это не помогло.
Кто-нибудь сталкивался с этой проблемой?
Раздел Builders из файла упаковщика:
"builders": [
{
"type": "vsphere-iso",
"vcenter_server": "{{user `vsphere-server`}}",
"username": "{{user `vsphere-user`}}",
"password": "{{user `vsphere-password`}}",
"insecure_connection": "true",
"datacenter": "{{user `vsphere-datacenter`}}",
"cluster": "{{user `vsphere-cluster`}}",
"network": "{{user `vsphere-network`}}",
"host": "{{user `vsphere-host`}}",
"datastore": "{{user `vsphere-datastore`}}",
"vm_name": "{{user `vm-name`}}",
"notes": "Build via Packer",
"guest_os_type": "centos7_64Guest",
"boot_wait": "10s",
"boot_order": "disk,cdrom,floppy",
"communicator": "ssh",
"ssh_username": "root",
"ssh_password": "server",
"CPUs": "{{user `vm-cpu-num`}}",
"RAM": "{{user `vm-mem-size`}}",
"RAM_reserve_all": false,
"disk_controller_type": "pvscsi",
"disk_size": "{{user `vm-disk-size`}}",
"disk_thin_provisioned": true,
"network_card": "vmxnet3",
"convert_to_template": true,
"iso_urls": ["{{user `iso-url`}}"],
"iso_checksum": "{{user `iso-checksum`}}",
"iso_checksum_type": "{{user `iso-checksum-type`}}",
"floppy_files": ["ks.cfg"],
"boot_command": [
"<esc><wait>",
"linux inst.text ks=hd:fd0:/ks.cfg<enter><wait>"
KS.cfg:
```# Install a fresh new system (optional)
install
# Specify installation method to use for installation
# To use a different one comment out the 'url' one below, update
# the selected choice with proper options & un-comment it
cdrom
# Set language to use during installation and the default language to use on the installed system (required)
lang en_US.UTF-8
# Set system keyboard type / layout (required)
keyboard --vckeymap=us --xlayouts='us'
firstboot --disable
# Configure network information for target system and activate network devices in the installer environment (optional)
# --onboot enable device at a boot time
# --device device to be activated and / or configured with the network command
# --bootproto method to obtain networking configuration for device (default dhcp)
# --noipv6 disable IPv6 on this device
network --onboot yes --bootproto dhcp --noipv6
#network --bootproto=dhcp --onboot=yes --device=link --noipv6 --activate
# Set the system's root password (required)
# Plaintext password is: server
rootpw --iscrypted $6$rhel6usgcb$aS6oPGXcPKp3OtFArSrhRwu6sN8q2.yEGY7AIwDOQd23YCtiz9c5mXbid1BzX9bmXTEZi.hCzTEXFosVBI5ng0
# Configure firewall settings for the system (optional)
# --enabled reject incoming connections that are not in response to outbound requests
# --ssh allow sshd service through the firewall
# firewall --enabled --ssh
firewall --disabled
# Set up the authentication options for the system (required)
# --enableshadow enable shadowed passwords by default
# --passalgo hash / crypt algorithm for new passwords
# See the manual page for authconfig for a complete list of possible options.
authconfig --enableshadow --passalgo=sha512
# State of SELinux on the installed system (optional)
# Defaults to enforcing
selinux --permissive
# Set the system time zone (required)
timezone --utc America/Chicago
# Specify how the bootloader should be installed (required)
# Plaintext password is: password
bootloader --location=mbr --append="crashkernel=auto rhgb quiet" --password=$6$rhel6usgcb$kOzIfC4zLbuo3ECp1er99NRYikN419wxYMmons8Vm/37Qtg0T8aB9dKxHwqapz8wWAFu
autopart --type=lvm
# Initialize all disks
clearpart --linux --initlabel
services --enabled=NetworkManager,sshd
# Packages selection
%packages --ignoremissing
Require @Base
@Base
@minimal
# End of %packages section
%post
#sudo yum upgrade -y
yum -y install open-vm-tools
yum -y install sudo
systemctl enable vmtoolsd
systemctl start vmtoolsd
systemctl enable sshd
systemctl start sshd
%end
# Reboot after the installation is complete (optional)
# --eject attempt to eject CD or DVD media before rebooting
reboot --eject