diff --git a/clientside/configure b/clientside/configure index 06a800833ab872c3c344d396fee7e6d6803c4325..9efd60b678a56b8df7c7185360c13dfce0906bd6 100755 --- a/clientside/configure +++ b/clientside/configure @@ -4616,6 +4616,7 @@ outfiles="Makeconf GNUmakefile setversion \ tmcc/ubuntu15/GNUmakefile \ tmcc/ubuntu16/GNUmakefile \ tmcc/ubuntu16-ms/GNUmakefile \ + tmcc/ubuntu18/GNUmakefile \ tmcc/linux-ms/GNUmakefile \ tmcc/archlinux/GNUmakefile \ tmcc/alpine/GNUmakefile \ diff --git a/clientside/configure.ac b/clientside/configure.ac index cf891069c5a3e3748fc93a16fbc853127f26ad93..ccdbf692ff41462a92d16b41502118560b670e11 100644 --- a/clientside/configure.ac +++ b/clientside/configure.ac @@ -304,6 +304,7 @@ outfiles="Makeconf GNUmakefile setversion \ tmcc/ubuntu15/GNUmakefile \ tmcc/ubuntu16/GNUmakefile \ tmcc/ubuntu16-ms/GNUmakefile \ + tmcc/ubuntu18/GNUmakefile \ tmcc/linux-ms/GNUmakefile \ tmcc/archlinux/GNUmakefile \ tmcc/alpine/GNUmakefile \ diff --git a/clientside/event/linktest/iperf/GNUmakefile.in b/clientside/event/linktest/iperf/GNUmakefile.in index e50796412c1c8fae84f168c22e2c12327558c73f..035b40dd925734dbf6e56f39a4a9390755f09717 100644 --- a/clientside/event/linktest/iperf/GNUmakefile.in +++ b/clientside/event/linktest/iperf/GNUmakefile.in @@ -29,7 +29,7 @@ SYSTEM := $(shell $(SRCDIR)/../../../tmcc/osstuff.sh -o) IPERFVERSION = 2.0.2 ifeq ($(SYSTEM),Linux) OSTAG=$(shell $(SRCDIR)/../../../tmcc/osstuff.sh -t) -ifneq (,$(filter $(OSTAG),alpine debian9 debianS)) +ifneq (,$(filter $(OSTAG),alpine debian9 debianS ubuntu18)) IPERFVERSION = 2.0.10 # If 2.0.10, we have to disable 64-bit seq numbers; they mess up the # client_hdr size in a backwards-incompat way. diff --git a/clientside/tmcc/ubuntu18/GNUmakefile.in b/clientside/tmcc/ubuntu18/GNUmakefile.in new file mode 100644 index 0000000000000000000000000000000000000000..89f58d6d3d33106065b4f401e20e432f114f0086 --- /dev/null +++ b/clientside/tmcc/ubuntu18/GNUmakefile.in @@ -0,0 +1,155 @@ +# +# Copyright (c) 2000-2018 University of Utah and the Flux Group. +# +# {{{EMULAB-LICENSE +# +# This file is part of the Emulab network testbed software. +# +# This file is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or (at +# your option) any later version. +# +# This file is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public +# License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this file. If not, see . +# +# }}} +# + +# +# XXX ONLY RUN THIS INSTALL ON AN UBUNTU LINUX TESTBED NODE! +# +# Trivial. These things just need to be installed into the right place +# on a testbed node before cutting an image. +# +# +SRCDIR = @srcdir@ +TESTBED_SRCDIR = @top_srcdir@ +OBJDIR = @top_builddir@ +SUBDIR = $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR)) + +include $(OBJDIR)/Makeconf + +SCRIPTS = + +# +# Force dependencies on the scripts so that they will be rerun through +# configure if the .in file is changed. +# +all: supfile ifcfgs + +include $(TESTBED_SRCDIR)/GNUmakerules + +SYSETCDIR = $(DESTDIR)/etc +ETCDIR = $(DESTDIR)$(CLIENT_ETCDIR) +BINDIR = $(DESTDIR)$(CLIENT_BINDIR) +VARDIR = $(DESTDIR)$(CLIENT_VARDIR) +RCDIR = $(SYSETCDIR) +RRCDIR = /etc +INSTALL = /usr/bin/install -c +COMMON = $(SRCDIR)/../common +DEFRUNLVLDIR ?= $(SYSETCDIR)/rc3.d +# group to use for directories (dir-install) +DIRGROUP ?= root + +install client-install: common-install etc-install \ + script-install bin-install sysetc-fixup sysetc-install \ + systemd-install + @echo "Remember to install the PEM files if necessary" + +simple-install: common-install script-install bin-install + +dir-install: + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/network + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/rsyslog.d + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/sudoers.d + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/systemd + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/systemd/system + #$(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/systemd/system/network-online.target.wants + #$(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/systemd/system/networking.service.wants + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/systemd/system/multi-user.target.wants + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/udev + $(INSTALL) -m 755 -o root -g root -d $(SYSETCDIR)/udev/rules.d + $(INSTALL) -m 755 -o root -g root -d $(DESTDIR)/lib/systemd/system + +common-install: dir-install + (cd ../common; $(MAKE) DESTDIR=$(DESTDIR) local-install) + +bin-install: dir-install + (cd ../linux; $(MAKE) DESTDIR=$(DESTDIR) RCDIR=$(RCDIR) USES_SYSTEMD=1 bin-install) + $(INSTALL) -m 755 $(SRCDIR)/emulab-networkd.sh \ + $(BINDIR)/emulab-networkd.sh + $(INSTALL) -m 755 $(SRCDIR)/emulab-networkd-udev-helper.sh \ + $(BINDIR)/emulab-networkd-udev-helper.sh + +etc-install: dir-install common-sysetc-install + if [ "$(NOPASSWD)" != "1" ]; then \ + $(INSTALL) -m 644 $(SRCDIR)/group $(ETCDIR)/group ; \ + $(INSTALL) -m 644 $(SRCDIR)/passwd $(ETCDIR)/passwd ; \ + $(INSTALL) -m 600 $(SRCDIR)/shadow $(ETCDIR)/shadow ; \ + $(INSTALL) -m 600 $(SRCDIR)/gshadow $(ETCDIR)/gshadow ; \ + fi + if [ "$(NOHOSTS)" != "1" ]; then \ + $(INSTALL) -m 644 $(SRCDIR)/hosts $(ETCDIR)/hosts ; \ + fi + +common-sysetc-install: dir-install + # Tell ../linux/GNUMakefile.in that we want systemd files, not SYSV + (cd ../linux; $(MAKE) DESTDIR=$(DESTDIR) RCDIR=$(RCDIR) RRCDIR=$(RRCDIR) USES_SYSTEMD=1 sysetc-install) + +sysetc-fixup: + rm -rf $(SYSETCDIR)/modules.conf $(SYSETCDIR)/cron.pend \ + $(SYSETCDIR)/sysconfig $(SYSETCDIR)/init.d/ntpd + rm -f $(SYSETCDIR)/ntp.drift + rm -f $(SYSETCDIR)/dhclient-enter-hooks $(SYSETCDIR)/dhclient-exit-hooks + rm -f $(SYSETCDIR)/rc.local + +sysetc-install: dir-install + $(INSTALL) -m 644 $(SRCDIR)/rsyslog-emulab.conf $(SYSETCDIR)/rsyslog.d/40-emulab.conf + rm -f $(SYSETCDIR)/rsyslog.d/60-emulab.conf + $(INSTALL) -m 644 $(SRCDIR)/sudoers $(SYSETCDIR)/sudoers.d/99-emulab + @if [ -z "$(NONTP)" ]; then \ + $(INSTALL) -m 644 $(SRCDIR)/ntp.conf $(SYSETCDIR)/ntp.conf; \ + $(INSTALL) -m 644 -o ntp -g ntp /dev/null /var/lib/ntp/ntp.drift ; \ + fi + $(INSTALL) -m 644 $(SRCDIR)/99-emulab-networkd.rules \ + $(SYSETCDIR)/udev/rules.d/99-emulab-networkd.rules + +systemd-install: dir-install + #$(INSTALL) -m 644 $(SRCDIR)/ifup-wait-emulab-cnet.service \ + # $(SYSETCDIR)/systemd/system/ifup-wait-emulab-cnet.service + #$(INSTALL) -m 644 $(SRCDIR)/ifup-wait-emulab-cnet.service \ + # $(ETCDIR)/ifup-wait-emulab-cnet.service + #rm -f $(SYSETCDIR)/systemd/system/network-online.target.wants/ifup-wait-all-auto.service + #ln -sf ../ifup-wait-emulab-cnet.service \ + # $(SYSETCDIR)/systemd/system/network-online.target.wants/ifup-wait-emulab-cnet.service + #$(INSTALL) -m 644 $(SRCDIR)/networking-emulab.service \ + # $(SYSETCDIR)/systemd/system/networking-emulab.service + #ln -sf ../networking-emulab.service \ + # $(SYSETCDIR)/systemd/system/networking.service.wants/networking-emulab.service + #ln -sf ../networking-emulab.service \ + # $(SYSETCDIR)/systemd/system/network-online.target.wants/networking-emulab.service + #@if [ -z "$(NONTP)" ]; then \ + # $(INSTALL) -m 644 $(SRCDIR)/ntp.service $(SYSETCDIR)/systemd/system ; \ + # ln -sf ../ntp.service \ + # $(SYSETCDIR)/systemd/system/multi-user.target.wants/ntp.service ; \ + #fi + # Kick the init process to read our newly-installed unit files + # (i.e., so an immediate tbprepare will work...) + $(INSTALL) -m 644 $(SRCDIR)/emulab-networkd@.service \ + $(DESTDIR)/lib/systemd/system/emulab-networkd@.service + @if [ -z "$(DESTDIR)" ]; then \ + systemctl daemon-reload; \ + fi + +script-install: dir-install $(SCRIPTS) + (cd ../linux; $(MAKE) DESTDIR=$(DESTDIR) RCDIR=$(RCDIR) USES_SYSTEMD=1 script-install) + +genirack-install: + +sfs-install: diff --git a/clientside/tmcc/ubuntu18/group b/clientside/tmcc/ubuntu18/group new file mode 100644 index 0000000000000000000000000000000000000000..aeeee3d418cb080b00085a484c96eccb030776d5 --- /dev/null +++ b/clientside/tmcc/ubuntu18/group @@ -0,0 +1,56 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4:syslog +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +systemd-journal:x:101: +systemd-network:x:102: +systemd-resolve:x:103: +input:x:104: +crontab:x:105: +syslog:x:106: +messagebus:x:107: +mlocate:x:108: +uuidd:x:109: +ssh:x:110: +lpadmin:x:111: +sambashare:x:112: +ntp:x:113: +ssl-cert:x:114: +_cvsadmin:x:115: +postfix:x:116: +postdrop:x:117: diff --git a/clientside/tmcc/ubuntu18/gshadow b/clientside/tmcc/ubuntu18/gshadow new file mode 100644 index 0000000000000000000000000000000000000000..16412ee36ea6fdaebaca013298a75138899c0d3d --- /dev/null +++ b/clientside/tmcc/ubuntu18/gshadow @@ -0,0 +1,56 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*::syslog +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +systemd-journal:!:: +systemd-network:!:: +systemd-resolve:!:: +input:!:: +crontab:!:: +syslog:!:: +messagebus:!:: +mlocate:!:: +uuidd:!:: +ssh:!:: +lpadmin:!:: +sambashare:!:: +ntp:!:: +ssl-cert:!:: +_cvsadmin:!:: +postfix:!:: +postdrop:!:: diff --git a/clientside/tmcc/ubuntu18/hosts b/clientside/tmcc/ubuntu18/hosts new file mode 100644 index 0000000000000000000000000000000000000000..a40a2ee7512c9dcb0b5ea4b26ba1eb4538eb6dd3 --- /dev/null +++ b/clientside/tmcc/ubuntu18/hosts @@ -0,0 +1,10 @@ +# +# Hosts Database. +# +127.0.0.1 localhost loghost + + +# The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters diff --git a/clientside/tmcc/ubuntu18/ntp.conf b/clientside/tmcc/ubuntu18/ntp.conf new file mode 100644 index 0000000000000000000000000000000000000000..109fbdd23adbccc9e94e8bf04830329da8bde09b --- /dev/null +++ b/clientside/tmcc/ubuntu18/ntp.conf @@ -0,0 +1,12 @@ +# +# Generic Emulab NTP client configuration. +# + +driftfile /var/lib/ntp/ntp.drift + +# disallow most accesses, most importantly 'monlist' queries +# XXX again, not ideal but works with really old ntpds +restrict default nomodify nopeer noquery notrap +restrict 127.0.0.1 + +server ntp1 iburst diff --git a/clientside/tmcc/ubuntu18/passwd b/clientside/tmcc/ubuntu18/passwd new file mode 100644 index 0000000000000000000000000000000000000000..dd80aad1808b26e7bf0f9bec540e5c4c7e10ae59 --- /dev/null +++ b/clientside/tmcc/ubuntu18/passwd @@ -0,0 +1,28 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin +bin:x:2:2:bin:/bin:/usr/sbin/nologin +sys:x:3:3:sys:/dev:/usr/sbin/nologin +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/usr/sbin/nologin +man:x:6:12:man:/var/cache/man:/usr/sbin/nologin +lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin +mail:x:8:8:mail:/var/mail:/usr/sbin/nologin +news:x:9:9:news:/var/spool/news:/usr/sbin/nologin +uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin +proxy:x:13:13:proxy:/bin:/usr/sbin/nologin +www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin +backup:x:34:34:backup:/var/backups:/usr/sbin/nologin +list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin +irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin +nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin +systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin +systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin +syslog:x:102:106::/home/syslog:/usr/sbin/nologin +messagebus:x:103:107::/nonexistent:/usr/sbin/nologin +_apt:x:104:65534::/nonexistent:/usr/sbin/nologin +uuidd:x:105:109::/run/uuidd:/usr/sbin/nologin +sshd:x:106:65534::/run/sshd:/usr/sbin/nologin +ntp:x:107:113::/nonexistent:/usr/sbin/nologin +postfix:x:108:116::/var/spool/postfix:/usr/sbin/nologin +statd:x:109:65534::/var/lib/nfs:/usr/sbin/nologin diff --git a/clientside/tmcc/ubuntu18/rsyslog-emulab.conf b/clientside/tmcc/ubuntu18/rsyslog-emulab.conf new file mode 100644 index 0000000000000000000000000000000000000000..2196e3835107b611a10b9cdc1117855b6c0cb352 --- /dev/null +++ b/clientside/tmcc/ubuntu18/rsyslog-emulab.conf @@ -0,0 +1,7 @@ +# Emulab stuff +# +local5.* -/var/log/emulab.log +& stop + +# remote logging of ssh attempts +auth.info @users diff --git a/clientside/tmcc/ubuntu18/shadow b/clientside/tmcc/ubuntu18/shadow new file mode 100644 index 0000000000000000000000000000000000000000..cd9404fafbabc8e15603c41695740a5cb6934a99 --- /dev/null +++ b/clientside/tmcc/ubuntu18/shadow @@ -0,0 +1,28 @@ +root:$6$1H2Rd7Lx$kw5NXON0JCPY6yjyqXna.6mZeV89c5aIxzYJEzSeYJl8MrVOpFc1mVA1b61SLr4tM0hmimiE1B1tuxPZSuCZM/:17665:0:99999:7::: +daemon:*:17660:0:99999:7::: +bin:*:17660:0:99999:7::: +sys:*:17660:0:99999:7::: +sync:*:17660:0:99999:7::: +games:*:17660:0:99999:7::: +man:*:17660:0:99999:7::: +lp:*:17660:0:99999:7::: +mail:*:17660:0:99999:7::: +news:*:17660:0:99999:7::: +uucp:*:17660:0:99999:7::: +proxy:*:17660:0:99999:7::: +www-data:*:17660:0:99999:7::: +backup:*:17660:0:99999:7::: +list:*:17660:0:99999:7::: +irc:*:17660:0:99999:7::: +gnats:*:17660:0:99999:7::: +nobody:*:17660:0:99999:7::: +systemd-network:*:17660:0:99999:7::: +systemd-resolve:*:17660:0:99999:7::: +syslog:*:17660:0:99999:7::: +messagebus:*:17660:0:99999:7::: +_apt:*:17660:0:99999:7::: +uuidd:*:17660:0:99999:7::: +sshd:*:17660:0:99999:7::: +ntp:*:17668:0:99999:7::: +postfix:*:17668:0:99999:7::: +statd:*:17668:0:99999:7::: diff --git a/clientside/tmcc/ubuntu18/sudoers b/clientside/tmcc/ubuntu18/sudoers new file mode 100644 index 0000000000000000000000000000000000000000..752628eb9f64191cb28d4f7c69b2e3ba19ce743f --- /dev/null +++ b/clientside/tmcc/ubuntu18/sudoers @@ -0,0 +1,5 @@ +Defaults !env_reset +Defaults !mail_badpass + +%admin ALL=(ALL) NOPASSWD: ALL +%root ALL=(ALL) NOPASSWD: ALL diff --git a/configure b/configure index d6cfcd645988da395ef9ac1751fef275182739df..0dfcc304e990db148c4d2f4f4342c79e08e88172 100755 --- a/configure +++ b/configure @@ -7202,6 +7202,7 @@ outfiles="$outfiles clientside/GNUmakefile clientside/setversion \ clientside/tmcc/ubuntu15/GNUmakefile \ clientside/tmcc/ubuntu16/GNUmakefile \ clientside/tmcc/ubuntu16-ms/GNUmakefile \ + clientside/tmcc/ubuntu18/GNUmakefile \ clientside/tmcc/linux-ms/GNUmakefile \ clientside/tmcc/archlinux/GNUmakefile \ clientside/tmcc/alpine/GNUmakefile \ diff --git a/configure.ac b/configure.ac index 9d2a3164e1e862e5f4e76bb731cf75eecdf8edb4..4955cac49db088ac950b12bd4cdf27cd975d8f57 100644 --- a/configure.ac +++ b/configure.ac @@ -1523,6 +1523,7 @@ outfiles="$outfiles clientside/GNUmakefile clientside/setversion \ clientside/tmcc/ubuntu15/GNUmakefile \ clientside/tmcc/ubuntu16/GNUmakefile \ clientside/tmcc/ubuntu16-ms/GNUmakefile \ + clientside/tmcc/ubuntu18/GNUmakefile \ clientside/tmcc/linux-ms/GNUmakefile \ clientside/tmcc/archlinux/GNUmakefile \ clientside/tmcc/alpine/GNUmakefile \