5.2. 使用外部 DHCP 配置 Satellite 服务器
要使用外部 DHCP 配置 Satellite 服务器,您必须完成以下步骤:
5.2.1. 配置外部 DHCP 服务器以用于 Satellite 服务器
要将运行 Red Hat Enterprise Linux 的外部 DHCP 服务器配置为 Satellite 服务器,您必须安装 ISC DHCP 服务和 Berkeley Internet 名称域(BIND)工具软件包。您还必须与 Satellite 服务器共享 DHCP 配置和租期文件。此流程中的示例使用分布式网络文件系统(NFS)协议共享 DHCP 配置和租期文件。
如果您使用 dnsmasq 作为外部 DHCP 服务器,请启用 dhcp-no-override
设置。这是必要的,因为 Satellite 在 grub2/
子目录下的 TFTP 服务器上创建配置文件。如果 dhcp-no-override
设置被禁用,主机会从根目录获取引导装载程序及其配置,这可能会导致错误。
流程
在 Red Hat Enterprise Linux 主机上,安装 ISC DHCP Service 和 Berkeley Internet Name Domain (BIND)工具软件包:
dnf install dhcp-server bind-utils
# dnf install dhcp-server bind-utils
Copy to Clipboard Copied! 生成安全令牌:
tsig-keygen -a hmac-md5 omapi_key
# tsig-keygen -a hmac-md5 omapi_key
Copy to Clipboard Copied! 编辑所有子网的
dhcpd
配置文件并添加tsig-keygen
生成的密钥。以下是一个示例:cat /etc/dhcp/dhcpd.conf default-lease-time 604800; max-lease-time 2592000; log-facility local7; subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.10 192.168.38.100; option routers 192.168.38.1; option subnet-mask 255.255.255.0; option domain-search "virtual.lan"; option domain-name "virtual.lan"; option domain-name-servers 8.8.8.8; } omapi-port 7911; key omapi_key { algorithm hmac-md5; secret "My_Secret"; }; omapi-key omapi_key;
# cat /etc/dhcp/dhcpd.conf default-lease-time 604800; max-lease-time 2592000; log-facility local7; subnet 192.168.38.0 netmask 255.255.255.0 { range 192.168.38.10 192.168.38.100; option routers 192.168.38.1; option subnet-mask 255.255.255.0; option domain-search "virtual.lan"; option domain-name "virtual.lan"; option domain-name-servers 8.8.8.8; } omapi-port 7911; key omapi_key { algorithm hmac-md5; secret "My_Secret"; }; omapi-key omapi_key;
Copy to Clipboard Copied! 请注意,
选项
router 值是您要与外部 DHCP 服务一起使用的 Satellite 服务器或 Capsule 服务器的 IP 地址。在服务器上,定义每个子网。不要为定义的子网设置 DHCP Capsule。
要防止冲突,请单独设置租期和保留范围。例如,如果租期范围是 192.168.38.10 到 192.168.38.100,在 Satellite Web UI 中,将保留范围定义为 192.168.38.101 到 192.168.38.250。
配置防火墙以从外部访问 DHCP 服务器:
firewall-cmd --add-service dhcp
# firewall-cmd --add-service dhcp
Copy to Clipboard Copied! 使更改持久:
firewall-cmd --runtime-to-permanent
# firewall-cmd --runtime-to-permanent
Copy to Clipboard Copied! 在 Satellite 服务器上,确定
foreman
用户的 UID 和 GID:id -u foreman id -g foreman
# id -u foreman 993 # id -g foreman 990
Copy to Clipboard Copied! 在 DHCP 服务器上,创建
foreman
用户和组,其 ID 与上一步中决定的相同:groupadd -g 990 foreman useradd -u 993 -g 990 -s /sbin/nologin foreman
# groupadd -g 990 foreman # useradd -u 993 -g 990 -s /sbin/nologin foreman
Copy to Clipboard Copied! 要确保配置文件可以访问,请恢复 read 和 execute 标记:
chmod o+rx /etc/dhcp/ chmod o+r /etc/dhcp/dhcpd.conf chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
# chmod o+rx /etc/dhcp/ # chmod o+r /etc/dhcp/dhcpd.conf # chattr +i /etc/dhcp/ /etc/dhcp/dhcpd.conf
Copy to Clipboard Copied! 启用并启动 DHCP 服务:
systemctl enable --now dhcpd
# systemctl enable --now dhcpd
Copy to Clipboard Copied! 使用 NFS 导出 DHCP 配置和租期文件:
dnf install nfs-utils systemctl enable --now nfs-server
# dnf install nfs-utils # systemctl enable --now nfs-server
Copy to Clipboard Copied! 为您要使用 NFS 导出的 DHCP 配置和租期文件创建目录:
mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
# mkdir -p /exports/var/lib/dhcpd /exports/etc/dhcp
Copy to Clipboard Copied! 要为创建的目录创建挂载点,请在
/etc/fstab
文件中添加以下行:/var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0 /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
/var/lib/dhcpd /exports/var/lib/dhcpd none bind,auto 0 0 /etc/dhcp /exports/etc/dhcp none bind,auto 0 0
Copy to Clipboard Copied! 在
/etc/fstab
中挂载文件系统:mount -a
# mount -a
Copy to Clipboard Copied! 确保
/etc/exports
中存在以下行:/exports 192.168.38.1(rw,async,no_root_squash,fsid=0,no_subtree_check) /exports/etc/dhcp 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide) /exports/var/lib/dhcpd 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide)
/exports 192.168.38.1(rw,async,no_root_squash,fsid=0,no_subtree_check) /exports/etc/dhcp 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide) /exports/var/lib/dhcpd 192.168.38.1(ro,async,no_root_squash,no_subtree_check,nohide)
Copy to Clipboard Copied! 请注意,您输入的 IP 地址是您要用于外部 DHCP 服务的 Satellite 或 Capsule IP 地址。
重新载入 NFS 服务器:
exportfs -rva
# exportfs -rva
Copy to Clipboard Copied! 为 DHCP omapi 端口 7911 配置防火墙:
firewall-cmd --add-port=7911/tcp
# firewall-cmd --add-port=7911/tcp
Copy to Clipboard Copied! 可选:配置防火墙以从外部访问 NFS。客户端使用 NFSv3 配置。
firewall-cmd \ --add-service mountd \ --add-service nfs \ --add-service rpc-bind \ --zone public
# firewall-cmd \ --add-service mountd \ --add-service nfs \ --add-service rpc-bind \ --zone public
Copy to Clipboard Copied! 使更改持久:
firewall-cmd --runtime-to-permanent
# firewall-cmd --runtime-to-permanent
Copy to Clipboard Copied!
5.2.2. 使用外部 DHCP 服务器配置 Satellite 服务器
您可以使用外部 DHCP 服务器配置 Satellite 服务器。
先决条件
- 确保您已配置了外部 DHCP 服务器,并且您已使用 Satellite 服务器共享 DHCP 配置和租期文件。更多信息请参阅 第 5.2.1 节 “配置外部 DHCP 服务器以用于 Satellite 服务器”。
流程
安装
nfs-utils
软件包:satellite-maintain packages install nfs-utils
# satellite-maintain packages install nfs-utils
Copy to Clipboard Copied! 为 NFS 创建 DHCP 目录:
mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
# mkdir -p /mnt/nfs/etc/dhcp /mnt/nfs/var/lib/dhcpd
Copy to Clipboard Copied! 更改文件所有者:
chown -R foreman-proxy /mnt/nfs
# chown -R foreman-proxy /mnt/nfs
Copy to Clipboard Copied! 验证与 NFS 服务器和远程过程调用(RPC)通信路径的通信:
showmount -e DHCP_Server_FQDN rpcinfo -p DHCP_Server_FQDN
# showmount -e DHCP_Server_FQDN # rpcinfo -p DHCP_Server_FQDN
Copy to Clipboard Copied! 在
/etc/fstab
文件中添加以下行:DHCP_Server_FQDN:/exports/etc/dhcp /mnt/nfs/etc/dhcp nfs ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcp_etc_t:s0" 0 0 DHCP_Server_FQDN:/exports/var/lib/dhcpd /mnt/nfs/var/lib/dhcpd nfs ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcpd_state_t:s0" 0 0
DHCP_Server_FQDN:/exports/etc/dhcp /mnt/nfs/etc/dhcp nfs ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcp_etc_t:s0" 0 0 DHCP_Server_FQDN:/exports/var/lib/dhcpd /mnt/nfs/var/lib/dhcpd nfs ro,vers=3,auto,nosharecache,context="system_u:object_r:dhcpd_state_t:s0" 0 0
Copy to Clipboard Copied! 在
/etc/fstab
中挂载文件系统:mount -a
# mount -a
Copy to Clipboard Copied! 要验证
foreman-proxy
用户可以访问通过网络共享的文件,请显示 DHCP 配置和租期文件:su foreman-proxy -s /bin/bash cat /mnt/nfs/etc/dhcp/dhcpd.conf cat /mnt/nfs/var/lib/dhcpd/dhcpd.leases exit
# su foreman-proxy -s /bin/bash $ cat /mnt/nfs/etc/dhcp/dhcpd.conf $ cat /mnt/nfs/var/lib/dhcpd/dhcpd.leases $ exit
Copy to Clipboard Copied! 输入
satellite-installer
命令,对/etc/foreman-proxy/settings.d/dhcp.yml
文件进行以下更改:satellite-installer \ --enable-foreman-proxy-plugin-dhcp-remote-isc \ --foreman-proxy-dhcp-provider=remote_isc \ --foreman-proxy-dhcp-server=My_DHCP_Server_FQDN \ --foreman-proxy-dhcp=true \ --foreman-proxy-plugin-dhcp-remote-isc-dhcp-config /mnt/nfs/etc/dhcp/dhcpd.conf \ --foreman-proxy-plugin-dhcp-remote-isc-dhcp-leases /mnt/nfs/var/lib/dhcpd/dhcpd.leases \ --foreman-proxy-plugin-dhcp-remote-isc-key-name=omapi_key \ --foreman-proxy-plugin-dhcp-remote-isc-key-secret=My_Secret \ --foreman-proxy-plugin-dhcp-remote-isc-omapi-port=7911
# satellite-installer \ --enable-foreman-proxy-plugin-dhcp-remote-isc \ --foreman-proxy-dhcp-provider=remote_isc \ --foreman-proxy-dhcp-server=My_DHCP_Server_FQDN \ --foreman-proxy-dhcp=true \ --foreman-proxy-plugin-dhcp-remote-isc-dhcp-config /mnt/nfs/etc/dhcp/dhcpd.conf \ --foreman-proxy-plugin-dhcp-remote-isc-dhcp-leases /mnt/nfs/var/lib/dhcpd/dhcpd.leases \ --foreman-proxy-plugin-dhcp-remote-isc-key-name=omapi_key \ --foreman-proxy-plugin-dhcp-remote-isc-key-secret=My_Secret \ --foreman-proxy-plugin-dhcp-remote-isc-omapi-port=7911
Copy to Clipboard Copied! - 将 DHCP 服务与适当的子网和域关联。