Difference between revisions of "Installation"
(→Getting FOG) |
(→LXC) |
||
(28 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
Before diving right into the installation of FOG you need to decide which server OS you are going to use. FOG is made to install on RedHat based distro CentOS, Fedora, RHEL amongst others as well as Debian, Ubuntu and Arch Linux. Choose whichever you like most and have knowledge about! FOG is known to work with any of the above noted systems. Many [[Installation#Installation_manuals|installation manuals]] are available. | Before diving right into the installation of FOG you need to decide which server OS you are going to use. FOG is made to install on RedHat based distro CentOS, Fedora, RHEL amongst others as well as Debian, Ubuntu and Arch Linux. Choose whichever you like most and have knowledge about! FOG is known to work with any of the above noted systems. Many [[Installation#Installation_manuals|installation manuals]] are available. | ||
− | This listing is for informational purposes only, as the required components will be automatically downloaded and installed by the FOG installation script: PHP 5 | + | This listing is for informational purposes only, as the required components will be automatically downloaded and installed by the FOG installation script: PHP 5/7, MySql 5+/MariaDB 10+, Apache 2+, DHCP (pretty much any!), TFTP, FTP, NFS |
The LAMP setup can also be easily adjusted for a "WAMP (Windows Apache MySQL PHP) system" though will require a bit more knowledge of what packages to use and how to integrate with the FOG system. | The LAMP setup can also be easily adjusted for a "WAMP (Windows Apache MySQL PHP) system" though will require a bit more knowledge of what packages to use and how to integrate with the FOG system. | ||
− | + | Please choose the distribution you have the most knowledge about, but the below list has the best support in FOG 1.3.0 right now. This list is by no means an absolute list to follow, though. | |
− | |||
− | + | * Ubuntu 16 or higher | |
− | |||
− | |||
− | |||
− | |||
− | + | * Debian 8 or higher | |
− | |||
− | + | * CentOS 7 or higher | |
− | |||
− | |||
− | |||
− | |||
+ | * Red Hat 6 or higher | ||
+ | |||
+ | * Fedora 22 or higher | ||
+ | |||
+ | * Any version of Arch. | ||
+ | |||
+ | == Download FOG == | ||
+ | Please see: [[Getting_FOG]] | ||
+ | |||
+ | == Installer == | ||
+ | The FOG installer comes as a complex shell script that will handle all the package installs and configuring the services for you. It must be run as root (sudo works as well) to be able to set things up properly. Running the installer on a new system for the first time it will ask you a couple of questions regarding your network configuration and services you want to install. | ||
+ | |||
+ | === Modes === | ||
+ | FOG can be installed in two different modes. First is the normal FOG server which does all of the work. Choose this option if you only want have a single FOG server in your network. The second option is to install a FOG storage node which will serve as a second place to store images on and serve images to more clients (when doing unicast). [[InstallationModes|Here]] you can find some more information about the two modes. | ||
+ | |||
+ | FOG Server installation modes: | ||
+ | * Normal Server: (Choice N) | ||
+ | This is the typical installation type and | ||
+ | will install all FOG components for you on this | ||
+ | machine. Pick this option if you are unsure what to pick. | ||
+ | |||
+ | * Storage Node: (Choice S) | ||
+ | This install mode will only install the software required | ||
+ | to make this server act as a node in a storage group | ||
+ | |||
+ | === Command line options === | ||
+ | The FOG installer has quite a few command line options. See the output below. You might want force FOG to setup the web interface via HTTPS, change the default PXE boot file or web root directory. | ||
+ | |||
+ | ./installfog.sh --help | ||
+ | Usage: ./installfog.sh [-h?dEUuHSCKYXTFA] [-f <filename>] [-N <databasename>] | ||
+ | [-D </directory/to/document/root/>] [-c <ssl-path>] | ||
+ | [-W <webroot/to/fog/after/docroot/>] [-B </backup/path/>] | ||
+ | [-s <192.168.1.10>] [-e <192.168.1.254>] [-b <undionly.kpxe>] | ||
+ | -h -? --help Display this info | ||
+ | -o --oldcopy Copy back old data | ||
+ | -d --no-defaults Don't guess defaults | ||
+ | -U --no-upgrade Don't attempt to upgrade | ||
+ | -H --no-htmldoc No htmldoc, means no PDFs | ||
+ | -S --force-https Force HTTPS for all comunication | ||
+ | -C --recreate-CA Recreate the CA Keys | ||
+ | -K --recreate-keys Recreate the SSL Keys | ||
+ | -Y -y --autoaccept Auto accept defaults and install | ||
+ | -f --file Use different update file | ||
+ | -c --ssl-path Specify the ssl path | ||
+ | defaults to /opt/fog/snapins/ssl | ||
+ | -D --docroot Specify the Apache Docroot for fog | ||
+ | defaults to OS DocumentRoot | ||
+ | -W --webroot Specify the web root url want fog to use | ||
+ | (E.G. http://127.0.0.1/fog, | ||
+ | http://127.0.0.1/) | ||
+ | Defaults to /fog/ | ||
+ | -B --backuppath Specify the backup path | ||
+ | --uninstall Uninstall FOG | ||
+ | -s --startrange DHCP Start range | ||
+ | -e --endrange DHCP End range | ||
+ | -b --bootfile DHCP Boot file | ||
+ | -E --no-exportbuild Skip building nfs file | ||
+ | -X --exitFail Do not exit if item fails | ||
+ | -T --no-tftpbuild Do not rebuild the tftpd config file | ||
+ | -F --no-vhost Do not overwrite vhost file | ||
+ | -A --arm-support Install kernel and initrd for ARM platforms | ||
+ | |||
+ | === .fogsettings === | ||
+ | |||
+ | Full article on the .fogsettings file can be found here: [[.fogsettings]] | ||
+ | |||
+ | === Backups === | ||
+ | TBD | ||
+ | |||
+ | === Errorlog === | ||
+ | TBD | ||
== Installation manuals == | == Installation manuals == | ||
Line 33: | Line 94: | ||
=== Debian === | === Debian === | ||
+ | [[Debian 8]], | ||
[[Installation on Debian Lenny|Debian Wheezy]], | [[Installation on Debian Lenny|Debian Wheezy]], | ||
[[Installation on Debian Lenny|Debian Squeeze]], | [[Installation on Debian Lenny|Debian Squeeze]], | ||
[[Installation on Debian Lenny|Debian Lenny]] | [[Installation on Debian Lenny|Debian Lenny]] | ||
− | |||
=== Fedora === | === Fedora === | ||
+ | [[Fedora 25 Server]], | ||
+ | [[Fedora 24 Server]], | ||
[[Fedora 23 Server]], | [[Fedora 23 Server]], | ||
[[Fedora_21_Server|Fedora 21 Server]], | [[Fedora_21_Server|Fedora 21 Server]], | ||
− | |||
[[Installation on Fedora 13|Fedora 13]], | [[Installation on Fedora 13|Fedora 13]], | ||
− | + | [[Installation on Fedora 8| Fedora 8]], | |
− | |||
− | |||
− | [[Installation on Fedora 8| Fedora 8]], | ||
− | |||
− | |||
=== RHEL === | === RHEL === | ||
Line 55: | Line 112: | ||
=== Ubuntu === | === Ubuntu === | ||
− | [[Ubuntu | + | [[Ubuntu 16.04]] |
− | [[Ubuntu 14.04]], | + | (<font color="red">obsolete, just for the archive:</font> [[Ubuntu 14.04]], |
[[Ubuntu 12.04|Ubuntu 13.10]], | [[Ubuntu 12.04|Ubuntu 13.10]], | ||
[[Ubuntu 12.04|Ubuntu 13.04]], | [[Ubuntu 12.04|Ubuntu 13.04]], | ||
Line 67: | Line 124: | ||
Ubuntu 8.10, | Ubuntu 8.10, | ||
Ubuntu 8.04, | Ubuntu 8.04, | ||
− | [[Installation on 7.10|Ubuntu 7.10]] | + | [[Installation on 7.10|Ubuntu 7.10]]) |
− | |||
== Virtualization == | == Virtualization == | ||
− | FOG can be used on bare metal as well as in most virtual server and client setups. Some of the virtualization techniques are really great when used with FOG, e.g. snapshots. Some people use virtualization to prepare and | + | FOG can be used on bare metal as well as in most virtual server and client setups. Some of the virtualization techniques are really great when used with FOG, e.g. snapshots. Some people use virtualization to prepare and capture their "golden (master / reference) images" all on one central location/server. Again like with the server OS we don't prefer any of the following or others that are out there. This is only a collection of hints and tricks plus maybe issues we know about. |
=== Hyper-V === | === Hyper-V === | ||
Line 104: | Line 160: | ||
sudo tunctl -t tap0 -u <username> | sudo tunctl -t tap0 -u <username> | ||
sudo ifconfig tap0 x.x.x.x netmask 255.255.255.0 up | sudo ifconfig tap0 x.x.x.x netmask 255.255.255.0 up | ||
+ | |||
# generate disk image file | # generate disk image file | ||
qemu-img create -f qcow2 hd.qcow2 10G | qemu-img create -f qcow2 hd.qcow2 10G | ||
+ | |||
# start VM using QEMU emulator (BIOS mode) | # start VM using QEMU emulator (BIOS mode) | ||
qemu -m 512 -boot n -net nic,vlan=1 -net tap,vlan=1,ifname=tap0,script=/bin/true -hda hd.qcow2 | qemu -m 512 -boot n -net nic,vlan=1 -net tap,vlan=1,ifname=tap0,script=/bin/true -hda hd.qcow2 | ||
+ | |||
# start VM using real KVM virtualization (BIOS mode) | # start VM using real KVM virtualization (BIOS mode) | ||
kvm -m 512 -boot n -net nic,vlan=1,macaddr=00:00:00:00:00:05 -net tap,vlan=1,ifname=tap0,script=/bin/true -hda hd.qcow2 | kvm -m 512 -boot n -net nic,vlan=1,macaddr=00:00:00:00:00:05 -net tap,vlan=1,ifname=tap0,script=/bin/true -hda hd.qcow2 | ||
+ | |||
# start VM as UEFI machine - as well using the more modern '-netdev' parameter | # start VM as UEFI machine - as well using the more modern '-netdev' parameter | ||
kvm -m 512 -boot n -bios /usr/share/ovmf/OVMF.fd -device virtio-net-pci,netdev=hn0 -netdev tap,id=hn0,ifname=tap0,script=/bin/true -hda hd.qcow2 | kvm -m 512 -boot n -bios /usr/share/ovmf/OVMF.fd -device virtio-net-pci,netdev=hn0 -netdev tap,id=hn0,ifname=tap0,script=/bin/true -hda hd.qcow2 | ||
Line 129: | Line 189: | ||
After that the installer should run through like it would installing on bare metal or any other virtual environment! | After that the installer should run through like it would installing on bare metal or any other virtual environment! | ||
− | '''Wake on LAN''' | + | '''Wake on LAN:''' |
To be able to send WOL and multicast packages the container needs a proper MAC address. This is only the case if you configure the container to use a network bridge (veth instead of venet!). | To be able to send WOL and multicast packages the container needs a proper MAC address. This is only the case if you configure the container to use a network bridge (veth instead of venet!). | ||
+ | |||
+ | === LXC === | ||
+ | One of the main things is to get NFS to work within LXC containers. While it used to be easy in Proxmox newer versions make it more complicated. | ||
+ | |||
+ | Proxmox 6.x: https://forums.fogproject.org/topic/15176/fog-server-in-lxc-container-under-proxmox-6 | ||
+ | |||
+ | Proxmox 5.x: An update (around 23th of October 2018) broke NFS in LXC containers. Find a fix here: https://forum.proxmox.com/threads/mounting-nfs-in-lxc-not-working-since-latest-update.47815/ | ||
+ | |||
+ | Proxmox 4.x: https://forums.fogproject.org/topic/7978/fog-in-lxc-container-how-to-configure-nfs-server | ||
=== VirtualBox === | === VirtualBox === | ||
− | Bridged network | + | Bridged network or host only. |
+ | |||
+ | Most versions seem to suffer from a bug where iPXE would only be able to get an IP from the DHCP if started cold (vs. reboot). | ||
+ | |||
+ | This can be fixed by changing the iPXE binary from <code>undionly.kkpxe</code> to <code>ipxe.pxe</code> in the DHCP server config. | ||
=== VMWare ESXi === | === VMWare ESXi === | ||
Line 140: | Line 213: | ||
* Create VM as normal. | * Create VM as normal. | ||
+ | * Choose network adapter other than VMX3 (e.g. e1000) as we have seen [https://forums.fogproject.org/topic/7108/fog-bzimage-failing-to-load-after-pxe-boot loading issues] with those virtual adapters. | ||
* Open VM Console, start up the VM. Press F2 on Boot Logo to enter BIOS. | * Open VM Console, start up the VM. Press F2 on Boot Logo to enter BIOS. | ||
* Scroll over to boot tab, use + key to move Network boot to the top of the boot order. | * Scroll over to boot tab, use + key to move Network boot to the top of the boot order. | ||
Line 161: | Line 235: | ||
== Security == | == Security == | ||
− | |||
− | |||
− | |||
+ | [[FOG security]] | ||
== Troubleshooting == | == Troubleshooting == | ||
IMPORTANT, what to do when the installer fails? Where are the logs? | IMPORTANT, what to do when the installer fails? Where are the logs? | ||
+ | |||
+ | {{:Troubleshoot FOG}} |
Latest revision as of 12:23, 19 May 2021
Contents
Requirements
Before diving right into the installation of FOG you need to decide which server OS you are going to use. FOG is made to install on RedHat based distro CentOS, Fedora, RHEL amongst others as well as Debian, Ubuntu and Arch Linux. Choose whichever you like most and have knowledge about! FOG is known to work with any of the above noted systems. Many installation manuals are available.
This listing is for informational purposes only, as the required components will be automatically downloaded and installed by the FOG installation script: PHP 5/7, MySql 5+/MariaDB 10+, Apache 2+, DHCP (pretty much any!), TFTP, FTP, NFS
The LAMP setup can also be easily adjusted for a "WAMP (Windows Apache MySQL PHP) system" though will require a bit more knowledge of what packages to use and how to integrate with the FOG system.
Please choose the distribution you have the most knowledge about, but the below list has the best support in FOG 1.3.0 right now. This list is by no means an absolute list to follow, though.
- Ubuntu 16 or higher
- Debian 8 or higher
- CentOS 7 or higher
- Red Hat 6 or higher
- Fedora 22 or higher
- Any version of Arch.
Download FOG
Please see: Getting_FOG
Installer
The FOG installer comes as a complex shell script that will handle all the package installs and configuring the services for you. It must be run as root (sudo works as well) to be able to set things up properly. Running the installer on a new system for the first time it will ask you a couple of questions regarding your network configuration and services you want to install.
Modes
FOG can be installed in two different modes. First is the normal FOG server which does all of the work. Choose this option if you only want have a single FOG server in your network. The second option is to install a FOG storage node which will serve as a second place to store images on and serve images to more clients (when doing unicast). Here you can find some more information about the two modes.
FOG Server installation modes: * Normal Server: (Choice N) This is the typical installation type and will install all FOG components for you on this machine. Pick this option if you are unsure what to pick. * Storage Node: (Choice S) This install mode will only install the software required to make this server act as a node in a storage group
Command line options
The FOG installer has quite a few command line options. See the output below. You might want force FOG to setup the web interface via HTTPS, change the default PXE boot file or web root directory.
./installfog.sh --help Usage: ./installfog.sh [-h?dEUuHSCKYXTFA] [-f <filename>] [-N <databasename>] [-D </directory/to/document/root/>] [-c <ssl-path>] [-W <webroot/to/fog/after/docroot/>] [-B </backup/path/>] [-s <192.168.1.10>] [-e <192.168.1.254>] [-b <undionly.kpxe>] -h -? --help Display this info -o --oldcopy Copy back old data -d --no-defaults Don't guess defaults -U --no-upgrade Don't attempt to upgrade -H --no-htmldoc No htmldoc, means no PDFs -S --force-https Force HTTPS for all comunication -C --recreate-CA Recreate the CA Keys -K --recreate-keys Recreate the SSL Keys -Y -y --autoaccept Auto accept defaults and install -f --file Use different update file -c --ssl-path Specify the ssl path defaults to /opt/fog/snapins/ssl -D --docroot Specify the Apache Docroot for fog defaults to OS DocumentRoot -W --webroot Specify the web root url want fog to use (E.G. http://127.0.0.1/fog, http://127.0.0.1/) Defaults to /fog/ -B --backuppath Specify the backup path --uninstall Uninstall FOG -s --startrange DHCP Start range -e --endrange DHCP End range -b --bootfile DHCP Boot file -E --no-exportbuild Skip building nfs file -X --exitFail Do not exit if item fails -T --no-tftpbuild Do not rebuild the tftpd config file -F --no-vhost Do not overwrite vhost file -A --arm-support Install kernel and initrd for ARM platforms
.fogsettings
Full article on the .fogsettings file can be found here: .fogsettings
Backups
TBD
Errorlog
TBD
Installation manuals
CentOS
CentOS 7, CentOS 6.4 (CentOS 6.5 also works), CentOS 5.3 (CentOS 5.4 & 5.5 also covered)
Debian
Debian 8, Debian Wheezy, Debian Squeeze, Debian Lenny
Fedora
Fedora 25 Server, Fedora 24 Server, Fedora 23 Server, Fedora 21 Server, Fedora 13, Fedora 8,
RHEL
TBA
Ubuntu
Ubuntu 16.04 (obsolete, just for the archive: Ubuntu 14.04, Ubuntu 13.10, Ubuntu 13.04, Ubuntu 12.10, Ubuntu 12.04, Ubuntu 11.04, Ubuntu 10.10, Ubuntu 10.04, Ubuntu 9.04, Ubuntu 8.10, Ubuntu 8.04, Ubuntu 7.10)
Virtualization
FOG can be used on bare metal as well as in most virtual server and client setups. Some of the virtualization techniques are really great when used with FOG, e.g. snapshots. Some people use virtualization to prepare and capture their "golden (master / reference) images" all on one central location/server. Again like with the server OS we don't prefer any of the following or others that are out there. This is only a collection of hints and tricks plus maybe issues we know about.
Hyper-V
Using the New VM Wizard:
Ensure the virtual switch your VM is connected to has a route to FOG!
Create VM Wizard > Installation Options: Select "Install an operating system from network-based installation server"
Existing VM:
Ensure the virtual switch your VM is connected to has a route to FOG!
Right click VM > Settings > BIOS
Move "Network Adapter" (sometimes labeled "Legacy Network Adapter") to the top of the boot order.
UEFI:
UEFI/Secure Boot is an option with Hyper-V on Server 2012 on Generation 2 VMs. It is enabled by default, and can be disabled in VM Settings -> Firmware: Uncheck secure boot.
Thanks to moses
KVM/QEMU
Can be used as kind of a lightweight desktop virtual environment to test FOG and master your images. Using this on the laptop as local test environment. Search forums and wiki but there is no valuable information about anyone using FOG on a KVM server. Asked user mxc as he seams to use it. Otherwise this will be a brief description on how to use this as I do it.
# setup network tap device as kind of a local software switch to connect it all sudo tunctl -t tap0 -u <username> sudo ifconfig tap0 x.x.x.x netmask 255.255.255.0 up # generate disk image file qemu-img create -f qcow2 hd.qcow2 10G # start VM using QEMU emulator (BIOS mode) qemu -m 512 -boot n -net nic,vlan=1 -net tap,vlan=1,ifname=tap0,script=/bin/true -hda hd.qcow2 # start VM using real KVM virtualization (BIOS mode) kvm -m 512 -boot n -net nic,vlan=1,macaddr=00:00:00:00:00:05 -net tap,vlan=1,ifname=tap0,script=/bin/true -hda hd.qcow2 # start VM as UEFI machine - as well using the more modern '-netdev' parameter kvm -m 512 -boot n -bios /usr/share/ovmf/OVMF.fd -device virtio-net-pci,netdev=hn0 -netdev tap,id=hn0,ifname=tap0,script=/bin/true -hda hd.qcow2
OpenVZ
OpenVZ (possibly within Proxmox) is mostly used to run the FOG server in a light weight kind of virtual environment. As OpenVZ is in nature similar to a chrooted environment you cannot actually PXE boot such a container. To install FOG as a server in OpenVZ you need to have NFS support on the host machine first and then add it to the container as well:
$ lsmod | grep nfsd nfsd 312315 14 $ grep nfsd /proc/filesystems nodev nfsd
If you don't see the kernel module nfsd loaded you might need to install the nfs-kernel-server package and load the module (usually done by the nfs-kernel-server init script). As mentioned before you need to enable access to nfsd from within the container you want to install FOG to:
$ vzctl stop $CONTAINER_ID $ vzctl set $CONTAINER_ID --feature nfsd:on --save $ vzctl start $CONTAINER_ID
After that the installer should run through like it would installing on bare metal or any other virtual environment!
Wake on LAN:
To be able to send WOL and multicast packages the container needs a proper MAC address. This is only the case if you configure the container to use a network bridge (veth instead of venet!).
LXC
One of the main things is to get NFS to work within LXC containers. While it used to be easy in Proxmox newer versions make it more complicated.
Proxmox 6.x: https://forums.fogproject.org/topic/15176/fog-server-in-lxc-container-under-proxmox-6
Proxmox 5.x: An update (around 23th of October 2018) broke NFS in LXC containers. Find a fix here: https://forum.proxmox.com/threads/mounting-nfs-in-lxc-not-working-since-latest-update.47815/
Proxmox 4.x: https://forums.fogproject.org/topic/7978/fog-in-lxc-container-how-to-configure-nfs-server
VirtualBox
Bridged network or host only.
Most versions seem to suffer from a bug where iPXE would only be able to get an IP from the DHCP if started cold (vs. reboot).
This can be fixed by changing the iPXE binary from undionly.kkpxe
to ipxe.pxe
in the DHCP server config.
VMWare ESXi
Running a FOG client within an ESXi server is pretty close to what you would do on a bare metal machine:
- Create VM as normal.
- Choose network adapter other than VMX3 (e.g. e1000) as we have seen loading issues with those virtual adapters.
- Open VM Console, start up the VM. Press F2 on Boot Logo to enter BIOS.
- Scroll over to boot tab, use + key to move Network boot to the top of the boot order.
You can also do an on-demand network boot by hitting F9 on startup, if you don’t want to change the boot order permanently.
UEFI:
UEFI is disabled by default for VMs in ESXI 6.0+. To enable it for a VM, go to VM Settings > Options Tab > Advanced: Boot Options and change the boot firmware from BIOS to EFI.
Thanks to moses
VMWare Player
Is this still in use?? Don't care if there is nothing about it in wiki or forums!
Xen/XenServer
See forums
Security
Troubleshooting
IMPORTANT, what to do when the installer fails? Where are the logs?
Below, you will find a listing of all FOG troubleshooting related articles.
Is PC compatible with FOG kernel
Troubleshoot Downloading - Multicast
Troubleshoot Downloading - Unicast
Troubleshooting an image push to a client
Active Directory - FOG Setting
The time in the logs and dashboard are off
Uninstalling FOG Service on WinXP clients
Setting up and building UDPCast...Failed!