From 83aebf933fc4fbf0de503131f8f19eb877426ef8 Mon Sep 17 00:00:00 2001 From: pi-farm Date: Fri, 17 Nov 2023 18:28:21 +0100 Subject: [PATCH] init --- .dockerignore | 5 ++ README.md | 31 +++++++++ build_run.sh | 9 +++ docker-compose.yml | 32 +++++++++ dockerfile | 39 +++++++++++ init-script.sh | 5 ++ root/etc/.DS_Store | Bin 0 -> 6148 bytes root/etc/._.DS_Store | Bin 0 -> 4096 bytes root/etc/s6-overlay/.DS_Store | Bin 0 -> 6148 bytes root/etc/s6-overlay/._.DS_Store | Bin 0 -> 4096 bytes .../s6-rc.d/init-pxe-boot-config/run | 6 ++ .../s6-rc.d/init-pxe-boot-config/type | 1 + .../s6-rc.d/init-pxe-boot-config/up | 1 + .../user/contents.d/init-pxe-boot-config | 0 samba/gdbcommands | 2 + samba/smb.conf | 64 ++++++++++++++++++ samba/smb.conf.ucf-old | 64 ++++++++++++++++++ scripts/first_run.sh | 4 ++ scripts/setup.sh | 4 ++ scripts/update.sh | 7 ++ 20 files changed, 274 insertions(+) create mode 100644 .dockerignore create mode 100755 README.md create mode 100755 build_run.sh create mode 100644 docker-compose.yml create mode 100755 dockerfile create mode 100644 init-script.sh create mode 100755 root/etc/.DS_Store create mode 100755 root/etc/._.DS_Store create mode 100755 root/etc/s6-overlay/.DS_Store create mode 100755 root/etc/s6-overlay/._.DS_Store create mode 100755 root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/run create mode 100755 root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/type create mode 100755 root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/up create mode 100755 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-pxe-boot-config create mode 100644 samba/gdbcommands create mode 100644 samba/smb.conf create mode 100644 samba/smb.conf.ucf-old create mode 100644 scripts/first_run.sh create mode 100644 scripts/setup.sh create mode 100644 scripts/update.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d7ac81e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.git +.gitignore +srv +RPi-PXE-Server + diff --git a/README.md b/README.md new file mode 100755 index 0000000..5e38ccf --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +HowToBuild and setup + +Clone this repo: git clone https://gitea.pi-farm.duckdns.org/meik/pxe-server.git +and cd into it: cd pxe-server + +run: bash start.sh + +1. choose (b) to build the image +2. restart your pc +3. edit the p2-include-handle file in RPi-PXE-Server folder (look here: https://github.com/beta-tester/RPi-PXE-Server#p2-include-handle--c2-custom-handle) +4. run bash start.sh again an choose (s) for setup +5. restart your pc +6. run bash start.sh again an choose (u) for update + +afer that, your pc is ready + + + +to check, if the volumes are mounted, go into the running container: +docker exec -it pxe-container bash +- run: df -h +- run: showmount -e + +Check if all services are up and running: +systemctl status chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server + +if not, try to start the services: +systemctl start chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server + + + diff --git a/build_run.sh b/build_run.sh new file mode 100755 index 0000000..ef977b4 --- /dev/null +++ b/build_run.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +docker stop pxe-container-s6 +docker rm pxe-container-s6 +docker rmi pxe-image:s6-test01 + +docker build -t pxe-image:s6-test01 . +#docker run -it --privileged --net=host --volume ${PWD}/RPi-PXE-Server:/app/RPi-PXE-Server --volume ${PWD}/srv:/srv --name pxe-container-s6 pxe-image:s6-test01 +##docker exec -it pxe-container-s6 bash diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..63ff2e9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3.7' +services: + pxe-container-s6: + build: . + stdin_open: true + tty: true + privileged: true + network_mode: host + volumes: + - ${PWD}/samba:/etc/samba + - ${PWD}/RPi-PXE-Server:/app/RPi-PXE-Server + - ${PWD}/srv:/srv + - ${PWD}/media:/media/ + - /boot:/boot + container_name: pxe-container + image: pxe-image:s6-test01 + + pxe-samba: + image: gists/samba-server + container_name: samba-server + ports: + - "0.0.0.0:137:137/udp" + - "0.0.0.0:138:138/udp" + - "0.0.0.0:139:139/tcp" + - "0.0.0.0:445:445/tcp" + volumes: + - ${PWD}/samba:/etc/samba + - ${PWD}/srv:/srv + - ${PWD}/media:/media/ +# restart: unless-stoped + depends_on: + - pxe-container-s6 diff --git a/dockerfile b/dockerfile new file mode 100755 index 0000000..f87c961 --- /dev/null +++ b/dockerfile @@ -0,0 +1,39 @@ +FROM ubuntu:latest + +RUN apt update && apt upgrade -y && apt autoremove -y +RUN apt install util-linux nano xz-utils wget systemctl sudo git -y + +ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.0/s6-overlay-noarch.tar.xz /tmp +RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz +ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.0/s6-overlay-aarch64.tar.xz /tmp +RUN tar -C / -Jxpf /tmp/s6-overlay-aarch64.tar.xz + +RUN mkdir /app +RUN mkdir /app/RPi-PXE-Server + +COPY root/ / + +#WORKDIR /app +#RUN git clone https://github.com/beta-tester/RPi-PXE-Server.git + +#VOLUME /app/RPi-PXE-Server +#COPY scripts/ /app/RPi-PXE-Server/ + +VOLUME /app/RPi-PXE-Server +VOLUME /srv +VOLUME /etc/samba +VOLUME /boot + +WORKDIR /app/RPi-PXE-Server + +ENTRYPOINT [ "/init" ] + +## docker build -t pxe-image:test01 . +## docker run -it -d --privileged --net=host --volume ${PWD}/RPi-PXE-Server:/app/RPi-PXE-Server --volume ${PWD}/srv:/srv --name pxe-container pxe-image:test01 +## docker exec -it pxe-container bash +## systemctl start chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd udev && systemctl stop rpcbind + +## /etc/init.d/dnsmasq start +## /etc/init.d/chrony start +## /etc/init.d/lighttpd start +## /etc/init.d/nfs-kernel-server start diff --git a/init-script.sh b/init-script.sh new file mode 100644 index 0000000..4b6f328 --- /dev/null +++ b/init-script.sh @@ -0,0 +1,5 @@ +#!/bin/bash +systemctl start chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd +systemctl stop rpcbind + +systemctl status chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd \ No newline at end of file diff --git a/root/etc/.DS_Store b/root/etc/.DS_Store new file mode 100755 index 0000000000000000000000000000000000000000..1d35875bdedf3866ad4bc8553a6561073b5196a4 GIT binary patch literal 6148 zcmeHKJ5B>J5S<|@R?wt`&KICaLv5nX3334lK~QY85eTGorr;!8gO-vz@#X`{3L{Y< zgwTv+zp>|I?~~T{5E0MrR#T!05jALnEJ{UWx@y{U=P{5q$30!r4Rv%*+e)IpI3;`E zr&~IqW9n&V|J~JeanY|gw&^4J)~esSZ`)ww2ySd(7zaV8u zFc1s`1HnKr@FNW1&K7A745JSQf`MS*g8?}o5}IIkEQWe?pwkinD9>mW=u%5aOmfVQ z#Sj(p6!qQfsc W7DLG*^BN9}hkz0iT`=$q47>sDKr&AN literal 0 HcmV?d00001 diff --git a/root/etc/._.DS_Store b/root/etc/._.DS_Store new file mode 100755 index 0000000000000000000000000000000000000000..13c994109c15b9ab88efe90f811e892c7083edd0 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIhYCu0iY;W;207T zWFE*T0@1-xfmP9{;AjYphQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2v9i$7=h-2 zFc`>%WMmdA6r~pDmlh?bDx~EXWh-Rnm89mCWaj53=Hyf=w1 QnnLwI+$%B+a{vDW06f|qfB*mh literal 0 HcmV?d00001 diff --git a/root/etc/s6-overlay/.DS_Store b/root/etc/s6-overlay/.DS_Store new file mode 100755 index 0000000000000000000000000000000000000000..ca31a7489669099575157b7519608b4fb604781d GIT binary patch literal 6148 zcmeHK%}N6?5T4P33tskEJmm!xdhwi=?Gy9`O1q$kmMs-8p5haD&{y((y!BT4O=enL znyVr*1IahZ{3QFqCK)2)$#Xj*s)?vV6J${eBGX0Fg*gv^oO3Mcj@s43XtwMMiT>i0 z?EQ+K=$>wAOW*dt-q?2c=N{{>X%?$)0ZVoB^8Ph_{T!FP+LPB?{jnPty*7`+)^W8t z(zrMS&VV!E3^)Tn$^h$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIhYCu0iY;W;207T z^eAOyr5 QX$sZBh0H=x{FaQ7m literal 0 HcmV?d00001 diff --git a/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/run b/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/run new file mode 100755 index 0000000..bea2bdd --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/run @@ -0,0 +1,6 @@ +#!/bin/bash + +systemctl start chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd +systemctl stop rpcbind + +systemctl status chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/type b/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/type new file mode 100755 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/up b/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/up new file mode 100755 index 0000000..b94ea84 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-pxe-boot-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-pxe-boot-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-pxe-boot-config new file mode 100755 index 0000000..e69de29 diff --git a/samba/gdbcommands b/samba/gdbcommands new file mode 100644 index 0000000..5774b9a --- /dev/null +++ b/samba/gdbcommands @@ -0,0 +1,2 @@ +bt +quit diff --git a/samba/smb.conf b/samba/smb.conf new file mode 100644 index 0000000..6cbffc0 --- /dev/null +++ b/samba/smb.conf @@ -0,0 +1,64 @@ +######################################## +## mod_install_server +#======================= Global Settings ======================= +[global] + +## Browsing/Identification ### + workgroup = WORKGROUP +dns proxy = yes +enhanced browsing = no + +#### Networking #### +interfaces = 192.168.178.0/24 eth0 +bind interfaces only = yes + +#### Debugging/Accounting #### + log file = /var/log/samba/log.%m + max log size = 1000 + syslog = 0 + panic action = /usr/share/samba/panic-action %d + +####### Authentication ####### + server role = standalone server + obey pam restrictions = yes + unix password sync = yes + passwd program = /usr/bin/passwd %u + passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . + pam password change = yes + map to guest = bad user + +########## Domains ########### + +############ Misc ############ + usershare allow guests = yes + +#======================= Share Definitions ======================= +[srv] + path = /srv + comment = /srv folder of pxe-server + guest ok = yes + guest only = yes + browseable = no + read only = no + create mask = 0644 + directory mask = 0755 + force create mode = 0644 + force directory mode = 0755 + force user = root + force group = root + hide dot files = no + +[media] + path = /media/ + comment = /media folder of pxe-server + guest ok = yes + guest only = yes + browseable = no + read only = no + create mask = 0644 + directory mask = 0755 + force create mode = 0644 + force directory mode = 0755 + force user = + force group = + hide dot files = no diff --git a/samba/smb.conf.ucf-old b/samba/smb.conf.ucf-old new file mode 100644 index 0000000..6cbffc0 --- /dev/null +++ b/samba/smb.conf.ucf-old @@ -0,0 +1,64 @@ +######################################## +## mod_install_server +#======================= Global Settings ======================= +[global] + +## Browsing/Identification ### + workgroup = WORKGROUP +dns proxy = yes +enhanced browsing = no + +#### Networking #### +interfaces = 192.168.178.0/24 eth0 +bind interfaces only = yes + +#### Debugging/Accounting #### + log file = /var/log/samba/log.%m + max log size = 1000 + syslog = 0 + panic action = /usr/share/samba/panic-action %d + +####### Authentication ####### + server role = standalone server + obey pam restrictions = yes + unix password sync = yes + passwd program = /usr/bin/passwd %u + passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . + pam password change = yes + map to guest = bad user + +########## Domains ########### + +############ Misc ############ + usershare allow guests = yes + +#======================= Share Definitions ======================= +[srv] + path = /srv + comment = /srv folder of pxe-server + guest ok = yes + guest only = yes + browseable = no + read only = no + create mask = 0644 + directory mask = 0755 + force create mode = 0644 + force directory mode = 0755 + force user = root + force group = root + hide dot files = no + +[media] + path = /media/ + comment = /media folder of pxe-server + guest ok = yes + guest only = yes + browseable = no + read only = no + create mask = 0644 + directory mask = 0755 + force create mode = 0644 + force directory mode = 0755 + force user = + force group = + hide dot files = no diff --git a/scripts/first_run.sh b/scripts/first_run.sh new file mode 100644 index 0000000..9d6ff75 --- /dev/null +++ b/scripts/first_run.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +bash run.sh install +exit diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100644 index 0000000..58dd691 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +bash run.sh setup +exit diff --git a/scripts/update.sh b/scripts/update.sh new file mode 100644 index 0000000..c746e19 --- /dev/null +++ b/scripts/update.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +bash run.sh update +rpc.mountd +df -h +showmount -e +exit