iblis.df.lth.se
- HCX Nexus Series NX465 4U Extended Depth Server Case 15 x 3.5″ HDD
- 1x AMD EPYC 7543 32 core
- 128 GB RAM
- 1x 512gb SSD
- OS: FreeBSD 14.2-RELEASE
- GPU: NVIDIA RTX 3090 (passthrough till bifrost)
- HBA: LSI 9200-8e kopplat till 2st disk arrays
noteringar
Kör vår bouncer, znc Konton skapas vid första inlogg, lösenord kollar genom ldap, saslauthd. ldap config för saslauthd har en egen config fil.
Kör vår irc brygga till discord, matterbridge
Kör distcc
poudriere
Kör poudriere för att bygga FreeBSD ports och agerar sen mirror genom http://pkg.dflund.se/.
Har två olika repos för paket, en vid HEAD
vid namn default och en med custom
patches som heter skunk
.
För ny release vid typ upgrade behöver du skapa ett nytt jail för att bygga i,
gör det genom följande kommando.
poudriere jail -c -j 14_2_amd64 -v 14.2-RELEASE -a amd64
För att bygga paket du vill ha så kör följande:
poudriere bulk -f /usr/local/etc/poudriere.d/packages.txt -j 14_2_amd64
Där /usr/local/etc/poudriere.d/packages.txt
är en textfil med paket du vill
installera, inklusive dess kategori.
Kolla dokumentationen för poudriere, du kan även ändra inställningarna för
programmen du ska bygga genom poudriere options
. Se då till att du ändrar för
ditt jail och inte alla andras.
Bygg alla installerade paket
Du lär vilja ha alla paket från vår egna repo, skapa en lista av alla
installerade paket genom pkg
genom följande:
pkg info -ao | awk '{ print $2 }' | sort > portlist.txt
Använd pkg.dflund.se som din egna mirror
Lägg till följande i din pkg config.
$ cat /usr/local/etc/pkg/repos/FreeBSD.conf
dflund: {
url: http://pkg.dflund.se/data/14_2_amd64-default/
mirror_type: http
priority: 100
enabled: yes
}
skunk: {
url: file:///klump/poudriere/data/packages/14_2_amd64-skunk
mirror_type: http
priority: 999
enabled: yes
}
FreeBSD: {
enabled: yes
priority: 1
}
znc
Vår irc bouncer, logga in på https://iblis.dflund.se:1025/ För att sen logga in genom valfri irc klient typ weechat
/server add EFNET iblis.dflund.se/1026 -tls -username=namn/EFNET -password=hunter2
/connect EFNET
bhyve
Använd vm-bhyve. Kolla exempel i /usr/vm
jails
Finns en massa jails också, exempelvis gamma mediawiki innan denna blev till För att starta mediawiki samt den gamla databasen så kan du köra
jailer start stretch
jexec -u root stretch
chroot /compat/ubuntu
source /etc/apache2/envvars
apache2
mysqld_safe --skip-grant-tables --skip-networking
jails skapas lättast med jailer.
Alternativt kan du skapa ett thinjail och bygga därifrån zfs clone
klump/jails/templates/14.2-RELEASE@base klump/jails/containers/thinjail
och sen
följa FreeBSD
handbook.
jail
Använd gärna jailer, här är en exempel jail.conf
exec.clean;
allow.raw_sockets;
mount.devfs;
namn {
$id = "2";
mount.devfs;
devfs_ruleset = 10;
$bridge = "bridge0";
$domain = "iblis";
vnet;
vnet.interface = "epair${id}b";
exec.prestart = "ifconfig epair${id} create up";
exec.prestart += "ifconfig epair${id}a up descr vnet-${name}";
exec.prestart += "ifconfig ${bridge} addm epair${id}a up";
exec.start = "/sbin/ifconfig lo0 127.0.0.1 up";
exec.start += "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown jail";
exec.poststop = "ifconfig ${bridge} deletem epair${id}a";
exec.poststop += "ifconfig epair${id}a destroy";
mount.fstab = "/usr/local/jails/fstab.d/namn.fstab";
host.hostname = "${name}.${domain}";
path = "/usr/local/jails/namn";
exec.consolelog = "/var/log/jail/${name}.log";
persist;
}
linux jail
Vill du ha ett linux jail kan du följa denna guiden.
Om du vill ha ett debian jail utan att behöva chroota så kan du skapa ett nytt
dataset med zfs create -p /klump/jails/namn
och sen köra debootstrap
--no-check-gpg --arch=amd64 daedalus /usr/local/jails/devuan/
http://pkgmaster.devuan.org/merged/
eller någon annan version av debian ist.
för daedalus. Se då till att du har mount.nodevfs
i din jail.conf fil i
/etc/jail.conf.d/
Här är ett exempel på en jail.conf för ett linux jail
exec.clean;
allow.raw_sockets;
#mount.devfs;
devuan {
# STARTUP/LOGGING
exec.start = "/sbin/openrc default";
exec.stop = "/sbin/openrc shutdown";
exec.consolelog = "/var/log/jail_console_${name}.log";
# PERMISSIONS
allow.raw_sockets;
exec.clean;
mount.nodevfs;
# not needed?
allow.mount;
allow.mount.devfs;
allow.mount.fdescfs;
allow.mount.procfs;
allow.mount.linprocfs;
allow.mount.linsysfs;
allow.mount.tmpfs;
enforce_statfs=1;
# HOSTNAME/PATH
host.hostname = "${name}.${domain}";
path = "/usr/local/jails/${name}";
# NETWORK
$bridge = "";
$domain = "dflund.se";
ip4 = "inherit";
# MOUNT
# MOUNT
mount += "devfs $path/dev devfs rw 0 0";
mount += "tmpfs $path/dev/shm tmpfs rw,size=1g,mode=1777 0 0";
mount += "fdescfs $path/dev/fd fdescfs rw,linrdlnk 0 0";
mount += "linprocfs $path/proc linprocfs rw 0 0";
mount += "linsysfs $path/sys linsysfs rw 0 0";
mount += "/tmp $path/tmp nullfs rw 0 0";
persist;
allow.socket_af;
}