4.4. 将主机条目从 NIS 迁移到 IdM
NIS hosts
映射包含有关主机的信息,如主机名和 IP 地址。使用这个数据将 NIS 主机条目迁移到 Identity Management (IdM):
注意
当您在 IdM 中创建主机组时,会自动创建对应的 shadow NIS 组。不要在这些影子 NIS 组中使用 ipa netgroup-*
命令。使用 ipa netgroup-*
命令仅管理通过 netgroup-add
命令创建的原生 netgroups。
先决条件
- 在 NIS 服务器中具有 root 访问权限。
- IdM 中启用了 NIS。
- NIS 服务器被注册到 IdM。
步骤
安装
yp-tools
软件包:[root@nis-server ~]# dnf install yp-tools -y
在 NIS 服务器中使用以下内容创建
/root/nis-hosts.sh
脚本:#!/bin/sh # $1 is the NIS domain, $2 is the primary NIS server ypcat -d $1 -h $2 hosts | egrep -v "localhost|127.0.0.1" > /dev/shm/nis-map.hosts 2>&1 IFS=$'\n' for line in $(cat /dev/shm/nis-map.hosts); do IFS=' ' ipaddress=$(echo $line | awk '{print $1}') hostname=$(echo $line | awk '{print $2}') primary=$(ipa env xmlrpc_uri | tr -d '[:space:]' | cut -f3 -d: | cut -f3 -d/) domain=$(ipa env domain | tr -d '[:space:]' | cut -f2 -d:) if [ $(echo $hostname | grep "\." |wc -l) -eq 0 ] ; then hostname=$(echo $hostname.$domain) fi zone=$(echo $hostname | cut -f2- -d.) if [ $(ipa dnszone-show $zone 2>/dev/null | wc -l) -eq 0 ] ; then ipa dnszone-add --name-server=$primary --admin-email=root.$primary fi ptrzone=$(echo $ipaddress | awk -F. '{print $3 "." $2 "." $1 ".in-addr.arpa."}') if [ $(ipa dnszone-show $ptrzone 2>/dev/null | wc -l) -eq 0 ] ; then ipa dnszone-add $ptrzone --name-server=$primary --admin-email=root.$primary fi # Now create this entry ipa host-add $hostname --ip-address=$ipaddress ipa host-show $hostname done
以 IdM
admin
用户身份进行身份验证:[root@nis-server ~]# kinit admin
运行脚本。例如:
[root@nis-server ~]# sh /root/nis-hosts.sh nisdomain nis-server.example.com
注意此脚本不会迁移特殊主机配置,如别名。