From fc501232ab50d7b4e5aa1441d76515f4de1d275f Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Wed, 31 Aug 2005 16:46:17 +0000 Subject: initial deployment server implementation --- Makefile | 5 ++++- deployd.sh | 25 +++++++++++++++++++++++++ deployd.xinetd | 10 ++++++++++ drakpxelinux.spec | 2 ++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100755 deployd.sh create mode 100644 deployd.xinetd diff --git a/Makefile b/Makefile index fcfb58b..037f068 100644 --- a/Makefile +++ b/Makefile @@ -21,8 +21,11 @@ clean: install: all $(MAKE) -C po $@ - install -d $(RPM_BUILD_ROOT)/usr/{bin/,share/drakpxelinux/} + install -d $(RPM_BUILD_ROOT)/usr/{bin/,sbin/,share/drakpxelinux/} + install -d $(RPM_BUILD_ROOT)/etc/xinetd.d install -s -m755 $(PACKAGE).pl $(RPM_BUILD_ROOT)/usr/bin/drakpxelinux + install -m755 deployd.sh $(RPM_BUILD_ROOT)/usr/sbin/deployd + install -m644 deployd.xinetd $(RPM_BUILD_ROOT)/etc/xinetd.d/deployd # for d in $(SUBDIRS); do ( cd $$d ; make $@ ) ; done # rules to build a test rpm diff --git a/deployd.sh b/deployd.sh new file mode 100755 index 0000000..692196a --- /dev/null +++ b/deployd.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +PXE_ROOT=/var/lib/tftpboot/X86PC/linux/pxelinux.cfg + +log() { + logger -t deployd $@ +} + +read MAC_ADDR +PXE_ADDR=01-${MAC_ADDR//:/-} +PXE_FILE=${PXE_ROOT}/${PXE_ADDR} + +if [ -L ${PXE_FILE} ]; then + INST_LINK=`readlink ${PXE_FILE}` + BOOT_LINK=${INST_LINK/install/boot} + if [ ${INST_LINK} = ${BOOT_LINK} ]; then + log "${MAC_ADDR} was already installed" + elif ln -sf ${BOOT_LINK} ${PXE_FILE}; then + log "${MAC_ADDR} successfully installed" + else + log "unable to switch ${MAC_ADDR} to boot profile" + fi +else + log "failed to locate configuration for ${MAC_ADDR}" +fi diff --git a/deployd.xinetd b/deployd.xinetd new file mode 100644 index 0000000..e7715b0 --- /dev/null +++ b/deployd.xinetd @@ -0,0 +1,10 @@ +service deployd +{ + socket_type = stream + protocol = tcp + type = UNLISTED + wait = no + user = root + server = /usr/sbin/deployd + port = 3710 +} diff --git a/drakpxelinux.spec b/drakpxelinux.spec index ad768d6..f60d22d 100644 --- a/drakpxelinux.spec +++ b/drakpxelinux.spec @@ -51,6 +51,8 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root) %doc default TODO COPYING %{_bindir}/%{name} +%{_sbindir}/deployd +%{_sysconfdir}/xinetd.d/deployd #%{_datadir}/%{name}* %{_menudir}/%{name}* -- cgit v1.2.1