diff --git a/infra/image/build.sh b/infra/image/build.sh index 71679238..7de49e41 100755 --- a/infra/image/build.sh +++ b/infra/image/build.sh @@ -119,13 +119,6 @@ then deployed=true fi echo - - if $deployed; then - log info "= Enabling services =" - container_exec "${name}" systemctl enable fixnet - container_exec "${name}" systemctl enable fixipaip - echo - fi container_stop "${name}" diff --git a/infra/image/dockerfile/c10s b/infra/image/dockerfile/c10s index 2852aab5..fa22e0ec 100644 --- a/infra/image/dockerfile/c10s +++ b/infra/image/dockerfile/c10s @@ -31,6 +31,8 @@ COPY system-service/fixipaip.sh /root/ COPY system-service/fixnet.service /etc/systemd/system/ COPY system-service/fixipaip.service /etc/systemd/system/ RUN chmod +x /root/fixnet.sh /root/fixipaip.sh +RUN systemctl enable fixnet.service +RUN systemctl enable fixipaip.service STOPSIGNAL RTMIN+3 diff --git a/infra/image/dockerfile/c8s b/infra/image/dockerfile/c8s index 3cf629a0..3737ce79 100644 --- a/infra/image/dockerfile/c8s +++ b/infra/image/dockerfile/c8s @@ -34,6 +34,8 @@ COPY system-service/fixipaip.sh /root/ COPY system-service/fixnet.service /etc/systemd/system/ COPY system-service/fixipaip.service /etc/systemd/system/ RUN chmod +x /root/fixnet.sh /root/fixipaip.sh +RUN systemctl enable fixnet.service +RUN systemctl enable fixipaip.service STOPSIGNAL RTMIN+3 diff --git a/infra/image/dockerfile/c9s b/infra/image/dockerfile/c9s index daf181c4..be729e6f 100644 --- a/infra/image/dockerfile/c9s +++ b/infra/image/dockerfile/c9s @@ -30,6 +30,8 @@ COPY system-service/fixipaip.sh /root/ COPY system-service/fixnet.service /etc/systemd/system/ COPY system-service/fixipaip.service /etc/systemd/system/ RUN chmod +x /root/fixnet.sh /root/fixipaip.sh +RUN systemctl enable fixnet.service +RUN systemctl enable fixipaip.service STOPSIGNAL RTMIN+3 diff --git a/infra/image/dockerfile/fedora-latest b/infra/image/dockerfile/fedora-latest index acdcbcf0..ae6dbcfe 100644 --- a/infra/image/dockerfile/fedora-latest +++ b/infra/image/dockerfile/fedora-latest @@ -33,6 +33,8 @@ COPY system-service/fixipaip.sh /root/ COPY system-service/fixnet.service /etc/systemd/system/ COPY system-service/fixipaip.service /etc/systemd/system/ RUN chmod +x /root/fixnet.sh /root/fixipaip.sh +RUN systemctl enable fixnet.service +RUN systemctl enable fixipaip.service STOPSIGNAL RTMIN+3 diff --git a/infra/image/dockerfile/fedora-rawhide b/infra/image/dockerfile/fedora-rawhide index 42bb8967..c6f37397 100644 --- a/infra/image/dockerfile/fedora-rawhide +++ b/infra/image/dockerfile/fedora-rawhide @@ -33,6 +33,8 @@ COPY system-service/fixipaip.sh /root/ COPY system-service/fixnet.service /etc/systemd/system/ COPY system-service/fixipaip.service /etc/systemd/system/ RUN chmod +x /root/fixnet.sh /root/fixipaip.sh +RUN systemctl enable fixnet.service +RUN systemctl enable fixipaip.service STOPSIGNAL RTMIN+3 diff --git a/infra/image/system-service/fixipaip.service b/infra/image/system-service/fixipaip.service index ec56c0d4..13a6d6b8 100644 --- a/infra/image/system-service/fixipaip.service +++ b/infra/image/system-service/fixipaip.service @@ -1,6 +1,7 @@ [Unit] Description=Fix IPA server IP in IPA Server After=ipa.service +PartOf=ipa.service [Service] Type=oneshot @@ -9,4 +10,4 @@ StandardOutput=journal StandardError=journal [Install] -WantedBy=default.target +WantedBy=ipa.service diff --git a/infra/image/system-service/fixipaip.sh b/infra/image/system-service/fixipaip.sh index bc895bb4..d1d373e0 100755 --- a/infra/image/system-service/fixipaip.sh +++ b/infra/image/system-service/fixipaip.sh @@ -50,9 +50,9 @@ if [ -z "${FORWARDER}" ] || [ "${FORWARDER}" == "127.0.0.1" ]; then fi echo "Fix IPA:" -echo " HOSTNAME: '${HOSTNAME}'" -echo " IP: '${IP}'" -echo " PTR: '${PTR}'" +echo " HOSTNAME: '${HOSTNAME}'" +echo " IP: '${IP}'" +echo " PTR: '${PTR}'" echo " FORWARDER: '${FORWARDER}'" ZONES=$(ipa -e in_server=true dnszone-find --name-from-ip="${HOSTNAME}." \ diff --git a/infra/image/system-service/fixnet.service b/infra/image/system-service/fixnet.service index a546a2f2..c6b0749b 100644 --- a/infra/image/system-service/fixnet.service +++ b/infra/image/system-service/fixnet.service @@ -1,8 +1,5 @@ [Unit] -Description=Fix server IP in IPA Server -Wants=network.target -After=network.target -Before=ipa.service +Description=Fix /etc/hosts and with local DNS also /etc/resolv.conf [Service] Type=oneshot @@ -11,4 +8,4 @@ StandardOutput=journal StandardError=journal [Install] -WantedBy=ipa.service +WantedBy=container-ipa.target diff --git a/infra/image/system-service/fixnet.sh b/infra/image/system-service/fixnet.sh index 0bf6d036..13d0a8fe 100755 --- a/infra/image/system-service/fixnet.sh +++ b/infra/image/system-service/fixnet.sh @@ -39,26 +39,35 @@ if [ -z "${IP}" ] || ! valid_ipv4 "${IP}" ; then exit 1 fi +DOMAIN=${HOSTNAME#*.} + echo "Fix NET:" echo " HOSTNAME: '${HOSTNAME}'" -echo " IP: '${IP}'" +echo " DOMAIN: '${DOMAIN}'" +echo " IP: '${IP}'" echo -if grep -qE "^[^(#\s*)][0-9\.]+\s$HOSTNAME(\s|$)" /etc/hosts -then - sed -i.bak -e "s/.*${HOSTNAME}/${IP}\t${HOSTNAME}/" /etc/hosts -else - echo -e "$IP\t${HOSTNAME} ${HOSTNAME%%.*}" >> /etc/hosts -fi +# /etc/hosts -cp -a /etc/resolv.conf /etc/resolv.conf.fixnet -cat > /etc/resolv.conf <> /etc/hosts echo "/etc/hosts:" cat "/etc/hosts" + +# /etc/resolv.conf + +# If bind is not installed, exit +[ -f "/etc/named.conf" ] || exit 0 +# If dyndb is not enabled for bind, exit +grep -q '^dyndb "ipa"' "/etc/named.conf" || exit 0 + +cp -a /etc/resolv.conf /etc/resolv.conf.fixnet +cat > /etc/resolv.conf <