Move Netboot Server to Linux CentOS

carmelolopez
Contributor

Hi,

I have been trying to follow some websites on how to move the Netboot Server from a Mac OS X to a Linux (CentOS) but failed so far.

Does anybody have a how to that I could try to follow?
thanks

Carmelo Lopez

3 REPLIES 3

blackholemac
Valued Contributor III

NetSUS sounds like what you need:

https://github.com/jamf/NetSUS/blob/master/README.md#requirements

I don't know whether it works with CentOS though...I think it is for Ubuntu...that being said they offer an installer or a preconfigured Linux VM . You might take a look and see whether it fits the bill.

a_stonham
Contributor II

Here is a section of the documentation I wrote for our internal netboot servers. It is for configuring BSDPY on RHEL 7

Docker
Install Docker

sudo tee /etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
yum install docker-engine -y
chkconfig docker on
service docker restart

Create required directories

mkdir -p /data/netboot/nbi

HTTP
Install apache and set the document root to /data/netboot/

TFTP

yum install tftp-server xinetd

edit /etc/xinetd.d/tftp

# default: off
# description: The tftp server serves files using the trivial file transfer
#    protocol.  The tftp protocol is often used to boot diskless
#    workstations, download configuration files to network-aware printers,
#    and to start the installation process for some operating systems.
service tftp
{
    socket_type        = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server            = /usr/sbin/in.tftpd
    server_args        = -s /data/netboot/ -v
    disable            = no
    per_source        = 11
    cps            = 100 2
    flags            = IPv4
}

enable xinetd

chkconfig xinetd on
service xinetd restart

edit /usr/local/sbin/bsdpyStart.sh

#!/bin/bash
IP=`hostname -I | cut -f 1 -d ' '`;
INTERFACE=`ip addr | grep en | grep BROAD | cut -d ' ' -f 2 | cut -d ':' -f 1`;
docker run -d 
    -v /data/netboot/nbi:/nbi:ro 
    -p 0.0.0.0:68:68/udp 
    -p 0.0.0.0:67:67/udp 
    -e BSDPY_IFACE=$INTERFACE 
    -e BSDPY_NBI_URL=http://$IP/nbi 
    -e BSDPY_IP=$IP 
    --name bsdpy 
    --restart=always
    bruienne/bsdpy:1.0 
    /start.sh

edit /usr/local/sbin/bsdpyStop.sh

#!/bin/bash
docker stop bsdpy;
sleep 5
docker rm -f bsdpy;

Set permissions on run scripts

chmod 0700 /usr/local/sbin/bsdpySt*

FIREWALL Config

firewall-cmd --zone=public --add-port=67/udp --permanent
firewall-cmd --zone=public --add-port=68/udp --permanent
firewall-cmd --zone=public --add-port=69/udp --permanent
firewall-cmd --reload

Start the service

/usr/local/sbin/bsdpyStart.sh

apizz
Valued Contributor

Just wanted to share the blog post that helped me set up our Docker containers for use with BSDPY on Linux:

https://grahamgilbert.com/blog/2015/04/22/getting-started-with-bsdpy-on-docker/