commit 83aebf933fc4fbf0de503131f8f19eb877426ef8 Author: pi-farm Date: Fri Nov 17 18:28:21 2023 +0100 init 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 0000000..1d35875 Binary files /dev/null and b/root/etc/.DS_Store differ diff --git a/root/etc/._.DS_Store b/root/etc/._.DS_Store new file mode 100755 index 0000000..13c9941 Binary files /dev/null and b/root/etc/._.DS_Store differ diff --git a/root/etc/s6-overlay/.DS_Store b/root/etc/s6-overlay/.DS_Store new file mode 100755 index 0000000..ca31a74 Binary files /dev/null and b/root/etc/s6-overlay/.DS_Store differ diff --git a/root/etc/s6-overlay/._.DS_Store b/root/etc/s6-overlay/._.DS_Store new file mode 100755 index 0000000..29427ae Binary files /dev/null and b/root/etc/s6-overlay/._.DS_Store differ 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