[Ovirt-devel] [PATCH node] Adds NTP support to the o-c-networking.

Darryl L. Pierce dpierce at redhat.com
Tue Feb 17 15:16:07 UTC 2009


In interactive mode, the user can enter one or more NTP servers and the
script will update /etc/ntp.conf accordingly. It will not overwrite any
existing servers, but will instead replace any that were defined
previously using o-c-networking.

In automated mode, if the user passes in the kernel argument "ovirt_ntp"
then those values will be used.

Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
---
 scripts/ovirt-config-networking |   36 +++++++++++++++++++++++++++++++++++-
 scripts/ovirt-early             |    8 +++++++-
 2 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/scripts/ovirt-config-networking b/scripts/ovirt-config-networking
index 5940d80..d296f44 100755
--- a/scripts/ovirt-config-networking
+++ b/scripts/ovirt-config-networking
@@ -17,6 +17,7 @@ trap '__st=$?; rm -rf "$WORKDIR"; stop_log; exit $__st' 0
 trap 'exit $?' 1 2 13 15
 
 CONFIG_FILE_ROOT="/files/etc/sysconfig/network-scripts/ifcfg"
+NTP_CONFIG_FILE="/etc/ntp.conf"
 
 function configure_interface
 {
@@ -197,6 +198,37 @@ function configure_dns
     fi
 }
 
+function configure_ntp
+{
+    local NTP=$1
+    local AUTO=$2
+    if [[ "$AUTO" == "AUTO" && -n "$OVIRT_NTP" ]]; then
+	NTP=$OVIRT_NTP
+    else
+	NTP=""
+    fi
+
+    if [ -z "$AUTO" ]; then
+	while true; do
+	    read -ep "Enter an NTP server (hit return when finished): "
+
+	    if [ -z "$REPLY" ]; then break; fi
+
+	    NTP="$NTP $REPLY"
+	done
+    fi
+
+    if [ -n "$NTP" ]; then
+	# strip out all current servers from /etc/npt.conf and insert our own
+	BACKUP="${WORKDIR}/ntp.conf-backup"
+	egrep -v '^server .* # added by ovirt-config-network' < $NTP_CONFIG_FILE > $BACKUP
+	for server in $NTP; do
+	    echo "server $server # added by ovirt-config-network" >> $BACKUP
+	done
+	cp -f $BACKUP $NTP_CONFIG_FILE
+    fi
+}
+
 function setup_menu
 {
     NICS=""
@@ -217,17 +249,19 @@ function setup_menu
 if [ "$1" == "AUTO" ]; then
     configure_interface "$OVIRT_BOOTIF" AUTO
     configure_dns "$OVIRT_DNS" AUTO
+    configure_ntp "$OVIRT_NTP" AUTO
 else
     setup_menu
 
     while true; do
         printf "\n\n oVirt Node Networking Configuration\n\n" >&2
 
-        select NIC in $NICS "DNS" "Save & Exit"
+        select NIC in $NICS "DNS" "NTP" "Save & Exit"
         do
             printf "\n"
             case "$NIC" in
                 "DNS") configure_dns "$OVIRT_DNS"; break ;;
+		"NTP") configure_ntp "$OVIRT_NTP"; break ;;
                 "Save & Exit") break 2;;
                 *) configure_interface $NIC $IFACE_NUMBER; break ;;
             esac
diff --git a/scripts/ovirt-early b/scripts/ovirt-early
index 37f5c6e..b757614 100755
--- a/scripts/ovirt-early
+++ b/scripts/ovirt-early
@@ -125,6 +125,7 @@ start() {
     #   anaconda format: ip=<client-ip> netmask=<netmask> gateway=<gw-ip>
     #   ipv6=dhcp|auto
     #   dns=server[,server]
+    #   ntp=server[,server]
     #   syslog=server[:port]
     #   collectd=server[:port]
     #   hostname=fqdn
@@ -184,6 +185,7 @@ start() {
     #   anaconda format: ip=<client-ip> netmask=<netmask> gateway=<gw-ip>
     #   ipv6=dhcp|auto
     #   dns=server[,server]
+    #   ntp=server[,server]
     # static network configuration
     ip_address=
     ip_gateway=
@@ -192,6 +194,7 @@ start() {
     gateway=
     ipv6=
     dns=
+    ntp=
 
     # hostname=fqdn
     # hostname
@@ -307,6 +310,9 @@ start() {
             dns=*)
             dns=${i#dns=}
             ;;
+	    ntp=*)
+	    ntp=$(i#ntp=}
+	    ;;
             hostname=*)
             hostname=${i#hostname=}
             ;;
@@ -331,7 +337,7 @@ start() {
         ip_gateway=$gateway
     fi
     # save boot parameters as defaults for ovirt-config-*
-    params="bootif init vol_boot_size vol_swap_size vol_root_size vol_config_size vol_logging_size vol_data_size local_boot standalone overcommit ip_address ip_netmask ip_gateway ipv6 dns syslog_server syslog_port collectd_server collectd_port bootparams hostname firstboot"
+    params="bootif init vol_boot_size vol_swap_size vol_root_size vol_config_size vol_logging_size vol_data_size local_boot standalone overcommit ip_address ip_netmask ip_gateway ipv6 dns ntp syslog_server syslog_port collectd_server collectd_port bootparams hostname firstboot"
     mount_config
     log "Updating $OVIRT_DEFAULTS"
     tmpaug=$(mktemp)
-- 
1.6.0.6




More information about the ovirt-devel mailing list