Darryl L. Pierce
2009-Feb-17 15:16 UTC
[Ovirt-devel] [PATCH node] Adds NTP support to the o-c-networking.
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