Centos

使用 kickstart 安裝 CentOS 7 的靜態 IP 地址

  • March 17, 2017

kickstart使用文件安裝具有靜態 IP 網路的 CentOS 7 來賓虛擬機 時會引發以下錯誤:

[3.835698] dracut-cmdline[81]: parse-kickstart ERROR: 
   'network --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy': 
   missing --device

我懷疑問題是沒有在主機上設置具有靜態 IP 的橋接網路來替換預設的 NAT 配置。但是需要鍵入哪些特定命令才能設置解決此錯誤?


啟動文件:


啟動文件是:

#version=RHEL7
# System authorization information
auth --enableshadow --passalgo=sha512

# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --device=eno1 --onboot=on --activate
network  --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy
network  --hostname=localhost.localdomain
# Root password
rootpw --iscrypted someLongHashedPassword
# System timezone
timezone someTimeZone --isUtc --nontp
user --name=someUserName --password=someLongHashedPassword --iscrypted --gecos="someUserName"
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information.  Erases all partitions from the sda drive.
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part pv.204 --fstype="lvmpv" --ondisk=sda --size=1902212
part /boot/efi --fstype="efi" --ondisk=sda --size=200 --fsoptions="umask=0077,shortname=winnt"
part /boot --fstype="xfs" --ondisk=sda --size=500
volgroup centos --pesize=4096 pv.204
logvol /  --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos
logvol /home  --fstype="xfs" --size=230400 --name=home --vgname=centos
logvol swap  --fstype="swap" --size=7808 --name=swap --vgname=centos

%packages
@base
@compat-libraries
@core
@debugging
@development
@network-file-system-client
@remote-system-management
@security-tools
@smart-card
@virtualization-hypervisor
@virtualization-platform
@virtualization-tools
@virtualization-client
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

virt-install命令:


作為參考,virt-install觸發安裝的命令是:

virt-install \
  --name=public-centos7 \
  --disk path=/dev/mapper/centos-fifth,size=241 \
  --graphics none --vcpus=1 --memory=2048 \
  --location /tmp/CentOS-7-x86_64-Minimal-1611.iso \
  --network bridge=virbr0 --os-type=linux --os-variant=rhel7.0 \
  --initrd-inject=/tmp/vm.ks \
  --extra-args "ks=file:/tmp/vm.ks console=ttyS0"

目前配置:


此外,brctl show在主機上給出:

[root@remote-host ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.525400c4a345       yes             virbr0-nic
                                                       vnet0

添加--device=eno1


根據@thrig 的建議,我將 kickstart 文件的違規行更改為:

# Network information
network  --onboot=on --activate
network  --bootproto=static --ip=12.34.567.8aa --netmask=255.255.255.248 --gateway=12.34.567.8bb --nameserver=xx.xx.xx.xx,xx.xx.yy.yy --device=eno1
network  --hostname=localhost.localdomain  

這似乎解決了錯誤。但我還不確定,因為我還在解決下游問題。

錯誤消息指示“ missing --device”,因此可以嘗試將設備與網路配置行相關聯:

network  --bootproto=static --ip=... --device=eno1

如果設備名稱根據它們的 PCI 位置出現一些未知名稱,這可能會出現問題,儘管還有其他選項可以控制它(例如,使用ksdevice=eth0 net.ifnames=0 biosdevname=0核心參數進行 PXE 引導)。特別是,redhat“安裝指南”文件表明確實應該指定設備名稱:

請注意,這被視為已棄用的行為;在大多數情況下,您應該始終--device=為每個網路命令指定一個。--device=如果缺少選項,則未指定同一 Kickstart 文件中任何後續網路命令的行為。

引用自:https://unix.stackexchange.com/questions/352156