|
Copiez l'exemple de code ci-dessous dans le fichier update-hosts.sh.
![[Attention]](/images/caution.png) |
Attention |
|
Éditez le script pour utiliser vos adresses IPv4 et IPv6.
|
#!/usr/bin/env bash
set -euo pipefail
DOMAIN="lab.local"
HOSTS_FILE="/etc/hosts"
CLIENT_IPS=(
"172.28.101.6"
"2001:678:3fc:65:baad:caff:fefe:6"
)
CLIENT_NAME="clnt"
SERVER_IPS=(
"172.28.101.5"
"2001:678:3fc:65:baad:caff:fefe:5"
)
SERVER_NAME="srvr"
SERVER_ALIASES="ldap-srvr.${DOMAIN} nfs-srvr.${DOMAIN}"
if [[ ${EUID} -ne 0 ]]; then
echo "This script must be run as root." >&2
exit 1
fi
escape_sed_bre() {
sed 's/[][\\.^$*]/\\&/g'
}
update_host_entry() {
local ip="$1"
local name="$2"
local extra_aliases="${3-}"
local escaped_ip
escaped_ip=$(printf '%s\n' "${ip}" | escape_sed_bre)
sed -i "/^${escaped_ip}[[:space:]]/d" "${HOSTS_FILE}"
if [[ -n ${extra_aliases} ]]; then
echo "${ip} ${name}.${DOMAIN} ${name} ${extra_aliases}" >>"${HOSTS_FILE}"
else
echo "${ip} ${name}.${DOMAIN} ${name}" >>"${HOSTS_FILE}"
fi
}
for ip in "${CLIENT_IPS[@]}"; do
update_host_entry "${ip}" "${CLIENT_NAME}"
done
for ip in "${SERVER_IPS[@]}"; do
update_host_entry "${ip}" "${SERVER_NAME}" "${SERVER_ALIASES}"
done
exit 0
Lancez le script sur le client et sur le serveur.
sudo bash update-hosts.sh
Testez la résolution locale des noms depuis le client.
host ldap-srvr.lab.local
ldap-srvr.lab.local is an alias for srvr.lab.local.
srvr.lab.local has address 172.28.101.5
srvr.lab.local has IPv6 address 2001:678:3fc:65:baad:caff:fefe:5
host nfs-srvr.lab.local
nfs-srvr.lab.local is an alias for srvr.lab.local.
srvr.lab.local has address 172.28.101.5
srvr.lab.local has IPv6 address 2001:678:3fc:65:baad:caff:fefe:5
for ip in 172.28.101.5 2001:678:3fc:65:baad:caff:fefe:5; do
host $ip
done
5.101.28.172.in-addr.arpa domain name pointer srvr.lab.local.
5.101.28.172.in-addr.arpa domain name pointer srvr.
5.101.28.172.in-addr.arpa domain name pointer nfs-srvr.lab.local.
5.101.28.172.in-addr.arpa domain name pointer ldap-srvr.lab.local.
5.0.0.0.e.f.e.f.f.f.a.c.d.a.a.b.5.6.0.0.c.f.3.0.8.7.6.0.1.0.0.2.ip6.arpa domain name pointer srvr.lab.local.
5.0.0.0.e.f.e.f.f.f.a.c.d.a.a.b.5.6.0.0.c.f.3.0.8.7.6.0.1.0.0.2.ip6.arpa domain name pointer srvr.
5.0.0.0.e.f.e.f.f.f.a.c.d.a.a.b.5.6.0.0.c.f.3.0.8.7.6.0.1.0.0.2.ip6.arpa domain name pointer nfs-srvr.lab.local.
5.0.0.0.e.f.e.f.f.f.a.c.d.a.a.b.5.6.0.0.c.f.3.0.8.7.6.0.1.0.0.2.ip6.arpa domain name pointer ldap-srvr.lab.local. |