Need help making my own Debian 9 FOG server!
-
I am an ict intern in my second year and haven’t worked much with linux based systems yet. so in my internship they set up this sort of project for me so that we can easily image our thin client laptops without needing usb’s or other drives. they wanted me to make a fog server with the following atributes:
- Debian
- Dnsmasq
- TFTP Boot
- NFS
any idea how i might go at this al i did so far is install debian 9 desktop( i know stupid) and have configured the right static ip, the right subnet and gateway. i also use 2 ssd’s in my server 1 for the system the other one to use for images.
any help would greatly help this newbie!
-
Install FOG using git
https://wiki.fogproject.org/wiki/index.php?title=Installation#Git
It should automatically detect you’re running debian and install needed packages. If something goes wrong, please let us know.
Given that they asked you to use Dnsmasq, I will assume you require ProxyDHCP. If so, choose no to install DHCP server for you in installation.
If it completes succesfully, you’ll want to make some adjustments to satisfy your other requirements.
Editing
/opt/fog/.fogsettings
you can alter certain parameters. You can change storageLocation straight away to refer to a location on your second drive.You’ll want to have (should be ok if you didn’t choose yes for DHCP) for proxyDHCP
dodhcp='N' bldhcp='0'
If you accidentally installed the DHCP server, you’ll want to disable it or remove it.
Then you’ll want to look into dnsmasq:
https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq
edit: After making changes to /opt/fog/.fogsettings make sure to rerun the fog installer to apply them.
-
If you install FOG you will solve points 3 and 4 of your task list. FOG will automatically setup tftp booting and NFS. FOG uses both to pxe boot target computers. I have a few tutorials on how to setup dnsmasq. It is not very hard. Plus many of the distributions are now offering dnsmasq versions 2.76 or newer so you don’t have to compile your own version. Version 2.76 or newer is required to support dynamically switching boot files between uefi and bios/legacy target computers. Each firmware type takes their own specific boot file.
Using your distribution’s packaging tool, go ahead and install dnsmasq package. I have to get ready for my commute into work, but I will provide you with a functioning configuration for dnsmasq in about 1.5 hrs.
edit: Use the ltsp.conf file from the end of this post: https://forums.fogproject.org/topic/8725/compiling-dnsmasq-2-76-if-you-need-uefi-support/6 replacing your fog server’s IP address in the config file.
-
@unknownhost99 This video on Debian 8 will also work for Debian 9: https://wiki.fogproject.org/wiki/index.php?title=Debian_8
The video is very educational, I take the time to explain Linux partitioning and other things. It’s meant for newcomers to Linux like yourself. -
@george1421 thanks a configuration would really help
-
@unknownhost99 The configuration was provided in the link I added to the bottom of my previous post. You should review that document so you understand what is going on. You probably won’t need to compile dnsmasq. But you should understand what is going on.
To save you a few steps I’ll repeat the configuration here.
# Don't function as a DNS server: port=0 # Log lots of extra information about DHCP transactions. log-dhcp # Set the root directory for files available via FTP. tftp-root=/tftpboot # The boot filename, Server name, Server Ip Address dhcp-boot=undionly.kpxe,,<fog_server_IP> # Disable re-use of the DHCP servername and filename fields as extra # option space. That's to avoid confusing some old or broken DHCP clients. dhcp-no-override # inspect the vendor class string and match the text to set the tag dhcp-vendorclass=BIOS,PXEClient:Arch:00000 dhcp-vendorclass=UEFI32,PXEClient:Arch:00006 dhcp-vendorclass=UEFI,PXEClient:Arch:00007 dhcp-vendorclass=UEFI64,PXEClient:Arch:00009 # Set the boot file name based on the matching tag from the vendor class (above) dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,<fog_server_IP> dhcp-boot=net:UEFI,ipxe.efi,,<fog_server_IP> dhcp-boot=net:UEFI64,ipxe.efi,,<fog_server_IP> # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Booting FOG Client", 1 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI # This option is first and will be the default if there is no input from the user. pxe-service=X86PC, "Boot to FOG", undionly.kpxe pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi dhcp-range=<fog_server_ip>,proxy
-
@george1421 one more question in what order should i install it first dnsmasq or the fog server first
-
@unknownhost99 You can install in any order. One is not dependent on the other one.
Just for clarity, you only need dnsmasq if you are unable to modify your dhcp server’s settings for dhcp option 66 and 67. We can use dnsmasq’s features to add in those missing/unchangable values.
-
@george1421 yea the plan is to have dnsmasq for a dhcpproxy but i understand i need to install fog first
-
@george1421 so i have installed the fog server now i want to set-up my node but when i go to my server this happens
these are my settings
-
@unknownhost99 Just to be clear here. I don’t see an error.
I can say for storage nodes, they must be able to reach the Master FOG server’s database. You may need to make an adjustment to the Mysql server’s config file to allow external access. I don’t know debian so I can’t confirm if it will work correctly, or you need to add the setting in the mysql conf to allow external access to the database.
IF the database is enabled correctly AND you install a fog storage node it should auto create the storage node in the Storage section of the master server webgui. There is no webgui on the storage nodes since they are manged from the fog master node.
If there is not an entry in the FOG master node for this storage node, you need to take the user ID and password presented on the install screen and use that to hand create the storage node entry in the web gui.
-
@george1421 i cant really find the problem so i’m thinking off reinstalling fog but i need to uninstall it first and the guide provider by fog itself doesn’t work any ideas?
-
@unknownhost99 said in Need help making my own Debian 9 FOG server!:
i cant really find the problem so i’m thinking off reinstalling fog but i need to uninstall it first and the guide provider by fog itself doesn’t work any ideas?
I am sorry to say this but there is no way we can help you if you don’t properly describe what’s going on and what you mean. As George said there is no obvious error in the pictures you posted. Without any further description how would we be able to help you??
- What exactly does not work?
- Any errors you see? Take pictures or videos of client/server screen of what you think is an error and post here!
- What is your network setup?
-
@unknownhost99 Before you go through the process of reinstalling everything. You need to ensure that mysql is configured to allow remote access. Some distros disable remote access to mysql database server for security reasons.
for example: https://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
You can also test to see if mysql is listening on your fog master server by using this command to see if the port is open on your master fog server.
netstat -an|grep 3306
You should see a line that looks like thistcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
-
@george1421 yes i indeed have that one and then a crap ton of others that each look the same that say time out i think starting over from scratch is easier since i haven t done anything significant yet
-
i have had an error during my dnsmasq installation and was wondering what the cause might be and if it is a problem before i continue.
when typing the the sudo make install command from this guide https://forums.fogproject.org/topic/8725/compiling-dnsmasq-2-76-if-you-need-uefi-support/5 it showed the following error
any information on the error would be helpfull thanks!
-
@unknownhost99 You need to install build dependencies first.
sudo apt-get build-dep dnsmasq
should do most of that even though you are compiling a different version. If you still have compile issues note down the filename (hereidna.h
) go to https://www.debian.org/distrib/packages (section “Search the contents of packages”) and search for that file you are missing. Then install the package(s) shown to you by hand - e.g.sudo apt-get install libidn11-dev
-
@unknownhost99 You might want to check with your distribtion’s repo. Many distributions contain dnsmasq 2.76 or newer version already compiled. So these steps may no longer be necessary.
[edit] I’m not totally sure what I’m looking at, but it does look like there is a debian package that has been already created for you: https://packages.debian.org/stretch/dnsmasq
-
@george1421 okay so now that worked although when i tried the sudo service dnsmasq restart. it failed and said no Unit dnsmasq.service found also what is the default location of the itsp.conf file cause i cant seem to locate it with the find command
-
@unknownhost99 Just so I’m clear, you installed your linux distro’s version of dnsmasq? If so you should be able to key in
sudo dnsmasq -v
That should show you the version of dnsmasq installed.From there, to your second question the ltsp.conf file typically goes in /etc/dnsmasq.d directory. Make sure there are no other .conf files in that directory to cause you pain.