https://wiki.fogproject.org/wiki/api.php?action=feedcontributions&user=Tom-elliott.7271&feedformat=atomFOG Project - User contributions [en]2024-03-28T12:19:20ZUser contributionsMediaWiki 1.30.0https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12496Build TomElliott Kernel2017-05-11T19:18:32Z<p>Tom-elliott.7271: /* drivers/net/usb/r8152.c */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Appears to have been added with Kernel 4.11<br />
<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
No longer needed for 4.9.x and hopefully forward.<br />
<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
<br />
== drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 4096) {<br />
blk_queue_virt_boundary(sdevice->request_queue, 4096);<br />
} else {<br />
blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
}<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/igb/e1000_82575.c ==<br />
Search E1000_STATUS_FUNC_SHIFT;<br />
<br />
Directly after the line add:<br />
<pre><br />
igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12444Build TomElliott Kernel2017-01-19T21:30:00Z<p>Tom-elliott.7271: /* drivers/scsi/storvsc_drv.c */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
No longer needed for 4.9.x and hopefully forward.<br />
<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
<br />
== drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 4096) {<br />
blk_queue_virt_boundary(sdevice->request_queue, 4096);<br />
} else {<br />
blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
}<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/igb/e1000_82575.c ==<br />
Search E1000_STATUS_FUNC_SHIFT;<br />
<br />
Directly after the line add:<br />
<pre><br />
igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Password_Central&diff=12390Password Central2017-01-10T23:21:26Z<p>Tom-elliott.7271: /* 1.2.0 and lower */</p>
<hr />
<div>This article reflects settings in the 1.3.0 release.<br />
<br />
= Web Interface =<br />
<br />
Default username is <font color="red">fog</font><br />
<br />
Default password is <font color="red">password</font><br />
<br />
If you lose this password, and you have root access to the main fog server, you can reset it to the default via CLI.<br />
== 1.2.0 and lower ==<br />
NOTE: Can still be used for 1.3.0<br />
<pre><br />
mysql -D fog<br />
UPDATE `users` SET `uPass` = MD5('password') WHERE `uName` = 'fog';<br />
quit<br />
</pre><br />
<br />
== 1.3.0 and higher ==<br />
<pre><br />
mysql -D fog<br />
UPDATE `users` SET `uPass` = '$2y$11$g0Hu8OaOStuPk7WWYGh6Wu4PLlZDZGOkzMwEEAk.rZMrI9IdDwno.' WHERE `uName` = 'fog';<br />
quit<br />
</pre><br />
<br />
Alternatively, if the <font color="red">fog</font> user does not exist, you may create it with the default password via CLI.<br />
<br />
<pre><br />
mysql -D fog<br />
INSERT INTO `users` (`uName`,`uPass`,`uCreateBy`,`uType`) VALUES ('fog','$2y$11$g0Hu8OaOStuPk7WWYGh6Wu4PLlZDZGOkzMwEEAk.rZMrI9IdDwno.','localAdmin','0');<br />
quit<br />
</pre><br />
<br />
= Storage Management Credentials =<br />
<br />
Accessed via the web interface, and then clicking on "Storage Management" in the ribbon. In here, you can view the storage nodes connected to your fog server. <br />
<br />
By clicking on one of the storage nodes, you enter into that storage node's settings area. In here is the FTP username and password used for managing this storage node. Please see [[Troubleshoot FTP]] for '''further troubleshooting'''.<br />
<br />
= Active Directory =<br />
<br />
There are three places where you can set Active Directory joining credentials. Two are persistent.<br />
<br />
== Global Defaults ==<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Active Directory Defaults -> FOG_AD_DEFAULT_USER</font><br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Active Directory Defaults -> FOG_AD_DEFAULT_PASSWORD</font><br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Active Directory Defaults -> FOG_AD_DEFAULT_PASSWORD_LEGACY</font><br />
<br />
These three areas are just place-holders. When ticking the checkbox to join a host to Active Directory (explained below), these global settings are what is used to populate the fields. These fields are also what is used when saying "Y" to joining Active Directory via network booting and doing a "Full Host Registration".<br />
<br />
The FOG_AD_DEFAULT_PASSWORD field is used only for the new fog client. This field is typed in as plain-text, and upon saving, is encrypted using an industry-standard encryption technique. Please read through [[FOG_Client#Security_Design]] for more details on this.<br />
<br />
The FOG_AD_DEFAULT_PASSWORD_LEGACY field is only used with the legacy fog client. This value must be encrypted first by "fogcrypt.exe". This program runs on windows via command prompt only, and is available for download at the bottom of every page in the fog web interface, including the login page. After running your password through this program, you would copy/paste the encrypted string it produces into the FOG_AD_DEFAULT_PASSWORD field. This field '''should not be set''' if you do not intend to use the legacy client. It's also '''strongly advised not use the legacy client''', and instead use the new fog client due to security concerns.<br />
<br />
== Host Settings ==<br />
<br />
You may individually set unique user/pass and domain information on a per-host basis if you wish. You can get to this area like this:<br />
<br />
<font color="red">Web Interface -> Host Management -> [list all hosts or search] -> Click on the desired host -> Click "Active Directory"</font><br />
<br />
In this area, there are a few fields. When checking the "Join Domain after image task" checkbox, if global defaults are set, they are auto-populated into these fields. You may manually enter these fields with whatever domain/user/password you wish.<br />
<br />
The two password fields "Domain Password" and "Domain Password Legacy" are explained above in the "Global Defaults" area.<br />
<br />
== Group Settings ==<br />
<br />
You may set Active Directory credentials on many hosts at once via groups. After setting AD Credentials here and then coming back to check this area in groups, you will see that the field is always blank. The settings are not applied to the group, but instead to each individual host within the group. If you check the individual hosts (explained above), you will see that your settings have applied. Hosts later added to the group will not receive the previously applied settings, because the settings do not apply to the group, but instead to each individual host in the group and only at the time of applying the settings.<br />
<br />
You can go to this area like this:<br />
<br />
<font color="red">Web Interface -> Group Management -> [list all groups or search] -> Click the desired group -> Click "Active Directory"</font><br />
<br />
The two password fields "Domain Password" and "Domain Password Legacy" are explained above in the "Global Defaults" area.<br />
<br />
= MySQL =<br />
<br />
Related article: [[Troubleshoot_MySQL]]<br />
<br />
== For Storage Nodes ==<br />
<br />
FOG 1.3.0 storage nodes communicate with the main server's database to get various work done. During installation, the installer will prompt you for a <font color="red">FOG_STORAGENODE_MYSQLUSER</font> and a <font color="red">FOG_STORAGENODE_MYSQLPASS</font>. <br />
<br />
The default username is <font color="red">fogstorage</font><br />
<br />
The password is always unique, and can be retrieved via the web interface here:<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> FOG Storage Nodes -> FOG_STORAGENODE_MYSQLPASS</font><br />
<br />
You would copy/paste this password value into the installer during installation.<br />
<br />
If you need to change this password or username or server address later on a storage node, you may edit the <font color="red">/opt/fog/.fogsettings</font> on that particular node to update the password and then re-run the installer to complete changes. You may edit the file with Vi like this:<br />
<br />
<font color="red">vi /opt/fog/.fogsettings</font><br />
<br />
Instructions on using Vi: [[vi]]<br />
<br />
In this file, look for the fields <font color="red">snmysqluser=</font> and <font color="red">snmysqlpass=</font> and <font color="red">snmysqlhost=</font>. That's where you'd change the values, and then after saving and closing, re-run the installer to complete changes.<br />
<br />
To change the password in MySQL, you would run one of the below commands on '''the main fog server'''.<br />
<br />
Newer versions of MySQL and Ubuntu 16+:<br />
<br />
<pre>mysql<br />
ALTER USER 'fogstorage'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassGoesHere';</pre><br />
<br />
Older versions of MySQL:<br />
<br />
<pre>mysql<br />
ALTER USER 'fogstorage'@'%' IDENTIFIED BY 'NewPassGoesHere';</pre><br />
<br />
== For Main Server ==<br />
<br />
Typically, the user, password, and host is normally blank for the main server. The installer, unless told otherwise when it prompts, will assume a blank password.<br />
<br />
To change the password in MySQL, it would be something like one of these:<br />
<br />
Newer versions of MySQL and Ubuntu 16+:<br />
<br />
<pre>mysql<br />
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';</pre><br />
<br />
Older versions of MySQL:<br />
<br />
<pre>mysql<br />
ALTER USER 'root'@'localhost' IDENTIFIED BY '';</pre><br />
<br />
After having changed the password, it may be necessary to update the value inside of <font color="red">/opt/fog/.fogsettings</font> on the main server. You may edit the file with Vi like this:<br />
<br />
<font color="red">vi /opt/fog/.fogsettings</font><br />
<br />
Instructions on using Vi: [[vi]]<br />
<br />
In this file, look for the fields <font color="red">snmysqluser=</font> and <font color="red">snmysqlpass=</font> and <font color="red">snmysqlhost=</font>. That's where you'd change the values, and then after saving and closing, re-run the installer to complete changes.<br />
<br />
= Proxy Settings =<br />
<br />
If your organization uses a Proxy Server to access the web, you may set credentials and other settings for this '''if needed''' here:<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Proxy Settings</font><br />
<br />
= Kernel Updates =<br />
<br />
The username and password for FOG 1.3.0 kernel updates is oddly named, as you will see below. These credentials are the ones used when placing newly downloaded kernels and inits onto the server. They are used via FTP. See [[Kernel Update]] for more information on the process.<br />
<br />
The username and password is located here:<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> TFTP Server</font><br />
<br />
= Local "fog" user =<br />
<br />
Please do not use the local "fog" user account on the server to do back-end work. Create another account and use that. When building a new server, create a work account and do not create a "fog" user. This is absolutely not needed as the installer will create and maintain this user account.<br />
<br />
The "fog" user is a local linux account on your fog server or fog storage node. It's also the account used by default for FTP access to any storage nodes (see Storage Management Credentials above).<br />
<br />
To reset this password, you need to be this user, or root.<br />
<br />
On any Linux system, you can elevate an administrative account to root like this:<br />
<br />
<pre>sudo -i</pre><br />
<br />
And then provide your password.<br />
<br />
You may change the fog password like this:<br />
<br />
<pre>passwd fog</pre><br />
<br />
You'll be prompted for the new password, and then to re-enter it again.<br />
<br />
Please see [[Troubleshoot FTP]] for a more complete article on this topic.<br />
<br />
= .fogsettings =<br />
<br />
Located here: <font color="red">/opt/fog/.fogsettings</font><br />
<br />
You may edit it with Vi like this:<br />
<br />
<pre>vi /opt/fog/.fogsettings</pre><br />
<br />
Instructions on using Vi: [[vi]]<br />
<br />
In this file, there are a whole lot of settings, passwords, addresses, etc. You should re-run the fog installer after changing any settings in this file. The important settings in here in relation to the scope of this article are:<br />
<br />
* <font color="red">password=</font> This is what the installer uses to reset the local account, <font color="red">username</font><br />
** Make sure this is set correctly or you'll find that every time you update or re-run the installer, you will have FTP failure, or have locked yourself out of your server!<br />
<br />
* <font color="red">username=</font> This is the local account to be managed by the installer, and used by fog for many things, to include FTP.<br />
<br />
* <font color="red">snmysqluser=</font> This is the username to access the MySQL server.<br />
<br />
* <font color="red">snmysqlpass=</font> This is the password to access the MySQL server.<br />
<br />
* <font color="red">snmysqlhost=</font> This is the MySQL server address.<br />
<br />
Please see [[.fogsettings]] for a complete listing and details.<br />
<br />
= config.class.php =<br />
<br />
Typically located here: <font color="red">/var/www/html/fog/lib/fog/config.class.php</font><br />
<br />
You may view the file like this:<br />
<br />
<pre>cat /var/www/html/fog/lib/fog/config.class.php</pre><br />
<br />
Used to be in '''older versions''' of FOG, this is where passwords and such would be set. It's no longer necessary to edit this file to set passwords, as the installer completely rebuilds this file every time it's ran. You simply need to make sure that the settings inside of <font color="red">/opt/fog/.fogsettings</font> are correct and then re-run the installer to update this file.<br />
<br />
That said, you can view this file if you wish to see if passwords are being set correctly in it. Note that any changes manually made here but not reflected inside of .fogsettings will '''simply be overwritten''' upon the next fog update or re-run of the installer.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Password_Central&diff=12389Password Central2017-01-10T23:10:09Z<p>Tom-elliott.7271: /* Web Interface */</p>
<hr />
<div>This article reflects settings in the 1.3.0 release.<br />
<br />
= Web Interface =<br />
<br />
Default username is <font color="red">fog</font><br />
<br />
Default password is <font color="red">password</font><br />
<br />
If you lose this password, and you have root access to the main fog server, you can reset it to the default via CLI.<br />
== 1.2.0 and lower ==<br />
<pre><br />
mysql -D fog<br />
UPDATE `users` SET `uPass` = MD5('password') WHERE `uName` = 'fog';<br />
quit<br />
</pre><br />
<br />
== 1.3.0 and higher ==<br />
<pre><br />
mysql -D fog<br />
UPDATE `users` SET `uPass` = '$2y$11$g0Hu8OaOStuPk7WWYGh6Wu4PLlZDZGOkzMwEEAk.rZMrI9IdDwno.' WHERE `uName` = 'fog';<br />
quit<br />
</pre><br />
<br />
Alternatively, if the <font color="red">fog</font> user does not exist, you may create it with the default password via CLI.<br />
<br />
<pre><br />
mysql -D fog<br />
INSERT INTO `users` (`uName`,`uPass`,`uCreateBy`,`uType`) VALUES ('fog','$2y$11$g0Hu8OaOStuPk7WWYGh6Wu4PLlZDZGOkzMwEEAk.rZMrI9IdDwno.','localAdmin','0');<br />
quit<br />
</pre><br />
<br />
= Storage Management Credentials =<br />
<br />
Accessed via the web interface, and then clicking on "Storage Management" in the ribbon. In here, you can view the storage nodes connected to your fog server. <br />
<br />
By clicking on one of the storage nodes, you enter into that storage node's settings area. In here is the FTP username and password used for managing this storage node. Please see [[Troubleshoot FTP]] for '''further troubleshooting'''.<br />
<br />
= Active Directory =<br />
<br />
There are three places where you can set Active Directory joining credentials. Two are persistent.<br />
<br />
== Global Defaults ==<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Active Directory Defaults -> FOG_AD_DEFAULT_USER</font><br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Active Directory Defaults -> FOG_AD_DEFAULT_PASSWORD</font><br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Active Directory Defaults -> FOG_AD_DEFAULT_PASSWORD_LEGACY</font><br />
<br />
These three areas are just place-holders. When ticking the checkbox to join a host to Active Directory (explained below), these global settings are what is used to populate the fields. These fields are also what is used when saying "Y" to joining Active Directory via network booting and doing a "Full Host Registration".<br />
<br />
The FOG_AD_DEFAULT_PASSWORD field is used only for the new fog client. This field is typed in as plain-text, and upon saving, is encrypted using an industry-standard encryption technique. Please read through [[FOG_Client#Security_Design]] for more details on this.<br />
<br />
The FOG_AD_DEFAULT_PASSWORD_LEGACY field is only used with the legacy fog client. This value must be encrypted first by "fogcrypt.exe". This program runs on windows via command prompt only, and is available for download at the bottom of every page in the fog web interface, including the login page. After running your password through this program, you would copy/paste the encrypted string it produces into the FOG_AD_DEFAULT_PASSWORD field. This field '''should not be set''' if you do not intend to use the legacy client. It's also '''strongly advised not use the legacy client''', and instead use the new fog client due to security concerns.<br />
<br />
== Host Settings ==<br />
<br />
You may individually set unique user/pass and domain information on a per-host basis if you wish. You can get to this area like this:<br />
<br />
<font color="red">Web Interface -> Host Management -> [list all hosts or search] -> Click on the desired host -> Click "Active Directory"</font><br />
<br />
In this area, there are a few fields. When checking the "Join Domain after image task" checkbox, if global defaults are set, they are auto-populated into these fields. You may manually enter these fields with whatever domain/user/password you wish.<br />
<br />
The two password fields "Domain Password" and "Domain Password Legacy" are explained above in the "Global Defaults" area.<br />
<br />
== Group Settings ==<br />
<br />
You may set Active Directory credentials on many hosts at once via groups. After setting AD Credentials here and then coming back to check this area in groups, you will see that the field is always blank. The settings are not applied to the group, but instead to each individual host within the group. If you check the individual hosts (explained above), you will see that your settings have applied. Hosts later added to the group will not receive the previously applied settings, because the settings do not apply to the group, but instead to each individual host in the group and only at the time of applying the settings.<br />
<br />
You can go to this area like this:<br />
<br />
<font color="red">Web Interface -> Group Management -> [list all groups or search] -> Click the desired group -> Click "Active Directory"</font><br />
<br />
The two password fields "Domain Password" and "Domain Password Legacy" are explained above in the "Global Defaults" area.<br />
<br />
= MySQL =<br />
<br />
Related article: [[Troubleshoot_MySQL]]<br />
<br />
== For Storage Nodes ==<br />
<br />
FOG 1.3.0 storage nodes communicate with the main server's database to get various work done. During installation, the installer will prompt you for a <font color="red">FOG_STORAGENODE_MYSQLUSER</font> and a <font color="red">FOG_STORAGENODE_MYSQLPASS</font>. <br />
<br />
The default username is <font color="red">fogstorage</font><br />
<br />
The password is always unique, and can be retrieved via the web interface here:<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> FOG Storage Nodes -> FOG_STORAGENODE_MYSQLPASS</font><br />
<br />
You would copy/paste this password value into the installer during installation.<br />
<br />
If you need to change this password or username or server address later on a storage node, you may edit the <font color="red">/opt/fog/.fogsettings</font> on that particular node to update the password and then re-run the installer to complete changes. You may edit the file with Vi like this:<br />
<br />
<font color="red">vi /opt/fog/.fogsettings</font><br />
<br />
Instructions on using Vi: [[vi]]<br />
<br />
In this file, look for the fields <font color="red">snmysqluser=</font> and <font color="red">snmysqlpass=</font> and <font color="red">snmysqlhost=</font>. That's where you'd change the values, and then after saving and closing, re-run the installer to complete changes.<br />
<br />
To change the password in MySQL, you would run one of the below commands on '''the main fog server'''.<br />
<br />
Newer versions of MySQL and Ubuntu 16+:<br />
<br />
<pre>mysql<br />
ALTER USER 'fogstorage'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassGoesHere';</pre><br />
<br />
Older versions of MySQL:<br />
<br />
<pre>mysql<br />
ALTER USER 'fogstorage'@'%' IDENTIFIED BY 'NewPassGoesHere';</pre><br />
<br />
== For Main Server ==<br />
<br />
Typically, the user, password, and host is normally blank for the main server. The installer, unless told otherwise when it prompts, will assume a blank password.<br />
<br />
To change the password in MySQL, it would be something like one of these:<br />
<br />
Newer versions of MySQL and Ubuntu 16+:<br />
<br />
<pre>mysql<br />
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';</pre><br />
<br />
Older versions of MySQL:<br />
<br />
<pre>mysql<br />
ALTER USER 'root'@'localhost' IDENTIFIED BY '';</pre><br />
<br />
After having changed the password, it may be necessary to update the value inside of <font color="red">/opt/fog/.fogsettings</font> on the main server. You may edit the file with Vi like this:<br />
<br />
<font color="red">vi /opt/fog/.fogsettings</font><br />
<br />
Instructions on using Vi: [[vi]]<br />
<br />
In this file, look for the fields <font color="red">snmysqluser=</font> and <font color="red">snmysqlpass=</font> and <font color="red">snmysqlhost=</font>. That's where you'd change the values, and then after saving and closing, re-run the installer to complete changes.<br />
<br />
= Proxy Settings =<br />
<br />
If your organization uses a Proxy Server to access the web, you may set credentials and other settings for this '''if needed''' here:<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> Proxy Settings</font><br />
<br />
= Kernel Updates =<br />
<br />
The username and password for FOG 1.3.0 kernel updates is oddly named, as you will see below. These credentials are the ones used when placing newly downloaded kernels and inits onto the server. They are used via FTP. See [[Kernel Update]] for more information on the process.<br />
<br />
The username and password is located here:<br />
<br />
<font color="red">Web Interface -> FOG Configuration -> FOG Settings -> TFTP Server</font><br />
<br />
= Local "fog" user =<br />
<br />
Please do not use the local "fog" user account on the server to do back-end work. Create another account and use that. When building a new server, create a work account and do not create a "fog" user. This is absolutely not needed as the installer will create and maintain this user account.<br />
<br />
The "fog" user is a local linux account on your fog server or fog storage node. It's also the account used by default for FTP access to any storage nodes (see Storage Management Credentials above).<br />
<br />
To reset this password, you need to be this user, or root.<br />
<br />
On any Linux system, you can elevate an administrative account to root like this:<br />
<br />
<pre>sudo -i</pre><br />
<br />
And then provide your password.<br />
<br />
You may change the fog password like this:<br />
<br />
<pre>passwd fog</pre><br />
<br />
You'll be prompted for the new password, and then to re-enter it again.<br />
<br />
Please see [[Troubleshoot FTP]] for a more complete article on this topic.<br />
<br />
= .fogsettings =<br />
<br />
Located here: <font color="red">/opt/fog/.fogsettings</font><br />
<br />
You may edit it with Vi like this:<br />
<br />
<pre>vi /opt/fog/.fogsettings</pre><br />
<br />
Instructions on using Vi: [[vi]]<br />
<br />
In this file, there are a whole lot of settings, passwords, addresses, etc. You should re-run the fog installer after changing any settings in this file. The important settings in here in relation to the scope of this article are:<br />
<br />
* <font color="red">password=</font> This is what the installer uses to reset the local account, <font color="red">username</font><br />
** Make sure this is set correctly or you'll find that every time you update or re-run the installer, you will have FTP failure, or have locked yourself out of your server!<br />
<br />
* <font color="red">username=</font> This is the local account to be managed by the installer, and used by fog for many things, to include FTP.<br />
<br />
* <font color="red">snmysqluser=</font> This is the username to access the MySQL server.<br />
<br />
* <font color="red">snmysqlpass=</font> This is the password to access the MySQL server.<br />
<br />
* <font color="red">snmysqlhost=</font> This is the MySQL server address.<br />
<br />
Please see [[.fogsettings]] for a complete listing and details.<br />
<br />
= config.class.php =<br />
<br />
Typically located here: <font color="red">/var/www/html/fog/lib/fog/config.class.php</font><br />
<br />
You may view the file like this:<br />
<br />
<pre>cat /var/www/html/fog/lib/fog/config.class.php</pre><br />
<br />
Used to be in '''older versions''' of FOG, this is where passwords and such would be set. It's no longer necessary to edit this file to set passwords, as the installer completely rebuilds this file every time it's ran. You simply need to make sure that the settings inside of <font color="red">/opt/fog/.fogsettings</font> are correct and then re-run the installer to update this file.<br />
<br />
That said, you can view this file if you wish to see if passwords are being set correctly in it. Note that any changes manually made here but not reflected inside of .fogsettings will '''simply be overwritten''' upon the next fog update or re-run of the installer.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12385Build TomElliott Kernel2017-01-06T23:31:50Z<p>Tom-elliott.7271: /* drivers/net/ethernet/intel/e1000e/netdev.c */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
No longer needed for 4.9.x and hopefully forward.<br />
<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
<br />
== drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 0) blk_queue_virt_boundary(sdevice->request_queue, 0);<br />
else blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/igb/e1000_82575.c ==<br />
Search E1000_STATUS_FUNC_SHIFT;<br />
<br />
Directly after the line add:<br />
<pre><br />
igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12384Build TomElliott Kernel2017-01-06T23:24:11Z<p>Tom-elliott.7271: /* drivers/scsi/storvsc_drv.c */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
== drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 0) blk_queue_virt_boundary(sdevice->request_queue, 0);<br />
else blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/igb/e1000_82575.c ==<br />
Search E1000_STATUS_FUNC_SHIFT;<br />
<br />
Directly after the line add:<br />
<pre><br />
igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12383Build TomElliott Kernel2017-01-06T23:23:55Z<p>Tom-elliott.7271: /* drivers/scsi/storvsc_drv.c */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
== drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 0) blk_queue_virt_boundary(sdevice->request_queue, 0);<br />
else blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/igb/e1000_82575.c<br />
Search E1000_STATUS_FUNC_SHIFT;<br />
<br />
Directly after the line add:<br />
<pre><br />
igb_write_phy_reg_82580(hw, I347AT4_PAGE_SELECT, 0);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12376.fogsettings2016-12-17T17:42:49Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== DNS Address ===<br />
Used for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
=== Subnet Mask ===<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
=== Router Address ===<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
=== Plain Router ===<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
=== startrange ===<br />
<pre><br />
startrange=''<br />
</pre><br />
=== endrange ===<br />
<pre><br />
endrange=''<br />
</pre><br />
=== bootfilename ===<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== Updating ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
<br />
== HTTP Configuration paths ==<br />
=== docroot ===<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
=== webroot ===<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
<br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12375.fogsettings2016-12-17T17:38:23Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
=== startrange ===<br />
<pre><br />
startrange=''<br />
</pre><br />
=== endrange ===<br />
<pre><br />
endrange=''<br />
</pre><br />
=== bootfilename ===<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== Updating ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
<br />
== HTTP Configuration paths ==<br />
=== docroot ===<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
=== webroot ===<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
<br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12374.fogsettings2016-12-17T17:37:02Z<p>Tom-elliott.7271: /* HTTP Configuration paths */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== Updating ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
<br />
== HTTP Configuration paths ==<br />
=== docroot ===<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
=== webroot ===<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
<br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12373.fogsettings2016-12-17T17:36:52Z<p>Tom-elliott.7271: /* webroot */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== Updating ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
<br />
== HTTP Configuration paths ==<br />
=== docroot ===<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
<br />
=== webroot ===<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
<br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12372.fogsettings2016-12-17T17:36:39Z<p>Tom-elliott.7271: /* docroot */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== Updating ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
<br />
== HTTP Configuration paths ==<br />
=== docroot ===<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
<br />
== webroot ==<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12371.fogsettings2016-12-17T17:36:07Z<p>Tom-elliott.7271: /* fogupdateloaded */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== Updating ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
<br />
== docroot ==<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
== webroot ==<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12370.fogsettings2016-12-17T17:35:43Z<p>Tom-elliott.7271: /* storageLocation */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== Image storage ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
<br />
== fogupdateloaded ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
== docroot ==<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
== webroot ==<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12369.fogsettings2016-12-17T17:34:12Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== storageLocation ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
== fogupdateloaded ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
== docroot ==<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
== webroot ==<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=12368.fogsettings2016-12-17T17:33:31Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre><br />
== storageLocation ==<br />
This defines the location for image storage. This is just a string value to the path of your images location.<br />
<pre><br />
storageLocation='/images'<br />
</pre><br />
== fogupdateloaded ==<br />
This defines if the update file is loaded. 1 is the set value after fresh install. When the .fogsettings file is loaded this value is checked and tells the system to perform an update. If this isn't 1 or the variable is not found, it requests "input" from the user (unless you're running with the -y argument).<br />
<pre><br />
fogupdateloaded=1<br />
</pre><br />
== docroot ==<br />
This value tells httpd where the document root will be for the GUI.<br />
For example, when you go to http://127.0.0.1/ The document root is looking on the server at the docroot location for files to present to the user.<br />
<pre><br />
docroot='/var/www/html/'<br />
</pre><br />
== webroot ==<br />
This value tells FOG where the webroot is. Webroot is the link to actually get to the FOG GUI. If the value is just '/' you would be accessing the FOG GUI with the link http://127.0.0.1/. If it's 'fog/' you are accessing the GUI as http://127.0.0.1/fog/.<br />
<pre><br />
webroot='fog/'<br />
</pre><br />
== caCreated ==<br />
<pre><br />
caCreated='yes'<br />
</pre><br />
== startrange ==<br />
<pre><br />
startrange=''<br />
</pre><br />
== endrange ==<br />
<pre><br />
endrange=''<br />
</pre><br />
== bootfilename ==<br />
<pre><br />
bootfilename='undionly.kpxe'<br />
</pre><br />
== packages ==<br />
<pre><br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
</pre><br />
== noTftpBuild ==<br />
<pre><br />
noTftpBuild=''<br />
</pre><br />
== nopxedefaultfile ==<br />
<pre><br />
notpxedefaultfile=''<br />
</pre><br />
== sslpath ==<br />
<pre><br />
sslpath='/opt/fog/snapins/ssl/'<br />
</pre><br />
== backupPath ==<br />
<pre><br />
backupPath='/home/'<br />
</pre><br />
## End of FOG Settings</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Multiple_TFTP_servers&diff=12366Multiple TFTP servers2016-12-16T17:36:57Z<p>Tom-elliott.7271: /* Ubuntu */</p>
<hr />
<div>== Including multiple TFTP servers ==<br />
<br />
This section was added based on [https://sourceforge.net/projects/freeghost/forums/forum/730844/topic/3622667 this forum thread] with credit going to [https://sourceforge.net/users/jhoff484/ Jordan Hoff] who describes how to provide the necessary services to allow FOG to span across isolated network segments. A traditional 'Master Storage Node' as described [[Managing_FOG#Storage_Manangement|here]] only provides File Storage services to increase unicast throughput within a single network. The steps below describe how to modify a Storage Node to also provide PXE and TFTP services for a separate network segment.<br />
<br />
== 0.32?? and earlier ==<br />
==== Ubuntu Server LTS 10.04 using fog_0.29 ====<br />
[http://en.wikipedia.org/wiki/Sudo <tt>sudo</tt>] is assumed unless specified.<br />
<br><br />
===== Changes on the Master Server =====<br />
On the master server, edit the <tt>/etc/exports</tt> file, and append the following line: <pre>/tftpboot/pxelinux.cfg *(ro,sync,no_wdelay,no_root_squash,insecure,no_subtree_check)</pre> While you're in there, append <tt>no_subtree_check</tt> to the other entries to prevent warnings in the next step.<br>Then, enable the newly configured exports by executing the following command: <pre>exportfs -a</pre><br />
<br />
Now, we need to setup [https://help.ubuntu.com/community/rsync#Rsync%20Daemon rsyncd]:<br><br />
Edit /etc/default/rsync to change <tt>RSYNC_ENABLE=false</tt> to:<br />
<pre>RSYNC_ENABLE=inetd</pre><br />
Install xinetd:<br />
<pre>sudo apt-get -y install xinetd</pre><br />
Create or edit <tt>/etc/xinetd.d/rsync</tt> file to launch rsync (if it already exists just change <tt>RSYNC_ENABLE=false</tt> to:<tt>RSYNC_ENABLE=true</tt>):<br />
<pre>service rsync<br />
{<br />
disable = no<br />
socket_type = stream<br />
wait = no<br />
user = root<br />
server = /usr/bin/rsync<br />
server_args = --daemon<br />
log_on_failure += USERID<br />
flags = IPv6<br />
}</pre><br />
<br />
Now create or edit a /etc/rsyncd.conf file with the following:<br />
<pre>max connections = 2<br />
motd file = /etc/rsyncd.motd<br />
log file = /var/log/rsyncd.log<br />
pid file = /var/run/rsyncd.pid<br />
lock file = /var/run/rsync.lock<br />
timeout = 300<br />
<br />
[tftpboot]<br />
path = /tftpboot<br />
comment = Fog tftpboot share<br />
read only = true<br />
exclude = *pxelinux.cfg/*<br />
</pre><br />
<br>And start the rsyncd daemon:<pre>rsync --daemon</pre><br />
Restart xinetd:<pre>service xinetd restart</pre><br />
Now, our master server is ready to share everything it needs for another PXE server to operate. Lets go and setup a new server!<br />
<br><br />
----<br />
===== Setting up the remote Storage Node ===== <br />
Setup your secondary server as you normally would, before installing fog. (In this example, I use Ubuntu, so you will have to modify this process if you are using anything else)<br><br />
After the network is configured and updates are applied, download and extract fog_0.29 following the basic [http://www.fogproject.org/wiki/index.php?title=Ubuntu_10.04#Setting_up_FOG_on_Ubuntu instructions].<br><br />
Before executing the setup script, there are two files to modify:<br />
<br><br />
Edit the main <tt>/opt/fog-setup/fog_0.29/bin/installfog.sh</tt> script. Locate the section titled:<tt># Storage Node installation</tt><br />
Insert the following line after <tt>configureFTP;</tt> and save the script:<br />
<pre>configureTFTPandPXE;</pre><br />
<br />
Edit the <tt>/opt/fog-setup/fog_0.29/lib/ubuntu/config.sh</tt> script:<br />
Locate the line beginning with <tt>storageNodePackages</tt> (on line #24) and add these two packages within the quotes:<br />
<pre>tftpd-hpa tftp-hpa</pre><br />
<br><br />
<br><br />
Then, just install the fog storage node as usual. The modifications above will install and configure TFTP / PXE services for us. Then, all we have to do is tie it back to the main server. <br />
<br><br />
<br><br />
First, remove everything in the /tftpboot folder on the secondary node:<br />
<pre>rm -rf /tftpboot/*</pre><br />
<br />
Now initiate rsync for the <tt>/tftpboot</tt> folder:<br />
<pre>rsync -rv mainserver.yourcompany.com::tftpboot/ /tftpboot</pre><br />
<br />
Now, we setup the crontab to run every hour(at the 15 minute mark of each, or modify to your liking)<br />
<pre>crontab -e (you may be asked to select an editor)<br />
15 * * * * rsync -rv mainserver.yourcompany.com::tftpboot /tftpboot</pre><br />
<br />
Then, all that is left is to setup our NFS share for the pxelinux.cfg folder. Modify <tt>/etc/fstab</tt> and add the following: <br />
<pre>mainserver.yourcompany.com:/tftpboot/pxelinux.cfg /tftpboot/pxelinux.cfg nfs nolock 0 0</pre><br />
Save and close, then we mount this folder one time (the fstab entry above ensures that it will re-mount automatically at reboot):<br />
<pre>mount /tftpboot/pxelinux.cfg</pre><br />
<br />
===== Add the Storage Node to your main server =====<br />
See: [[#Adding_the_Node_to_the_Management_Portal|Adding the Node to the Management Portal]]<br><br />
And that's it! Go ahead and test out your fancy new PXE server.<br><br />
===Exceptions===<br />
<ul><LI>Note that in testing the above solution did NOT automatically sync the /images folder. I manually run the following command for each image I want ''from the Storage Node'':<br />
<pre>sudo scp -r root@mainFOGserver:/images/nameOfImage /images/</pre></li><br />
<li>Another very useful addition is [https://sourceforge.net/projects/freeghost/forums/forum/716419/topic/4006688 this patch] which provides clients the intelligence to use the closest node.</li><br />
<li>This also does NOT provide WOL packets to be sent via the local Storage Nodes.</li><br />
</ul><br />
<br />
== 1.x.x ==<br />
===== Setting up the remote Storage Node ===== <br />
Setup your secondary server as you normally would, before installing fog.<br />
====== Ubuntu ======<br />
After the network is configured and updates are applied, download and extract fog as you normally would<br><br />
Before executing the setup script, there are two files to modify:<br />
<br><br />
Edit the main <tt>/opt/fog-setup/fog_version/bin/installfog.sh</tt> script. Locate the section titled:<tt># Storage Node installation</tt><br />
Insert the following line after <tt>configureFTP;</tt> and save the script:<br />
<pre>configureTFTPandPXE;</pre><br />
<br />
Edit the <tt>/opt/fog-setup/fog_version/lib/ubuntu/config.sh</tt> script:<br />
Locate the line beginning with <tt>storageNodePackages</tt> (on line #25) and add these two packages within the quotes:<br />
<pre>tftpd-hpa tftp-hpa</pre><br />
<br><br />
<br><br />
Then, just install the fog storage node as usual. The modifications above will install and configure TFTP / PXE services for us.<br />
<br />
====== Redhat ======<br />
After the network is configured and updates are applied, download and extract fog as you normally would<br><br />
Before executing the setup script, there are two files to modify:<br />
<br><br />
Edit the main <tt>/opt/fog-setup/fog_version/bin/.install.sh</tt><br />
script. Location the section titled: <<tt># Storage Node installation</tt><br />
Insert the following line after <tt>configureFTP;</tt> and save the script:<br />
<pre>configureTFTPandPXE;</pre><br />
<br />
Edit the <tt>/opt/fog-setup/fog_version/lib/redhat/config.sh</tt> script:<br />
Location the line beginning with <tt>storageNodePackages</tt> (on lines 27, 34, and 39 and add this package within the quotes:<br />
<pre>tftp-server</pre><br />
<br><br />
<br><br />
Then, just install the fog storage node as usual. The modifications above will install and configure TFTP / PXE services for us.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Plugins&diff=12345Plugins2016-11-18T16:59:54Z<p>Tom-elliott.7271: /* Access Control Plugin */</p>
<hr />
<div>Plugins add more functionality to FOG. <br />
== Enabling Plugins ==<br />
Plugins are not enabled on the FOG server by default, so this is the first thing we will need to do.<br />
<br />
#Log in to the FOG Web UI.<br />
#Go to '''FOG Configuration'''<br />
#Go to '''Fog Settings'''<br />
#Scroll Down and locate the section '''Plugin System'''<br />
#Tick on FOG_PLUGINSYS_ENABLED<br />
#Click "Save Changes"<br />
<br />
=== Activate Plugins ===<br />
* Lists all the available plugins to install<br />
<br />
=== Install Plugins ===<br />
* Lists all your "downloaded" plugins that are not activated yet<br />
<br />
=== Installed Plugins ===<br />
* Lists all your installed and active plugins<br />
<br />
==LDAP Plugin==<br />
* FOG v1.3.0+<br />
* Allows you to link with a LDAP server to add an user validation<br />
* You can add mulitple LDAP servers<br />
* You can config the DN base and the port of the LDAP Server<br />
* If FOG can not connect with the LDAP Server, FOG tries to do a local validation<br />
* If the user does not exist, FOG create one with the mobile profile<br />
<br />
*[[File:Add_new_LDAP-Server.jpeg]]<br />
*[[File:ListAllLDAP_Servers.jpeg]]<br />
*[[File:LDAP_Plugin_HomePage.jpeg]]<br />
<br />
==Location Plugin==<br />
* Allows you to direct hosts at separate locations and manage through a centralized server<br />
* Hosts will be imaged from their location setup, rather than trying to pull from a random node/server across, potentially, WAN links<br />
* Same works for "Tftp" in that it will direct the host to get it's kernel and init from it's related location<br />
* Can also be used to direct the host to download it's snapins from the relevant location<br />
* See also [[Location Plugin]]<br />
<br />
==Access Control Plugin==<br />
NOTE: While initially implemented, this plugin has been deprecated and removed from the core plugins list due to many complexities in implementation.<br />
<br />
<br />
* <span style="background-color:RED; padding: 1px"> '''NOT Currently ready''' </span><br />
* To give a layer of security and control over the task and imaging processes as well as limit the GUI items from "designated" controls<br />
* For Example: IT vs. Regular User<br />
<br />
==Capone Plugin==<br />
*Capone is a plugin for FOG that allows you to image a computer based on DMI/Hardware information without having to register it with the FOG server. This module was originally written for a HP computer warranty service center in the UK. They wanted to be able to restore a computer's image just by plugging it into the network and PXE booting the machine, without any user intervention. This module is great for repair shops and places where you don't need FOG to manage the computer after it is imaged. This is our attempt at pushing FOG into the service/repair sector. <br />
* In FOG terms a "Quick Image" without any registration<br />
* <span style="background-color:YELLOW; padding: 1px"> '''Obsolete''' </span> As of FOG v1.3.0-r2651 the fog user can now add Quick Image to the Fog iPXE Menu(For All Hosts) and then select the exact image desired without having to do any registration. BUT intervention is still required to start imaging.<br />
*[[Plugins: Capone]]<br />
<br />
==WOL Broadcast Plugin==<br />
* Allowing the Fog user to specify different broadcast address on your network<br />
* WOL will use those set values to send the WOL Packets to the broadcast addresses, rather than staying only on layer 2<br />
<br />
==Example Plugin==<br />
* If you would like to create your own plugins here is a template to follow.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Replication&diff=12322Replication2016-11-01T11:51:08Z<p>Tom-elliott.7271: Describe Replication</p>
<hr />
<div>= Overview =<br />
<br />
The intention of this posting is to explain replication in regards to how FOG handles it's image and snapin distribution to other nodes.<br />
<br />
= History =<br />
<br />
FOG Replication system was designed as a means to distribute images to nodes within the group it resided in. It operated on a per image system and only replicated images themselves.<br />
<br />
= Basic process =<br />
<br />
Replication works by taking the master node of a group and distributing to the "subordinate" nodes within that same group.<br />
<br />
= Rethought =<br />
<br />
Due to the nature of replication, and the complexities and layouts of some FOG environments, the process of replication has been modified.<br />
<br />
== Basic Changes ==<br />
<br />
# Snapins can now be replicated.<br />
# Replication can now distribute to multiple groups as well as nodes.<br />
## This is handled per each item.<br />
## (e.g. Both snapins and images must be assigned to at least one group, but can be assigned to multiple groups)<br />
# Both snapins and images can be individually "replicated" or "not replicated".<br />
# Both snapins and images can be individually "enabled" or "disabled".<br />
<br />
== Why? ==<br />
<br />
As stated in the basic history, replication only worked with images. It didn't, really, go that far either. It only replicated the /images folder (whatever it may have been defined as). It only replicated within a single group. It deleted any dubious / or purposefully extra data within. This enabled an attacker or accidental change of the master node to essentially wipe an image series simply by changing which node is a "master" node. For example, if you created a new node within a pre-existing group and defined that new node as the master, it would replicate it's contents (currently empty) to all other nodes in the group. Hopefully you see the problem with this idea. All an attacker would need to do, or an unknowing user, is create a blank node and define it as the master (as every node must belong to a group).<br />
<br />
== Lower-level Process ==<br />
Replication is handled at a per definition basis now. Any data contained within either the snapin or image storage locations that does not have a corresponding definition associated will remain untouched. This leaves the data used for that segment. For example, if you created an image definition and had a image defined there. Later on you delete the definition with the GUI, but chose not to delete the data, that data will remain wherever it had existed (on any or all nodes it exists on). It will NOT be replicated though because the FOG system knows nothing about it. The same premise is used to deal with snapins (they share a common method now.)<br />
<br />
== Higher-level Process ==<br />
# The image and/or snapin replication service starts.<br />
# This service starts by checking if they are the master node.<br />
# If they are they master node for the group they're working on, they find out which data they have.<br />
## Nodes technically cannot exist in multiple groups, but there is a way around this (though it's very uncommon).<br />
# Filter the data that is "not enabled" and/or "not to be replicated". Only enabled items with "replication" enable are selected to be replicated.<br />
# The replication method is called. As a part of this replication method, we start by seeing which data is to be replicated between multiple storage groups.<br />
# If the node currently checking is the "primary master group" for the data it's working, it will attempt replicating its data to the master of each of the other groups the data is assigned under.<br />
# If the node currently checking is the master of the group for the data it's working, it will attempt replicating its data to the other nodes within the group. (Remember, Storage Groups can only have one Master node. Likewise, there can only be one primary master group per item to be replicated.)</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_16.04&diff=12143Ubuntu 16.042016-08-09T22:27:15Z<p>Tom-elliott.7271: /* Installation */</p>
<hr />
<div> <span style="background-color:Yellow;"><span style="color:RED">'''WARNING THIS VERSION OF LINUX, IT IS RELATIVITY NEW AND THERE ARE ISSUES!'''</span></span><br />
<br />
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk.'''<br />
<br />
Article under construction.<br />
<br />
= Installation from scratch =<br />
There should be a lot less trouble doing a fresh installation. Just follow the usual steps outlined in the articles on previous Ubuntu versions:<br />
* Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the "Install Ubuntu" Option when it is presented to you at the Welcome screen.<br />
* Proceed with a normal install of Ubuntu. It is recommended to make the choice to Download the latest updates while installing by ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems. Recommended that you remove all information unless you have other OS's you want to keep on the system.<br />
* Partitioning the disk [https://forums.fogproject.org/topic/7279/ubuntu-16-04-server-custom-partitioning-during-installation seems to be a bit tricky]: You have to delete the volume group it makes, select the actual device, and it lets you choose to blow away the partitions table and make a new one<br />
* During the install Ubuntu will ask you to set your timezone, layout, and some user information such as a user name and password. Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.<br />
* After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.<br />
Your system should now be installed and ready to go.<br />
<br />
= Update / Dist-Upgrade =<br />
This part is definitely harder than a new installation. So please read this before starting the upgrade process and be aware that things might go wrong. You have been warned. So start off by modifying your /etc/apt/sources.list file. Replace all 'trusty' or 'wily' strings with 'xenial' and update your package list.<br />
<br />
sudo apt-get update<br />
<br />
Upgrading from 14.04 (trusty) as well as from 15.04 (wily) you'll most probably run into the following error:<br />
<br />
sudo apt-get dist-upgrade<br />
...<br />
Checking if update is needed.<br />
Checking server version.<br />
Error: Server version (5.5.49-0ubuntu0.14.04.1) does not match with the version of<br />
the server (5.7.12) with which this program was built/distributed. You can<br />
use --skip-version-check to skip this check.<br />
mysql_upgrade failed with exit status 3<br />
dpkg: error processing package mysql-server-5.7 (--configure):<br />
subprocess installed post-installation script returned error exit status 1<br />
...<br />
dpkg: dependency problems prevent configuration of mysql-server:<br />
mysql-server depends on mysql-server-5.7; however:<br />
Package mysql-server-5.7 is not configured yet.<br />
<br />
dpkg: error processing package mysql-server (--configure):<br />
dependency problems - leaving unconfigured<br />
...<br />
Errors were encountered while processing:<br />
mysql-server-5.7<br />
mysql-server<br />
<br />
Current status: 0 updates [-272].<br />
<br />
As you can clearly see from the error (in my case) the mysql server still runnning was the old version 5.5.49 but the mysql_update tool trying to update the DB in the postinstall scripts was already the newer version. I got this solved by opening two terminals/consoles and shutting down the (old) mysql DB (sudo service mysql stop) while re-running the package installer (sudo apt-get -f install). Very ugly but worked for me.<br />
<br />
An error might be caused by different issues. So please pay full attention on the error you see and check your error log which is the most valuable source of information in this case.<br />
<br />
tail -n 30 /var/log/mysql/error.log<br />
<br />
== MySQL password behavior ==<br />
Password behaviour when the MySQL root password is empty has changed. Packaging now enables socket authentication when the MySQL root password is empty. This means that a non-root user can't log in as the MySQL root user with an empty password. [https://wiki.ubuntu.com/XenialXerus/ReleaseNotes#MySQL_5.7 See here] and as well note that root login via non-socket connection (like FOG connecting via TCP localhost) also is not allowed anymore if password was empty. To fix this you can login via mysql command line tool and change the connection setting.<br />
<br />
mysql -u root<br />
...<br />
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY &#39;&#39;;<br />
mysql> quit<br />
<br />
== Customized my.cnf ==<br />
In case you have customized your mysql configuration (/etc/mysql/my.cnf) you might even run into another problem. [https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1571865 See here]!<br />
<br />
== PHP issue ==<br />
People [https://forums.fogproject.org/topic/7268/access-denied-for-root-localhost/14 reported] having issues with PHP in 16.04 as well. On my test install system I have the following PHP packages:<br />
<br />
dpkg -l | grep php<br />
ii libapache2-mod-php5 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)<br />
ii php-cli 1:7.0+35ubuntu6 all command-line interpreter for the PHP scripting language (default)<br />
ii php-common This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED. 1:35ubuntu6 all Common files for PHP packages<br />
ii php-gettext 1.0.11-2build1 all read gettext MO files directly, without requiring anything other than PHP<br />
ii php-pear 1:1.10.1+submodules+notgz-6 all PEAR Base System<br />
ii php-xml 1:7.0+35ubuntu6 all DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]<br />
ii php5 5.6.20+dfsg-1+deb.sury.org~trusty+1 all server-side, HTML-embedded scripting language (metapackage)<br />
ii php5-cli 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 command-line interpreter for the php5 scripting language<br />
ii php5-common 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 Common files for packages built from the php5 source<br />
ii php5-curl 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 CURL module for php5<br />
ii php5-fpm 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)<br />
ii php5-gd 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 GD module for php5<br />
ii php5-json 1.3.9-1+deb.sury.org~trusty+4 amd64 JSON module for php5<br />
ii php5-mcrypt 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 MCrypt module for php5<br />
ii php5-mysqlnd 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 MySQL module for php5 (Native Driver)<br />
ii php7.0-cli 7.0.4-7ubuntu2 amd64 command-line interpreter for the PHP scripting language<br />
ii php7.0-common 7.0.4-7ubuntu2 amd64 documentation, examples and common module for PHP<br />
ii php7.0-json 7.0.4-7ubuntu2 amd64 JSON module for PHP<br />
ii php7.0-opcache 7.0.4-7ubuntu2 amd64 Zend OpCache module for PHP<br />
ii php7.0-readline 7.0.4-7ubuntu2 amd64 readline module for PHP<br />
ii php7.0-xml 7.0.4-7ubuntu2 amd64 DOM, SimpleXML, WDDX, XML, and XSL module for PHP<br />
<br />
Interestingly enough I have PHP5 and PHP7 packages and the FOG interface works fine. phpinfo shoes 5.6.20 running. So I purged all PHP5 packages (apt-get purge php5*), [https://forums.fogproject.org/topic/7268/access-denied-for-root-localhost/14 adding variables to .fogsettings file] and re-ran the installer.<br />
<br />
= MySQL 5.7 issue =<br />
We have seen several issues with current FOG trunk on MySQL 5.7. Most of those problems should be fixed now. Please follow this [https://forums.fogproject.org/topic/7280/error-incorrect-integer-value-when-inserting-an-empty-string-into-int-field-in-mysql-5-7 forum post] for most recent information on this. As well please open a new thread in the forums and let us know if you still see problems.<br />
<br />
= Installation =<br />
While the installer will, now, attempt to make the PHP 7 adjustments if the ubuntu version is 16 or higher.<br />
<br />
To get it up with PHP 7 you need to run the installer as follows:<br />
<br />
php_ver='7.0' php_verAdds='-7.0' ./installfog.sh -y</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=FOG_Client&diff=12139FOG Client2016-08-08T21:12:29Z<p>Tom-elliott.7271: /* FOG Client with Sysprep */</p>
<hr />
<div>This article applies to the new FOG Client, version 0.10+<br />
<br />
== The Different Installers ==<br />
<br />
The different installers are located in your FOG server's web interface. The link is always at the very bottom of every page and are even available to you if you're not logged into the fog server.<br />
<br />
[[File:Fog client link.png]]<br />
<br />
[[File:New FOGClient download link.png]]<br />
<br />
'''FOGService.msi''' - Windows only, and is ideal for network deployment.<br />
<br />
'''SmartInstaller.exe''' - This is the new default installer. It will work on all platforms.<br />
<br />
'''Debugger.exe''' - This is not listed in the web interface but is available from github [https://github.com/FOGProject/fog-client/releases here]. Only use this when the above two are not working. This build has more detailed logs that you can use for troubleshooting or a bug report.<br />
<br />
== Installing - Windows ==<br />
<br />
'''Prerequisites'''<br />
* .NET Framework version 4.0+ (Note: .NET 4 client profile will NOT work)<br />
You can download the framework from here: <br />
<br />
[https://www.microsoft.com/en-us/download/details.aspx?id=40779 Microsoft .NET Framework 4.5.1 (Offline Installer) for Windows Vista SP2, Windows 7 SP1, Windows 8, Windows Server 2008 SP2 Windows Server 2008 R2 SP1 and Windows Server 2012]<br />
<br />
Windows 10 comes with a version of .Net that will work.<br />
<br />
'''Installation'''<br />
* May use SmartInstaller or msi. Simply download either one of them and run.<br />
* Reboot to complete installation.<br />
<br />
'''Limitations'''<br />
* CUPS printers are not yet supported<br />
<br />
== Installing - Linux ==<br />
<br />
Installation instructions derived from [http://www.mono-project.com/docs/getting-started/install/linux/ http://www.mono-project.com/docs/getting-started/install/linux/]<br />
<br />
'''Prerequisites'''<br />
* Mono (latest stable build)<br />
* xprintidle - This dependency is optional. If not installed AutoLogOut will not run. xprintidle basically just returns the idle time of an x window, therefore on a system without a GUI it is not needed and should not be installed. It should be available in standard package managers. E.G. apt-get, yum, or dnf<br />
<br />
'''Installing Mono'''<br />
Many distributions come with an out of date version of mono in their package manager. Therefore, do not attempt to install via your package manager without the below modifications<br />
<br />
=== Debian 8+, Ubuntu 13.10+, and derivatives ===<br />
<br />
To install:<br />
<br />
<pre><br />
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF<br />
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list<br />
sudo apt-get update<br />
sudo apt-get install mono-complete<br />
sudo apt-get install xprintidle<br />
</pre><br />
<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
<br />
<br />
The service is automatically configured to run on startup. To manually start and stop the service:<br />
<br />
<pre><br />
sudo service FOGService start<br />
</pre><br />
<pre><br />
sudo service FOGService stop<br />
</pre><br />
<br />
To uninstall:<br />
<br />
<pre><br />
sudo service FOGService stop<br />
sudo mono SmartInstaller.exe uninstall<br />
</pre><br />
<br />
=== CentOS 7, Fedora 19+, and derivatives ===<br />
<br />
To install:<br />
<br />
<pre><br />
yum install yum-utils<br />
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"<br />
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/<br />
yum install mono-complete<br />
yum install xprintidle<br />
</pre><br />
<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
<br />
The service is automatically configured to run on startup. To manually start and stop the service:<br />
<br />
<pre><br />
sudo systemctl start FOGService<br />
</pre><br />
<pre><br />
sudo systemctl stop FOGService<br />
</pre><br />
<br />
To uninstall:<br />
<br />
<pre><br />
sudo systemctl stop FOGService<br />
sudo mono SmartInstaller.exe uninstall<br />
</pre><br />
<br />
=== openSUSE and SLES ===<br />
<br />
You can install mono using SUSE One-Click files: [http://download.mono-project.com/repo/mono-complete.ymp http://download.mono-project.com/repo/mono-complete.ymp]<br />
<br />
=== Other ===<br />
<br />
The FOG Client can be installed on any platform that can run the latest stable build of mono.<br />
<br />
To install:<br />
<br />
* Check your package manager for <font color="red">mono-complete</font>. After installing it run <font color="red">mono --version</font>. Ensure the version is at least 4.2._ . If it not, remove the package.<br />
* If your package manager had an old version of mono, see [http://www.mono-project.com/docs/compiling-mono/linux/ here] for how to compile mono<br />
<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
<br />
If your system either has systemd or initd the client will be automatically configured to run on startup. If your system does not have either, you will need to configure your system to run the manual start command below on startup.<br />
<br />
To manually start and stop the service:<br />
<br />
<pre><br />
sudo /opt/fog-service/control.sh start<br />
</pre><br />
<pre><br />
sudo /opt/fog-service/control.sh stop<br />
</pre><br />
<br />
===Limitations===<br />
* The FOG Tray is currently incompatible on linux systems. Regardless of what you set during installation, it will not run.<br />
* The follow modules / features are not yet supported<br />
** Active Directory joining<br />
** PrinterManager<br />
<br />
== Installing - OSX ==<br />
<br />
'''Prerequisites'''<br />
* Mono (latest stable build)<br />
<br />
'''Installing Mono'''<br />
* If you are running El Capitan, navigate to [http://www.mono-project.com/download/#download-mac http://www.mono-project.com/download/#download-mac] and download <font color=”red”>Mono Universal Installer</font> <br />
* Otherwise, navigate to [http://www.mono-project.com/download/#download-mac http://www.mono-project.com/download/#download-mac] and download <font color=”red”>Mono 32-bit</font> <br />
<br />
'''Installation'''<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
* Reboot the system to complete the installation.<br />
<br />
The service is automatically configured to run on startup. To manually start and stop the service:<br />
<br />
<pre><br />
sudo launchctl load -w /Library/LaunchDaemons/org.freeghost.daemon.plist<br />
</pre><br />
<pre><br />
sudo launchctl unload -w /Library/LaunchDaemons/org.freeghost.daemon.plist<br />
</pre><br />
<br />
To uninstall:<br />
<br />
<pre><br />
sudo launchctl unload -w /Library/LaunchDaemons/org.freeghost.daemon.plist<br />
sudo mono SmartInstaller.exe uninstall<br />
</pre><br />
<br />
'''Limitations'''<br />
* The follow modules / features are not yet supported<br />
** PrinterManager<br />
<br />
'''Logging'''<br />
<br />
You can find the client log file in /opt/fog-service/fog.log<br />
<br />
== Additional Details ==<br />
<br />
=== Features overview ===<br />
<br />
<br />
The purpose of the FOG Client is multi-fold.<br />
<br />
The client allows the host to automatically:<br />
* Auto logout -- Enables auto logout of users if inactive for specified period of time. 5 minute's is the minimum time as all others are way too soon, sometimes people may just be on a phone, or had to step out for a bathroom break.<br />
<br />
* Client Updater -- (Only on legacy clients) Allows the client to update it's modules if you had to customize things, or found a more recent build was needed for your environment.<br />
<br />
* Directory Cleaner -- (Only on legacy clients -- Only worked with Windows XP) Enables the client to remove directories on the host automatically. It lost operation after Windows XP due to UAC controls and better security mechanisms especially needed. Removed completely from the New client.<br />
<br />
* Display Manager -- Enables the client to adjust the resolution of the system on a per system basis, or global basis.<br />
<br />
* Power Management -- Allows you to specify a shutdown, WOL, or restart on a per-host basis. Format for the scheduling is CRON, and can be done on an individual host or through groups. There is no limit to the number of scheduled power tasks.<br />
<br />
* Host Registration -- Registers additional mac addresses to a pre-existing host if registered. The New client will also register the host under a pending status if the host is not already registered.<br />
<br />
* Hostname Changer -- Changes the hostname and joins the domain automatically.<br />
<br />
* Printer Manager -- Manages Printers for the host. Legacy client only added printer or added/removed printers. The No management for both new and legacy simply does nothing. Will remove all printers under Add/Remove type and only add back the printers as needed (Only Assigned Printers). Under Add Only (now FOG Managed Printers) only manages printers that are listed under the printer's GUI and those that are assigned to that host. In legacy client, it only added printers and never removed. Under the new client, it will ONLY manage printers assigned meaning if you remove a printer from a host, the new client will remove that printer.<br />
<br />
* Snapins -- Allows you to install programs or run scripts on the host similar to GPO or PDQDeploy.<br />
<br />
* Task Reboot -- This will just check if the client is in a tasking (other than a snapin tasking). If it is in a tasking, and the module is enabled, the host will be told to reboot. There is a third portion though in that if the user is logged in, and enforce is not enabled nothing will happen.<br />
<br />
* User Cleanup -- (Legacy clients only and again only on Windows XP). Works similar to Directory Cleanup but the entries you make are "safe" user profiles. If the user is not under this listing, it will be deleted. Will not work with the new client, and even legacy clients will not work on anything beyond Windows XP due to UAC and Interactive Service utilities.<br />
<br />
* User Tracker -- Just tracks who logs in/out of a client.<br />
<br />
=== Polling Behavior ===<br />
<br />
The new FOG Client found in FOG 1.3.0 and the Legacy FOG Client both rely on polling to get instructions. This means the FOG Client will regularly check with the specified FOG Server for settings and tasks. The New FOG Client's polling frequency can be adjusted in the FOG Web interface, by going to <font color="red">FOG Configuration -> FOG Settings -> FOG Client -> FOG_CLIENT_CHECKIN_TIME</font>. The minimum value is 30 seconds, anything specified lower than this will result in the FOG Client using 30 second polling intervals.<br />
<br />
The checkin-time is not rigid. There is an automatic and random staggering that is added to the checkin time. This prevents a large number of FOG Clients checking in at once in the event that all computers are started at the same time via WOL tasks.<br />
<br />
The frequency of the checkin-time determines how quickly the FOG Client will receive instructions from the FOG Server. If an image deployment is scheduled for a computer that is turned on, with a checkin-time of 60 seconds, means the FOG Client may begin initiating the task anywhere from 0 to 60 seconds + the random staggering time that is added. This same concept would apply to immediate power management tasks, snapin tasks, capture tasks, and so on. Scheduled tasks are not affected by this behavior, and if the target system is on when the scheduled task is to be ran, this will happen on time.<br />
<br />
=== Security Design ===<br />
<br />
Communications between the FOG Client (0.9.9+) and the FOG Server (1.3.0+) are secured using public key infrastructure.<br />
<br />
A Certificate Authority and private key is generated on the FOG server during first installation in this location:<br />
<br />
<pre>/opt/fog/snapins/ssl</pre><br />
<br />
The public certificate is generally located here:<br />
<pre>/var/www/html/fog/management/other/ssl</pre><br />
<br />
The client installs your servers’ certificate and the FOG Project certificate.<br />
<br />
The “FOG Project” CA (made by the FOG Project) serves two purposes:<br />
<br />
*SYSTEM level services need to be digitally signed otherwise windows will throw security errors. This can also be used to ensure no tampering was done with the client files<br />
<br />
*That certificate is used to “verify” upgrades. Lets say we release a patch for the client, the client will download the MSI from your server and check if it was signed by us. If the MSI was somehow tampered, the digital signature would no longer be valid.<br />
<br />
Using HTTP over HTTPS has no security benefit to the client. Why? Because all traffic is already encrypted. Here’s a very basic overview of how the new client communicates<br />
<br />
*Each client has a security token. This is used to prove to the server that the client is the actual host and not an impersonator. This token gets cycled constantly. When the client first makes contact, it encrypts its token and a proposed AES 256 key using RSA 4096 using your server’s public key. This public key is verified against the pinned server CA certificate by checking the x509 chain and fingerprints.<br />
<br />
*If the server accepts the security token and the new AES key, all traffic from that point on is AES 256 encrypted using that securely transmitted key.<br />
<br />
The whole point of our security model is to allow for secure communication over insecure medians.<br />
Even then, the client installation has an HTTPS option, but it serves no real security benefit.<br />
<br />
References: <br />
<br />
[https://forums.fogproject.org/topic/6325/invalid-security-token-without-any-security-tokens-being-set-also-ca-ssl-security-concerns/6 CA SSL security concerns]<br />
<br />
[https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning Certificate and Public Key Pinning]<br />
<br />
[https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Certificate_and_Public_Key_Pinning Transport_Layer_Protection_Cheat_Sheet]<br />
<br />
==== Reset encryption data ====<br />
This pertains to the new fog client available in FOG 1.3.0 and above, and does not apply to the legacy fog client that was available in 1.2.0 and below.<br />
<br />
The "Reset encryption data" button can be found in an individual host's "General" area. You may also find this button in Groups "General" area. The “Reset encryption data” is mainly doing one thing: Clearing the security token for a host or group of hosts.<br />
<br />
Each host has a security token used by the client. This token is private; only the client knows it and is protected. It is used to prove the identity of the host, ensuring no one ‘fakes’ being a certain host. So when you 'Reset Encryption Data", you are essentially telling the server that the first host to say that they are the host in question gets ‘locked’ in (pinned is the technical term).<br />
<br />
In order to have encrypted traffic, the handshake must occur. During the handshake the server proves its identity to the client, and the client proves its identity to the server (using the security token). If the handshake fails (due to a bad security token), encryption cannot occur.<br />
<br />
The most common scenario where the security tokens for a client will be incorrect is if you manually uninstall a client, and then install it.<br />
<br />
=== Maintain Control Of Hosts When Building New Server ===<br />
<br />
Because of the security model of FOG 1.3.0 and the new client, without the proper CA and ssl certificates present on a new fog server, any currently deployed hosts with the new fog client installed will ignore the new server and not accept commands from it. This is by design.<br />
<br />
In order to maintain control of existing hosts with existing new fog client deployments, you must copy this directory from the old server to the new server:<br />
<br />
* <font color="red">/opt/fog/snapins/ssl</font><br />
<br />
Copy the directory to a temporary location first. I would suggest <font color="red">/root</font><br />
<br />
<pre>cp -R /opt/fog/snapins/ssl /root</pre><br />
<br />
Then you can use scp to copy the directory (or some other method) to your new fog server. Run the below command from the '''old''' server, Where x.x.x.x is the new fog server's address:<br />
<br />
<pre>scp -rp /opt/fog/snapins/ssl root@x.x.x.x:/root</pre><br />
<br />
Or, the reverse. Run the below command from the '''new''' server, where x.x.x.x is the old fog server's address.<br />
<br />
<pre>scp -rp root@x.x.x.x:/opt/fog/snapins/ssl /root</pre><br />
<br />
Next, install fog. After the installation is complete, delete the ssl folder the installer made, and place your old ssl (from /root that you copied) in there. The ownership should be fog:apache on Red-Hat variants, should be fog:www-data on Debian variants. Then '''re-run the installer.''' Instructions for the folder manipulation are below, assuming you followed the above instructions. On the '''new''' server:<br />
<br />
<pre><br />
rm -rf /opt/fog/snapins/ssl<br />
cp -R /root/ssl /opt/fog/snapins/ssl<br />
chown -R fog:apache /opt/fog/snapins/ssl #or fog:www-data for ubuntu and debian<br />
</pre><br />
<br />
If you do not care about maintaining control of existing hosts with existing new fog client deployments (because there is only 1 or 2), you can recreate your CA with the -C argument during installation: <br />
<br />
<pre>./installfog.sh -C</pre><br />
<br />
<font color="red">Note:</font> Recreating the CA (<font color="red">--recreate-CA</font> or <font color="red"> -C</font>) is '''very strongly advised against''' if you have many clients deployed already, because it resets the identity of the FOG Server. This causes all fog clients to distrust the server, and will require total reinstallation of all fog clients in an environment. However, you may recreate the keys (<font color="red">--recreate-keys</font>) safely and be able to still control the fog clients.<br />
<br />
=== FOG Client 0.10.0+ Installation Options ===<br />
<br />
<pre>msiexec /i FOGService.msi /quiet USETRAY="0" HTTPS="0" WEBADDRESS="192.168.1.X" WEBROOT="/fog" ROOTLOG="0"</pre><br />
<br />
Firstly, all options are optional. Here’s what they all do:<br />
<br />
*USETRAY: defaults to "1", if "0" the tray will be hidden<br />
<br />
*HTTPS: defaults to "0", if "1" the client will use HTTPS (not recommended)<br />
<br />
*WEBADDRESS: defaults to "fog-server", this is the ip/dns name of your server<br />
<br />
*WEBROOT: defaults to "/fog"<br />
<br />
*ROOTLOG defaults to "0", if "1" the fog.log will be at C:\fog.log, otherwise %PROGRAMFILES%\FOG\fog.log<br />
<br />
Reference: [https://forums.fogproject.org/topic/6222/msi-silent-install-without-tray-icon/2 MSI Silent Install without Tray Icon]<br />
<br />
=== Manually Reset Encryption On ALL Hosts ===<br />
<br />
This applies to FOG 1.3.0 where the New Client is in use and for some reason you need to manually reset the encryption for all hosts.<br />
<pre><br />
mysql<br />
use fog<br />
UPDATE hosts SET hostPubKey="", hostSecToken="", hostSecTime="0000-00-00 00:00:00";<br />
</pre><br />
<br />
Please note that if your Web interface is functional, you may place all computers into a group, and use the group to reset encryption on all hosts by simply clicking the "Reset encryption" button on the group's basic page.<br />
<br />
=== FOG Client with Sysprep ===<br />
<br />
If you plan to use Sysprep before image capture and are also planning to use the FOG Client, You '''must''' disable the <font color="red">FOGService</font> service from running at boot before you Sysprep to take your image, and then re-enable it within your <font color="red">SetupComplete.cmd</font> file so that it is re-enabled '''after''' the image deployment is complete.<br />
<br />
Failing to do so will break the Sysprep post-deployment process with an error message that says "Windows Setup could not configure Windows to run on this computer’s hardware.”<br />
<br />
* Disable FOGService: <font color="red">Windows Control Pannel -> View by Small Icons -> Administrative Tools -> Services -> Right click FOGService -> Properties -> Startup Type -> Disabled</font><br />
<br />
* Re-enable FOGService post-imaging:<br />
<br />
Create the below file.<br />
<br />
<font color="red">C:\Windows\Setup\scripts\SetupComplete.cmd</font><br />
<br />
Place these lines within the file, and then save.<br />
<br />
<pre>sc config FOGService start= auto<br />
shutdown -t 0 -r</pre><br />
<br />
As the filename indicates, the script is called by windows after an image is deployed and post-sysprep operations are complete. It will re-enable the FOGService and then reboot the computer gracefully. After the computer reboots, the FOGService will start automatically and rename the computer if necessary, reboot if necessary, join the domain and reboot if necessary, and then perform any associated snapins.<br />
<br />
<font color="red">Note:</font> SetupComplete.cmd will not automatically run on OEM versions of windows, but will automatically run on Non-OEM versions of Windows. If you're using an OEM copy, you can use firstlogoncommands in unattend.xml to call SetupComplete.cmd<br />
<br />
<br />
An example of the firstlogincommands might be:<br />
<pre><component name=“Microsoft-Windows-Shell-Setup” processorArchitecture=“amd64” publicKeyToken=“31bf3856ad364e35” language=“neutral” versionScope=“nonSxS” xmlns:wcm=“http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”><br />
<FirstLogonCommands><br />
<SynchronousCommand wcm:action=“add”><br />
<Description>SetupComplete</Description><br />
<Order>1</Order><br />
<CommandLine>C:\Windows\Setup\Scripts\SetupComplete.cmd</CommandLine><br />
<RequiresUserInput>false</RequiresUserInput><br />
</SynchronousCommand><br />
</FirstLogonCommands></pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12106Build TomElliott Kernel2016-07-18T12:54:13Z<p>Tom-elliott.7271: /* linux/drivers/scsi/storvsc_drv.c */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
== drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 0) blk_queue_virt_boundary(sdevice->request_queue, 0);<br />
else blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Build_TomElliott_Kernel&diff=12105Build TomElliott Kernel2016-07-18T12:35:01Z<p>Tom-elliott.7271: /* Additional Patches */</p>
<hr />
<div>'''PRE BUILD ENVIRONMENT IS ASSUMED ALREADY INSTALLED ON THE SYSTEM YOU'RE BUILDING'''<br />
NOTE: It is assumed you have root access to the system you're building this on. It also assumes you know your CWD (Current Working Directory).<br />
= Build TomElliott Kernel for FOG 0.32 and earlier=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
<br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
<pre>make ARCH=i386 menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
<pre>make ARCH=i386 bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /tftpboot/fog/kernel/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /tftpboot/fog/kernel/bzImage</pre><br />
= Build TomElliott Kernel for FOG 0.33b and newer=<br />
The below instructions are to build the TomElliott kernel. There is an extra step involved compared to the normal kernel build as there are firmware's built directly into the kernels now.<br />
== Download the Kernel ==<br />
As of the time of this writing kernel 3.13 is the latest. You can use previous, or future kernels as well though.<br />
<pre>wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.tar.xz</pre><br />
<br />
== Uncompress the kernel ==<br />
<pre>tar -xf linux-3.13.tar.xz</pre><br />
<br />
== Go into uncompressed linux kernel directory ==<br />
<pre>cd linux-3.13</pre><br />
<br />
== Get the config file ==<br />
===To Build 32 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.32 -O .config</pre><br />
===To Build 64 bit Kernel===<br />
<pre>wget https://svn.code.sf.net/p/freeghost/code/trunk/kernel/TomElliott.config.64 -O .config</pre><br />
== Download the prerequisite package '''(THE EXTRA STEP IS HERE)''' ==<br />
<pre>git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git</pre><br />
<br />
== Prepare the build ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 menuconfig</pre><br />
===To Build 64 bit Kernel===<br />
'''NOTE: MUST BE ON A 64 BIT OS'''<br />
<pre>make menuconfig</pre><br />
Add any choices, or don't but when you exit, it will ask you to save the config, '''NEEDED'''.<br />
<br />
NOTE: If it doesn't ask you to save the configuration, the easiest method to ensure all will work fine is to deselect an small item and reselect it.<br />
<br />
After you've saved the config.<br />
<br />
== Build the bzImage ==<br />
===To Build 32 bit Kernel===<br />
<pre>make ARCH=i386 bzImage</pre><br />
===To Build 64 bit Kernel===<br />
<pre>make bzImage</pre><br />
<br />
This will take a while. Once successful, it will say bzImage created.<br />
<br />
== Copy the built kernel to your FOG Server's kernel directory. ==<br />
NOTE: In my example, the FOG Server is the same as my build system.<br />
NOTE: Recommend to make a backup of the original /var/www/{html/fog,fog}/service/ipxe/bzImage before continuing just in case.<br />
<pre>cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage</pre><br />
<br />
= Additional Patches =<br />
Edit the files within the linux decompressed folder:<br />
== drivers/net/usb/r8152.c ==<br />
Relevant to the r8152 network cards.<br />
Search VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICROSOFT add the line: It should look like:<br />
<br />
<pre>#define VENDOR_ID_MICROSOFT 0x045e</pre><br />
<br />
Search REALTEK_USB_DEVICE(VENDOR_ID_REALTEK<br />
<br />
If you don't see VENDOR_ID_MICOSOFT add the lines:<br />
<pre><br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)}<br />
{REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)}<br />
</pre><br />
<br />
== drivers/mmc/card/block.c ==<br />
Relevant to MMC block devices to remove the RPMB drive from view<br />
Search card->part[idx]<br />
<br />
Right before the line add:<br />
<pre><br />
if (!card->part[idx].size || (card->part[idx].area_type & MMC_BLK_DATA_AREA_RPMB)) continue;<br />
</pre><br />
<br />
== drivers/net/ethernet/intel/e1000e/netdev.c ==<br />
Search er32(TIMINCA)<br />
<br />
In the for loop find: rem = do_div(temp, incvalue); Remove it and add in it's place:<br />
<pre><br />
rem = incvalue != 0 ? do_div(temp,incvalue) : 0;<br />
</pre><br />
== linux/drivers/scsi/storvsc_drv.c ==<br />
Search blk_queue_virt_boundary.<br />
<br />
Delete the line and add:<br />
<pre><br />
if (PAGE_SIZE - 1 < 0) blk_queue_virt_boundary(sdevice->request_queue, 0);<br />
else blk_queue_virt_boundary(sdevice->request_queue, PAGE_SIZE - 1);<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Managing_FOG&diff=12078Managing FOG2016-07-09T00:40:57Z<p>Tom-elliott.7271: /* Overview */</p>
<hr />
<div>== Managing FOG ==<br />
<br />
=== Dashboard ===<br />
<br />
==== Overview ====<br />
<br />
[[File:Dashboard.png]]<br />
<br />
*The FOG dashboard is the first page you are presented with after login. This page just gives you an overview of what is happening on your FOG server.<br />
<br />
==== System Overview ====<br />
<br />
*The system overview box is the the top left hand box on this page. The information presented in this box is the current user, the server IP addresse or hostnames for your web server, tftp server and storage server (which can all be different). This section also gives you the system uptime or how long the system has been running without restart, the number of users logged into the Linux box, and lastly the system load.<br />
<br />
==== System Activity ====<br />
*The system activity box is in the top row, the middle box. This section shows the unicast queue, or the number of unicast deploys that are currently in progress. The queue size can change and is based on the the Storage Group(s). Each storage node has a setting ''Max Clients'' making this the maximum number of hosts that this node can image to. If there are 2 nodes with a max of 10 each then your maximum queue amount is 20. However, remember the more you increase the ''Max Clients'' the slower each particular host will be to deploy the image.<br />
*This means that after 20 hosts are receiving images (at once) the 21st will wait for one of the hosts in progress to complete before starting. The reason this was created was so that you could queue up 100 machines with different images (all unicast) and still keep the system functional. We have heard of this queue being used to re-image an entire building of computers ( ~ 1000+ ) overnight. This section updates in real time.<br />
*It will display all the queued, running, etc... tasks and updates at the same interval as the Bandwidth graph. Also, SVN installations (and later future releases) are able to edit which type of tasks get counted towards the "queue". <br />
*This edit can be performed by going to '''FOG Configuration'''[[file:Config.png]]--> '''FOG Settings'''--> '''General Settings''' --> '''FOG_USED_TASKS'''. <br />
*The text field is numeric values (so you'll need to know which task id's are which type. This text field is a CSV setup. If you type (1,2,3,4,5) it will display all tasks of Deploy, Capture, Debug, Memtest, and Testdisk as queued/active depending on their current state. The exception to this rule, is Task Type ID 8 (multicast) in which case it takes the Jobs, not each individual host task, as a queued slot.<br />
<br />
==== Disk Information ====<br />
<br />
*The disk information box is the top, right hand section of the dashboard page. This is a semi-realtime display of the storage remaining on the storage server.<br />
*There is also a drop-down box that can be changed to your storage nodes to monitor their Disk Information.<br />
*If you get an error in this box, please see [[Dashboard Error: Permission denied...]]<br />
<br />
==== 30 Day Imaging History ====<br />
<br />
*This image shows your imaging trends for the past 30 days<br />
<br />
==== Menu Bar ====<br />
<br />
[[Image:FogMenu.jpeg]]<br />
<br />
This menu appears at the top of every page on Fog's web UI. The icons are, from left to right:<br />
<br />
[[Image:Home.png]]'''Home/Dashboard''' - This is the home screen of the FOG management portal.<br />
<br />
[[Image:Users.png]]'''[[Managing_FOG#Users | User Management]]''' - Individual administrators of the FOG resources.<br />
<br />
[[Image:Hosts.png]]'''[[Managing_FOG#Hosts | Host Management]]''' - This section houses the hosts, which are the pcs to be imaged or to extract images from.<br />
<br />
[[Image:Groups.png]]'''[[Managing_FOG#Groups | Group Management]]''' - This section houses groups, which are similar PCS’ that need tasks done en-masse.<br />
<br />
[[Image:Images.png]]'''[[Managing_FOG#Images | Image Management]]''' - This section allows you to manage the image files stored on the FOG server.<br />
<br />
[[Image:Storage.png]]'''[[Managing_FOG#Storage_Management | Storage Management]]''' - This section allows you to add/remove storage nodes from the FOG system.<br />
<br />
[[Image:snapins.png]]'''[[Managing_FOG#Snap-ins | Snap-in Management]]''' - This section provides ways to automate various post-imaging tasks, not covered in this document<br />
<br />
[[Image:Printers.png]]'''[[Managing_FOG#Printers | Printer Management]]'''' - This section allows for management of printers, allowing you create printer objects that can later be assigned to hosts or groups.<br />
<br />
[[Image:Services.png]]'''Service Configuration'''' - This section allows you to control how the ''client'' service functions.<br />
<br />
[[Image:Tasks.png]]'''[[Managing_FOG#Tasks | Task Management]]''' - This section allow you to perform imaging tasks such as acquiring or deploying images.<br />
<br />
[[Image:Reports.png]]'''[[Managing_FOG#FOG_Reports | Report Management]]''' - Reports let you pull information from the FOG database either as HTML, pdf, or csv.<br />
<br />
[[Image:config.png]]'''Fog Configuration''' - The section has the rest of the settings that don't fit anywhere else like the kernel updater, client service updater, iPXE edits, MAC address list, Log viewer, '''FOG Settings'''.<br />
<br />
[[Image:Plugins.png]]'''[[Managing_FOG#Plugins | Plugins]]''' - Plugins add more functionality to FOG. Must be enabled in ''Fog Configuration''<br />
<br />
[[Image:Logoff.png]]'''Logoff''' - Click this to log off of the Fog web UI.<br />
<br />
<br />
----<br />
<br />
=== Hosts ===<br />
[[File:All_Hosts.png]]<br />
*[http://freeghost.sourceforge.net/videotutorials/hostinfo.html Video Tutorial] (old version but valid instructions)<br />
*A host in FOG is typically a computer, but it can be any network device. Hosts are used to identify a computer on the network and are used to manage the device.<br />
<br />
==== Adding a new host ====<br />
<br />
===== Method 1: Adding a new host via Full Registration =====<br />
<br />
*This is the preferred method, and maybe the easiest method for getting a host into the FOG database, but it requires you to visit the host. When at the client computer, during the boot up process when you see the PXE/iPXE boot menu select '''Perform Full Host Registration and Inventory'''. During this phase you will be prompted for information about the host like hostname, operation system, image, groups, Product Key, and other information. If you enter a valid operating system and image id, you will be asked to Image Now. If desired, you can set the task and it will deploy the image on the next network boot. <br />
*After the requested information is entered, FOG will pull a quick hardware inventory the client.<br />
*This method of registration will register the mac address(primary wired only), serial number(if available in BIOS), Make/Model, and other Hardware information with the FOG server.<br />
*For more information on these commands please see: [[FOGUserGuide#FOG_Tasks | Client Side Tasks]]<br />
<br />
===== Method 2: Adding a new host via Quick Registration =====<br />
<br />
*Quick registration is very much like the Full host registration, with the exception that it will not prompt you for any input, nor give you the option to image the computer directly from the registration screen. When the host is added to the FOG server, it will be named with the hosts primary mac address. This method is great for adding a lab of 30 computers to FOG quickly and easily.<br />
*This feature is disabled by default, to enable this feature:<br />
#Go to '''FOG Configuration'''[[image:config.png]]<br />
#Select '''FOG Settings'''<br />
#Find section '''FOG Quick Registration'''<br />
#Tick ON '''FOG_QUICKREG_AUTOPOP''' to &#10004;<br />
#Set '''FOG_QUICKREG_IMG_ID''' to the image ID you would like to use for all newly created hosts.<br />
#'''FOG_QUICKREG_OS_ID''' will be auto populated when "Save Changes" is selected. (OS is now associated within the image so no need to select an OS)<br />
#Change '''FOG_QUICKREG_SYS_NAME''' to what you would like to name you new machines, where * will be replaced by a number. If you would like to zero pad numbers you can use '''LAB300-**''' which would result with '''LAB300-03''' or '''LAB300-09'''.<br />
#Set '''FOG_QUICKREG_SYS_NUMBER''' to the first number you would like to use.<br />
*After each registration the computer will automatically image and the '''FOG_QUICKREG_SYS_NUMBER''' will incremented by 1.<br />
<br />
===== Method 3: Manually Adding =====<br />
<br />
*[http://freeghost.sourceforge.net/videotutorials/addimghost.html Video Tutorial]<br />
*Adding a new host can be done in the hosts section of FOG.[[Image:Hosts.png]] Then by clicking on the "Add New Host" button on the left hand menu. At least a hostname and a MAC address must be entered in order to add the host to the FOG database. <br />
<br />
*A host consists of the <span style="color:RED">'''required*'''</span> fields: <br />
<br />
#'''Hostname*''' - A string used for the Windows Hostname of client, this must be less than 15 characters long. <br />
#'''MAC address*''' - This field is used in for for a unique identifier for the host. The string must be separated by : (colon), in the format of 00:11:22:33:44:55. <br />
<br />
*Hosts can also include, but are not required:<br />
<br />
#'''IP address''' - Just your typical IP address, in the typical formation of X.X.X.X or 192.168.1.1.<br />
#'''Description''' - Information for your own reference.<br />
#'''Image Association''' - This field is a drop down box that will allow you select an image object created in the '''Images''' section. <br />
#'''Operating System''' - Drop down box that allow you to select the primary type of operating system running on this host.<br />
#'''Kernel''' - This is only used if you want to overwrite the default kernel used for FOG. Needs to be specified as fog/kernel/mybzImage<br />
#'''Kernel Arguments''' - This allow you to add additional kernel arguments for booting the host (ie: vga=6, or irqpoll). <br />
#'''Primary Disk''' - This option allows you to force a device to use during imaging if fog fails to detect the correct device node.<br />
*This page also allows for configuration of Active Directory integration, but this topic will be covered later. When all settings are added, click on the "Add" button.<br />
<br />
===== Method 4: Importing Host Information =====<br />
<br />
*When getting started with FOG, you need to enter the host information for the devices on your network. We understand this can be a long difficult process, so in order to make this process easier we created a page that allows you to import most of the host information from a CSV file. <br />
*The CSV file that is imported to FOG must be in the following format, and the file should not have a header row. <br />
<pre>MAC Address,Host name,IP Address,Description,OSID,ImageID</pre><br />
*The '''MAC Address''' (<span style="color:RED">'''required*'''</span>) is the NIC's MAC address seperated by ''':''' (colon).<br />
*The '''Host name''' (<span style="color:RED">'''required*'''</span>) is the computer's Host name (must be less than 15 characters, should not include underscores, according to [http://tools.ietf.org/html/rfc952 | Network Working Group ]).<br />
*The '''IP Address''' (<span style="color:Orange">'''Can be left as blank'''</span>)is the computer's IP address (format x.x.x.x). <span style="background-color:Yellow;">''This field is '''NOT''' currently used by FOG''</span><br />
*The ''''Description''' (<span style="color:Orange">'''Can be left as blank'''</span>)is any text description you would like associated with the computer.<br />
*The '''OSID''' (<span style="color:RED">'''required*'''</span>)is the number representing the operating system. It can be found in the table "supportedOS" in the field osID.<br />
*The '''ImageID'''(<span style="color:RED">'''required*'''</span>) is the number representing the images file linked to this image. The image definition must already exist and this number can be found in the table "images" in the field imageID.<br />
*<span style="background-color:Red; color:white;">The file must be saved as a CSV '''without''' a header row.</span><br />
*Sample:<br />
<pre><br />
00:00:02:AF:00:E0:01:0F,adminoff1,10.0.1.150,Main admin office computer,5,14<br />
00:00:02:AF:00:E0:01:04,adminoff2,,admin office 2 computer,5,13<br />
00:00:02:AF:00:E0:01:02,adminoff3,,,5,12<br />
</pre><br />
<br />
====== Importing the File ======<br />
#After the file is prepared and saved, you will need to log into the FOG Management Portal.<br />
#Then click on the Hosts icon [[Image:Hosts.png]].<br />
#On the left-hand menu, click on '''Import Hosts'''.<br />
#Browse for your file, then click "'''Upload CSV'''".<br />
<br />
==== Managing Hosts ====<br />
<br />
===== General =====<br />
<br />
*Once hosts have been added to the FOG database you can modify or delete them. Finding a host which you wish to edit can be done in two ways, the first is by listing all the hosts that exist. This is done by clicking on the "List All Hosts" button. The second way to locate a host is to use the search function. To search for hosts click on the "New Search" button, if you would like to search for all hosts you can enter a "*" or "%". The search function will search in the host's name, description, IP and MAC address. <br />
*Once a host is located, it can be edited by clicking on the edit button or on the Host Name itself. Clicking on the edit button will display all the properties that were shown during host creation with the addition of snapin, printers, active directory, service settings, hardware, virus history, and login information. <br />
*The entire host object can be removed from the FOG system by clicking on the delete option at the bottom of the Host Menu.<br />
<br />
===== Multiple MAC Address Support =====<br />
*When FOG first registers your HOST computer it uses the first connected Ethernet cable and defaults it to the Primary MAC Address. Once the FOG Client is installed and reporting data back to the FOG server it may register other additional MAC addresses, such as wireless and other wired connections. Also, an additional MAC can also be added directly under the Host definition.<br />
*These new MAC Addresses will need to be approved before FOG will take advantage of them.<br />
*#'''Host Management''' [[File:Hosts.png]]--> '''[Selected Host]''' -->''Additional MAC''<br />
*#'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' -->''Approve Pending Addresses''<br />
*'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' At this location you can also ''"Update Current Listings"'' giving updated information on the MAC Addresses and their manufactures, listing it under the Host.<br />
<br />
===== Host Status =====<br />
<br />
*Host Status displays an indicator icon next to the host within the FOG UI showing the status of the machine. This function executes a ping based on the host's name. So in order for this to work you must have an internal DNS server that is tied in with your DHCP server, so that when a DHCP address is given out, the DNS server is notified with the new IP. If that is setup correctly, you must make sure your FOG server is able to ping a host from the command line using:<br />
ping somehostname<br />
*If the server isn't able to ping the client, then the status of the host in the UI with always show as unreachable. If you can ping the client using the FQDN, like<br />
#Replace forproject.org with your domain suffix<br />
ping somehostname.fogproject.org <br />
*Then you will need to adjust the DNS '''Search domains:''' setting on your sever. After making this change you will need to restart the apache server for it to take affect.<br />
*If after this, you still can't ping your clients, the problem may be due to a firewall issue with the clients. In this case, client specific configuration changes might be needed.<br />
*With an increase in Hosts(250+) this "ping" will delay the loading of the List ''All Hosts'' page. Disabling this feature will help in loading this page.<br />
*# '''Fog Configuration''' [[File:Config.png]] --> '''Fog Settings''' --> '''General Settings''' --> Untick ''FOG_HOST_LOOKUP''<br />
<br />
===== Creating Host Groups =====<br />
<br />
*FOG allows you to create groups of hosts which then allows you to take action on a whole grouping of hosts. Hosts can be created either on the "List All Hosts" section or by doing a search for hosts. To create a group select the computer you would like to be member of the group by placing a check in the box next to the hostname, or by clicking the check all button in the title row. After the hosts are selected scroll to the bottom of the screen and then enter a name in the create to group box or select a group to add the hosts to. Then click on the "Process Group Changes" button.<br />
<br />
<br />
----<br />
<br />
=== Groups ===<br />
*Groups in FOG are used to organize your hosts into real world logical clusters. This is intended to ease management of the computers. A single host can be a member of infinitely many groups, so if a computer happens to be a member of the group called "Third Floor", it could also be a member of "Math Department", or "Dell PCs." Groups make using FOG possible for organizations with a very large number of PC's.<br />
<br />
==== Creating Groups ====<br />
*Groups are created in two sections:<br />
*#'''Group Management'''[[file:groups.png]] --> '''Create New Group'''<br />
*#Hosts section of FOG based on searches, for information on how to create groups, please see [[Managing_FOG#Creating_Host_Groups | Creating Host Groups.]]<br />
<br />
==== Managing Groups ====<br />
<br />
*After a group has been created, it can be managed from the groups section of FOG. Locating groups is very similar to locating hosts, you can either list all groups or you can search for groups. When searching for groups your search criteria is matched against the group name or the group description. Once a group is located it can be modified by clicking on the "Edit" button on the right hand side of the table or the Title of the group itself.<br />
<br />
*Under the section "Modify Group [Groupname]" there are options to change the group name, group description, group product key, or to delete the group. If you wish to update the group name or the group description make your change then click on the "Update" button within that section. If you would like to remove the group then simply click on the "Delete" button within this section.<br />
<br />
*As a reminder, when saving or updating settings for hosts Fog uses the last to save option. If you set all the hosts in this group to have ''Image A'' and then change ''Host A'' in that group to be ''Image B''. The group settings will not override the settings for ''Host A'', unless you go back to the group and set all hosts back to ''Image A''.<br />
<br />
===== Group Basic Tasks =====<br />
<br />
*This section will allow you to start a task on this group of hosts. From this section you can start any task to all hosts within the group. Multi-Cast is also available from here. Please review [[FOGUserGuide#Fundamental_Concepts | Fundamental Concepts]] to determine the required deploy task.<br />
<br />
===== Group Membership Setup =====<br />
<br />
*This page allows you to view/add/delete membership of the group. This section will list all of the members of the group and give you the option to remove members from the group.<br />
<br />
===== Group Image Associations =====<br />
<br />
*The groups page also allows you to update the image association for all the members of the group. This can be done in the "Image Association for [groupname]" section. Select the image association from the drop-down box and select "Update Images" and then all your host objects for that group will be modified.<br />
<br />
===== Group Snapins =====<br />
<br />
*You can add or remove snapins to all hosts in a group, but because the nature of groups, it is not possible to see what snapins are currently associated with a group. This is because the snapins are not directly associated with the group, the are associated with the host and it is possible for all members of the groups to have different snapins linked with each host. What fog does allow you to do is batch add a snapin to all the hosts within a group. At the same time you can batch remove a snapin from all the hosts within a group. This functions can be done via the '''Add Snapins''' and '''Remove Snapins''' button in the Group Menu.<br />
<br />
===== Group Service Settings =====<br />
<br />
*The '''Service Settings''' page allows you to enable or disable certain service modules on all hosts in the group, as well as change some service settings for group such as screen resolution, and auto log off settings.<br />
<br />
===== Group Active Directory Setup =====<br />
<br />
*Active Directory integration settings can also be distributed to all members of a group via this page. The section "Modify AD information for [groupname]" allows you to do so. This section provides the same options as the host screen but allows you to mass update all of your hosts.<br />
<br />
===== Group Printers =====<br />
<br />
*The '''Printers''' page allows you to add or remove printer associations to all hosts within the group. This page also allows you to set the management level all hosts within the group.<br />
<br />
===== Group Membership Information =====<br />
<br />
*The most important thing to remember about groups in FOG is that they do not contain their own properties. When you make changes to a group, you are really make changes to every host object within the group. For example, if you change the OS association for a group, then go back to the one of the host objects that is a member of that group, it will have the new OS association on that object.<br />
<br />
<br />
----<br />
<br />
=== Images ===<br />
<br />
*Image objects in FOG are the representation of the physical files that contain the disk or partition images that are saved on the FOG server.<br />
<br />
==== Creating Images Objects ====<br />
<br />
*Image objects in FOG are created in the Images section of the FOG management portal. To create a new image click on the "New Image" button on the left hand menu. An image object requires a name and a image file path. <br />
<br />
*When creating images you have a few choices in how you want that image to 'act'. The possible partition types include:<br />
Single Partition<br />
Multiple Partition - Single Disk<br />
Multiple Partition - All Disks<br />
Raw Image<br />
<br />
====='''FOG 1.2.0'''=====<br />
<br />
*'''Single Partition''' - Single Partition images support only single NTFS partitions. These partitions are resizable, meaning that an image from a 200GB hard disk can be put on a 10GB hard disk as long as the data is less than 10GB. This image type is destructive, which means that your partitions will be modified, and if the task doesn't finish without error it is possible that your computer may not be bootable.<br />
<br />
*'''Multiple Partition - Single Disk''' - Single Disk will back up all the supported partitions on the first disk drive detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity. It is possible to backup NTFS drives with vendor specific 'restore' partitions with this type of image. <br />
<br />
It is possible to backup Linux systems with this type of image given the following criteria:<br />
1.) There is a Grub boot loader present.<br />
2.) LVM is not used.<br />
3.) The partitions include '''ext2''', '''ext3''', '''reiserfs''', or '''swap'''.<br />
4.) The swap partition should be moved out of the extended partition (for ubuntu 9.04)<br />
<br />
*'''Multiple Partition - All Disks''' - All Disks will back up all the supported partitions on all disk drives detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity.<br />
<br />
*'''Raw Image''' - Raw Image will do a raw sector-by-sector copy of your hard disk, which means that if you have a 80GB hard drive, dd will process 80GB of data, and you will end up with a VERY LARGE image that is VERY SLOW to create and restore.<br />
<br />
*All of these images can be deployed using multi-cast, unicast, or torrent-cast to clients.<br />
<br />
====='''FOG 1.3.0 (still in development as of feb 11, 2016)'''=====<br />
<br />
Image types:<br />
<br />
* '''Single Disk - Resizable'''<br />
<br />
This should always be your first choice. It takes a copy of every partition on the disk, and resizes any partition that has excessive free space to a smaller size. Each resizable partition will go through a "Resizing filesystem" process for each partition that is to be resized. This process can take some time depending on how severe disk fragmentation is. It's recommended to run "Disk defragmenter" (win 7 and lower) or "Optimize Drives" (Win8+) prior to taking a resizable image. The partitions that are shrank will be shrunk down to only 2GB of free space on their partition. This allows an image taken from a 6TB drive with only 20GB of used space to be deployable to a HDD with a total capacity of 40GB. When the partitions are laid onto the destination drive, all resized partitions are intelligently expanded to utilize the entire drive.<br />
<br />
* '''Multiple Partition Image - Single Disk (Not Resizable)'''<br />
<br />
This is what you should pick when Single Disk - Resizable fails.<br />
<br />
* '''Multiple Partition Image - All Disks (Not Resizable)'''<br />
<br />
This is what you should pick when you want all partitions from multiple disks to be captured. If you only wanted a particular partition captured or drive captured in a multi-drive system, you can define the disk or partition you want within a Single Disk - Resizable or Multiple Partition Image - Single Disk (Not Resizable) type image. This is done through the "golden" host's "General" area, in the "Host Primary Disk" field.<br />
<br />
* '''Raw Image (Sector By Sector, DD, Slow)'''<br />
<br />
This should always be the last resort. This takes an absolute exact copy of an entire disk and does not compress the data. If you take an image from a 6TB disk, the resultant image will be 6TB in size. This image type also takes a '''significant''' amount of time to capture and deploy.<br />
<br />
==== Modifying Image Objects ====<br />
<br />
*Image object can be located either by a search or by listing all image objects.<br />
<br />
==== Adding Existing Image Objects ====<br />
<br />
*To restore an image to the FOG database:<br />
*# Create a new Image definition through the management browser<br />
*# Specify image name (SampleXPImage)<br />
*# Specify storage group (default)<br />
*# Specify image file path (SampleXPImage)<br />
*# Specify image type<br />
*# Log into the box hosting FOG, and move/rename your image to match browser input<br />
*# Create hierarchy if necessary. FOG, by default, puts images in /images/, so for the above example, you would need to create a folder structure like so: /images/SampleXPImage<br />
*# Drop your image file into the folder (be sure it's named the same as image name above)<br />
<br />
----<br />
<br />
=== Storage Management ===<br />
<br />
*The Storage Manager introduces the concept of '''Storage Groups.''' Basically, a storage group is a group of NFS servers that share images and share the load of computers being imaged. Any member of a storage group is referred to as a '''Storage Node.''' You may have as many storage groups as you wish and as many storage nodes within those groups as you wish. In each storage group, there is one storage node which is designated as the '''Master''' of that group. Basically what this means it that is the node where all image captures go, this node handle multicasting tasks for the group, and is the image replicator the for the group. This means that whatever images are stored on this node are what gets distributed to the entire group. <br />
<br />
*What this new system of storage management gives us is a distributed model for FOG which allows for more unicast transfers at a single time. We also gain data redundancy. We also take stress off of the main FOG server.<br />
<br />
*Below is a brief overview of Storage Groups<br />
<br />
[[Image:Nfsgroup.jpg]]<br />
<br />
*This image shows a single Storage Group and the flow of data within the group. The queue size of the system is the sum of the queue size of all the storage nodes within the system. So if you have 4 nodes each with a queue size of 10, then the queue size of the system is 40, which means 40 clients can be imaged (unicast) at one time. <br />
<br />
[[Image:StorageGroups.jpg]]<br />
<br />
*This image shows that it is possible to have multiple storage groups on your network, which are isolated from each other. This image also demonstrates, that captures always go to the master node and multicast session always send data from the master node. Images are pushed out from the master node of the group to all other members of the group.<br />
<br />
*'''Key Benefits'''<br />
*#Increased throughput<br />
*#Redundant Storage<br />
*#Scalability<br />
<br />
*Also see [[Knowledge_Base#Storage_Nodes | Storage Nodes]] for tutorials.<br />
<br />
==== Adding a Storage Node ====<br />
<br />
*Definition: Storage Nodes provide extra [http://www.fogproject.org/wiki/index.php?title=InstallationModes NFS/FTP storage space] which increases available throughput and redundancy within a network. They do not provide PXE, TFTP, or DHCP services at secondary sites. To enable additional PXE and TFTP services at secondary sites see this section: [[#Including_multiple_PXE_.2F_TFTP_servers|#Including multiple PXE / TFTP servers]]<br />
<br />
*Video Tutorial: http://www.youtube.com/watch?v=X72WthDGwsw&fmt=18 (old video but still valid infomation)<br />
<br />
*To add an additional storage node to the network, the computer should be prepared in the same way the main FOG server would be prepared (disable firewall, SELinux, etc). You can also safely mix operating systems for the nodes of you storage group, some nodes can be running fedora, and some can be running Ubuntu. It is important to update your storage nodes when you upgrade to a new version of FOG. Installation of a storage node is done with the same installer for a normal FOG server. Installation can be started by running the installer script, the steps are detailed below.<br />
<br />
*Surprisingly enough some users have actually gotten a Windows Storage node to work properly. See [[Windows_Storage_Node]] for more information on this.<br />
===== Installing the Node =====<br />
*To Install a node:<br />
*#Run the installation script, ./installfog.sh<br />
*#Select your operating system.<br />
*#When prompted for Server Installation Mode, select '''S''', for storage node.<br />
*#Enter the IP address of the storage node.<br />
*#Confirm you interface<br />
*#Then you will need to enter the IP address or host name of the node running the FOG database<br />
*#Then you will be prompted for a username (typically fogstorage)<br />
*#and a password that is located on the FOG server, that will allow the storage node to access the main FOG server's database. This information is located in the FOG management portal for convenience (on the main for server). It can be accessed via '''Other Information''' -> '''FOG settings''' -> section '''FOG Storage Nodes'''.<br />
*#You will then be prompted to confirm your installation settings, if they are correct press '''Y''' end hit '''Enter'''.<br />
*#When installation completes, the install will produce a username and password that will be needed to add the storage node to the FOG management portal. Username is "fog", password is in /opt/fog/.fogsettings<br />
<br />
===== Adding the Node to the Management Portal =====<br />
*To Add a Node<br />
*#Log into the FOG Management Portal<br />
*#Navigate to the '''Storage Management''' section.<br />
*#Click on '''Add Storage Nodes'''.<br />
*#For the '''Storage Node Name''', enter any alpha numeric string to represent the storage node. <br />
*#Enter any description you wish<br />
*#Enter the IP address of the storage node you are adding. This must be the IP address of the node, DO NOT use a hostname here or the node will not function correctly. <br />
*#Enter the maximum number of unicast clients you would like this node to handle at one time. The value that we recommend is 10. <br />
*#Is Master Node is a very dangerous settings, but for right now leave it unchecked, for more details please see: [[#Master Node Status]].<br />
*#Next, select the storage group you would like this member to be a part of, in our example we will pick '''Default'''<br />
*#Next, specify the image location on the storage node, typically '''/images/''', your image location should always end with a '''/'''.<br />
*#Next, you will want to check the box, to enable the node.<br />
*#The last two fields take the username and password that are generated during the installation of the storage node. username is "fog", password is in /opt/fog/.fogsettings<br />
*#Then click '''Add''' to have the node join the storage group.<br />
<br />
==== Monitoring The Master Node ====<br />
<br />
*On all storage nodes there is a new service (as of version 0.24) called FOGImageReplicator which is a very basic script which, if the node is the master, copies all of its images to all other nodes in the storage group. The coping is done every ten minutes by default, which means your images are NOT instantly duplicated to all nodes. <br />
<br />
*If you would like to view the status of the image replication, you can do so on the storage node by switching to tty3, by typing ctl + alt + f3. Output is also logged to a file in the '''/opt/fog/log''' directory.<br />
<br />
*FOGImageReplicator logs are also located in [[File:Config.png]] '''Fog Configuration''' --> '''Log Viewer''' --> '''FILE: [Select Image Replicator]'''<br />
<br />
==== Master Node Status ====<br />
<br />
*The '''Master Node''' (could be the server or a particular node) in a storage group is the node that distributes images files to all other nodes in the storage group.<br />
<br />
*If you have all your images distributed across 3 nodes in a storage group, '''if you add a new storage node that has no images stored on it, making that node master will cause it to take over and push it's image store of nothing to all other nodes, wiping out all of your images'''. So it is important to be very careful and backup your images when you change a node's master status.<br />
<br />
*Notes - You '''can''' have many storage nodes in a storage group. You '''can''' have one master storage node in a storage group. You '''can not''' have more than one master storage node in a storage group. You '''must have''' one master storage node for replication to take place to other nodes in the group. '''If''' a master storage node is set, all captures '''first''' go to the master storage node of the storage group the image is assigned to; and are '''then''' replicated to other storage nodes.<br />
<br />
==== Including multiple PXE / TFTP servers ====<br />
<br />
*A traditional Master Storage Node, [[#Adding_a_Storage_Node|as described above]] only provides File Storage redundancy. While this can help increase multicast throughput on a single network, all the machines under FOG management must be within the same subnet/VLAN so that DHCP broadcast requests can be directed to the Main server. (see note below)<br />
<br />
*<pre>'''Note:''' depending on the network, it may be possible to configure [http://en.wikipedia.org/wiki/UDP_Helper_Address iphelper] to forward packets to the Main FOG server</pre><br />
<br />
*The following instructions are intended to help configure additional Storage Nodes to operate independently on separate networks, while still syncing with and taking commands from a single Main FOG server.<br />
<br />
*Click here for instructions on setting up [[Multiple_TFTP_servers|multiple PXE / TFTP servers]]<br />
<br />
=== Users ===<br />
<br />
==== Overview ====<br />
<br />
*FOG has only two levels of users, '''regular''' users and '''mobile''' users. Regular users have access to the mobile portal and the full management portal. Mobile users have access to only the mobile management portal and Quick Image functions.<br />
<br />
==== Creating Accounts ====<br />
<br />
*All accounts are created under the "Users" section of the FOG portal. To create a new account click on the "New User" button on the left hand side of the page. All accounts must have a unique username, and a password. After filling in the required information click on the "Create User" button.<br />
<br />
==== Modifying Users ====<br />
<br />
*FOG accounts can be modified from within the users section. First you must locate the account you wish to modify by clicking on the "List all Users" button on the left hand side of the page. When a user is located, click on the edit button on the right hand side of the table.<br />
<br />
=== Tasks ===<br />
<br />
==== Overview ====<br />
<br />
*Tasks are all the actions that you can take on a computer, and in FOG there a numerous tasks that can be done including:<br />
<br />
*Deploy (Unicast)<br />
*Capture (Unicast) <br />
*Deploy - Multicast <br />
*Debug<br />
*Memory Test<br />
*Test Disk<br />
*Disk Surface Test<br />
*Recover (File Recovery)<br />
*Hardware Inventory<br />
*Password Reset<br />
*Deploy All Snapins<br />
*Deploy Single Snapin<br />
*Wake-Up<br />
*Deploy - Debug (Unicast)<br />
*Capture - Debug (Unicast)<br />
*Deploy - Without Snapins (Unicast)<br />
*Fast Wipe<br />
*Normal Wipe<br />
*Full Wipe<br />
*Virus Scan<br />
*Virus Scan - Quarantine<br />
*Donate<br />
*Torrent-Cast<br />
<br />
<br />
In the tasks section of FOG you can perform tasks on single hosts or groups of hosts. This section also allows you to monitor selective tasks, and stop/cancel tasks.<br />
<br />
==== General Tasks ====<br />
<br />
The general/common Tasks in FOG include unicast image capture, and unicast image send, as well as a multicast image send. In FOG, sending an image to the server is considered an image capture, and deploying an image to the client is called a send. Both of these tasks can be started directly from the search, list all hosts, and list all groups pages. <br />
<br />
To perform a simple image capture, click on the upward facing arrow next to the host. Captures are only possible on a host, not a group. Capturing an image will also overwrite any image file that may already exist for that host without any notification or confirmation.<br />
<br />
Please note that capturing images of Windows Vista and Windows 7 requires special command to be run on the clients prior to image capture. Please see [[What do I have to do to an image before capturing?]] for more details.<br />
<br />
For a video demonstration of an image capture, please see: http://www.youtube.com/watch?v=jPPZr0abVfg&fmt=18<br />
<br />
To perform a simple image send, click on the downward facing arrow next to the host. An image send can be done on a host or a group. When sending an image to multiple computers FOG works in queue mode, which means that it will only send to 10 (by default) computers at one time. This is done to keep the server from being overworked. As soon as the a machine finishes, another from the queue joins.<br />
<br />
To perform a multicast image send you must search for a group of hosts on the "Task Management" page. Multicast tasks can only be performed on a group of hosts. Multicast tasks will send to all the computers in the group at once, and the task will not start sending until all members of the group have connected with the server. After starting a multicast task, status can be view by clicking on [ctl]+[alt]+f2. A log is also kept for multicast transfers which is stored at /opt/fog/log.<br />
<br />
==== Advanced Tasks ====<br />
<br />
The advanced Tasks in FOG include everything that is not a simple capture, simple deploy or mutlicast deploy. <br />
<br />
=====Debug=====<br />
<br />
Debug mode boots the linux image to a bash prompt and allows the user to issue all commands by hand. <br />
<br />
=====Capture - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to capture the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to send the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Without Snapins)=====<br />
<br />
This task does a normal send task with the exception that if any snapins are associated with the host, they are not deployed to the host. <br />
<br />
=====Deploy All Snapins=====<br />
<br />
This task will send all the snapins associated with a host to the host without imaging it.<br />
<br />
=====Deploy Single Snapin=====<br />
<br />
This task will send a single snapin that is associated with the host to the host without imaging it. (Note: The snapin must be associated with the host already)<br />
<br />
=====Memory Test=====<br />
<br />
Boots to Memtest86, a memory testing tool. This a task will not exit with out user intervention at the client side. The task must also be manually stopped via the management front end.<br />
<br />
=====Wake Up=====<br />
<br />
Wakes up host or group of hosts using Wake-on-Lan. <br />
<br />
=====Fast Wipe=====<br />
<br />
This task does a quick and dirty wipe of the drive. This task writes zeros to the first ~40MB of the disk. This task should NOT be used if you don't want your data to be recoverable. <br />
<br />
=====Normal Wipe=====<br />
<br />
This tasks writes random data to the entire surface area of the disk. <br />
<br />
=====Full Wipe=====<br />
<br />
This tasks writes random data, multiple times to the entire surface of the disk. <br />
<br />
=====Disk Surface Test=====<br />
<br />
This task will look for bad blocks on the hard disk and report them back to the client console. <br />
<br />
=====File Recovery=====<br />
<br />
This task will load an application that can be used to recover lost files from the hard disk. <br />
<br />
=====Virus Scan=====<br />
<br />
This task will update and load ClamAV and scan the partition for viruses. It will either scan and report or scan and quarantine files, it will also report back to the management portal with the results of the scan.<br />
<br />
=====Hardware Inventory=====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/InventoryUpdate.swf.html Video Tutorial]<br />
<br />
The hardware inventory task will execute the same task as the fog.reginput client side task. Since the host is already registered, all it will do is update the computers inventory and restart. It is visioned that this task could be run on a regular interval on a group of all computers in your network, or some sub group of computers in your network. Then on the next reboot of those computers an inventory would be performed.<br />
<br />
==== Scheduling ==== <br />
<br />
As of version 0.27 of FOG, select tasks can be scheduled using a static date/time combination or using a cron style repetitive task scheduling. Task scheduling can be performed on either single hosts, or on groups of computers. One thing to note about task scheduling that isn't intuitive is that it '''requires an image to be associated with the host, even for non-image based tasks!''' The reason for this is because tasks are only run on the master storage node associated with that host, and the only way to tie a storage node to a host is via an image. We did this to prevent multiple storage nodes to try running the same task for a specific host. <br />
<br />
===== Single Execution Scheduling =====<br />
<br />
Single task execution will run a task at a single date and time, then the task will be discarded. To scheduled a single execution task, you would go to the tasks section of fog, then select the host or group you would like to schedule the task, then select the task you would like to schedule. You will then be presented with the screen show below.<br />
<br />
[[Image:Sched.png]]<br />
<br />
To schedule a single execution task, click on white text box below "Schedule Single Task Execution?" and a pop up calendar will load and allow you to select your date and time for the task. Click on the date to close the calendar, then start you task. <br />
<br />
===== Cron Style Task Scheduling =====<br />
<br />
Cron style task execution allows you to do complex repetitive task scheduling. After a cron task executes, it is not removed, as single executions tasks are. Cron style tasks, as the name suggests are similar to the Linux cron task scheduler format. Cron style tasks are created as single execution tasks are, except when presented with scheduling options, select the option "Schedule Cron Style Task Execution". Below that check box are a series of text boxes including:<br />
<br />
min -> Minute [00-59]<br />
hour -> Hour [00-23]<br />
dom -> Day of Month [01-31]<br />
month -> Month [01-12]<br />
dow -> Day of Week [01-07] (Sunday ==> 0, Saturday ==> 6)<br />
<br />
To give an example of how this works, if you wanted a capture task to run at '''10:00pm everyday''' you would enter the following:<br />
<br />
0 22 * * *<br />
<br />
This basically says run the task a '''0''' minutes into the hour, on the '''22nd hour (10:00pm)''', on '''every day of the month''', on '''every month of the year''', on '''every day of the week'''.<br />
<br />
To take this example further, lets say you only wanted to capture the image '''every other day''', we could do this by adding:<br />
<br />
0 22 */2 * *<br />
<br />
The '''*/2''' now tells the scheduler to only run on '''even days of the month'''. <br />
<br />
We could even ask the scheduler to only do a backup on '''even weekdays''' by adding:<br />
<br />
0 22 */2 * 1-5<br />
<br />
The 1-5 we just added says only run on days 1 through 5, which relate to Monday - Friday.<br />
<br />
Now we will ask the scheduler to only backup in the month of February.<br />
<br />
0 22 */2 2 1-5<br />
<br />
Another basic example could be if you wanted to run an inventory update on the first of every month you could use:<br />
<br />
30 1 1 * *<br />
<br />
This task would then run at '''1:30''' on the '''1st of every month'''.<br />
<br />
<br />
The FOG scheduler doesn't support 100% of the operations that cron supports, below are the operations that are supported:<br />
<br />
4 - Listing a static number<br />
4,5,6,7 - Listing a group of numbers<br />
4-7 - ranges of numbers <br />
4-7,10 - ranges and lists<br />
*/5 - * divided by a number<br />
* - Wildcard<br />
<br />
For more information on cron please see http://en.wikipedia.org/wiki/Cron<br />
<br />
=== Printers ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher.<br />
<br />
==== Known Issues ====<br />
<br />
Setting of the default printer will only work if the fog tray icon is running.<br />
<br />
==== Overview ====<br />
<br />
The printers section of FOG allows you to create printer definitions that you can later associate with hosts. The FOG service looks at these associations and during service it will attempt to install any printers listed. This service has three settings which define how the printers are managed, printer management can be set to:<br />
<br />
<ul><br />
<li>No Printer Management</li><br />
<li>Add Only</li><br />
<li>Add and Remove</li><br />
</ul><br />
<br />
All hosts default to '''No Printer Management''' which means that the FOG service does nothing to the hosts printers. '''Add Only''' does as the name implies, and will only add printers to the host machine, it will not remove any existing printers that may be installed. '''Add and Remove''' will take full control of the hosts printing system and only allow for the printers that are specified by the FOG management console to exist on the host. <br />
<br />
==== Adding New Printers ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf Video Tutorial]<br />
<br />
In order for the printer to be added to the host computer, the printer drivers must be stored in a public area, or included on the host computer. This public area can be a Novell Network share where public has read-only access, a Windows share that is public read-only to everyone, or a Samba share (possibly residing on the FOG server) that is public read-only to everyone. This share must be accessible via a UNC path as the service may attempt to install the printers before drive mapping occurs. In this share the printer drives and .inf file must exist. FOG supports install IP based (Jet-Direct) printers, public access NDS printers, Local printers, windows share based printers, (and we think, but could use a confirmation as it hasn't been tested) AD based printers. <br />
<br />
If you wish to see what printers are included with Windows XP, navigate to c:\windows\inf\ntprint.inf. Open this file with a text editor and you will be able to install all the printers listed using the ntprint.inf file. <br />
<br />
To create a new printer definition click on the Printer icon on the system menu bar. Then on the left hand menu, click on '''Add New Printer'''. The form you are presented with will require you to enter:<br />
<br />
<ul><br />
<li>'''Printer Model''' - This must match the name in the INF file.</li><br />
<li>'''Printer Alias''' - This can be anything you wish and it is what the end user will see.</li><br />
<li>'''Printer Port''' - This is something like '''LPT1:''', or '''IP_1.1.1.2'''.</li><br />
<li>'''Printer INF File''' - This is the path to the INF file for the printer driver.</li><br />
<li>'''Printer IP''' - (optional) This is ip address of an IP based printers only, this can take the form of '''1.2.3.4:9100''' or '''1.2.4.5'''. If the port doesn't exist already, it will create one named ''' IP_x.x.x.x''', where x.x.x.x is the ip address. That is what should be entered in the port field.</li><br />
</ul><br />
<br />
After all the required information is entered, click on the '''Add Printer''' button.<br />
<br />
==== Linking Printers to Hosts ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf.html Video Tutorial]<br />
<br />
Linking printers to hosts can be done from either the hosts section or the groups section. In the hosts section find the host you would like to add a printer to, click on the edit button associated with that host. In the host menu, click on the '''Printers''' button. First select how you would like the host to be managemed, either '''No Printer Management''', '''Add Only''', or '''Add and Remove'''. Then in the section below, select the printer you would like to install from the drop down list and click on the '''Update''' button.<br />
<br />
==== Creating a Samba Based Printer Store on FOG ====<br />
<br />
If you do not have a public sever where you can store your printer drivers for the FOG Printer Manager, then it is very easy to set one up on the FOG server using Samba, so all your Windows Clients will be able to connect.<br />
<br />
[[Creating a Samba Based Printer Store on FOG]]<br />
<br />
=== The FOG Client Service ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Client Service is a Windows Service that is intended to be installed on the client computers during the image creation process. The FOG service communicates with the FOG server to provide certain service to the client computers including:<br />
<br />
<br />
*Auto Log Off (0.16)<br />
*Hostname Changes<br />
*Active Directory Integration<br />
*Directory Cleaner (0.16)<br />
*Display Manager (0.16)<br />
*Green FOG (0.16)<br />
*Host registration<br />
*Task Restarting<br />
*Snapin Installation<br />
*User Tracker<br />
*Printer Manager<br />
*User Cleanup (0.16)<br />
*Client Updater<br />
*User Tracker<br />
<br />
==== Module specific configuration settings ====<br />
<br />
The FOG Client Service is very modular in nature, which means you can install portions of the services provided, and leave off others. This also means that it is very easy to create new sub services if you know a little C#. All configuration data is held in a local INI file. Which is typically stored in <br />
<br />
c:\program files\fog\etc\config.ini<br />
<br />
This file holds, in the general section:<br />
<br />
<ul><br />
<li>FOG Server IP address</li><br />
<li>FOG Service installation root</li><br />
<li>FOG Service working directory</li><br />
<li>FOG Log file path</li><br />
<li>Flag indicating if GUI messages should be displayed</li><br />
<li>The max log file size</li><br />
</ul><br />
<br />
==== Installation ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/FogServiceInstall.swf.html Video Tutorial]<br />
<br />
The FOG service should be installed on the computer to be imaged before capturing the image to the FOG Server. <br />
<br />
The FOG service is located in the '''FOG Service/bin''' directory or if the FOG server is already installed it can be downloaded from:<br />
<br />
http://[serverip]/fog/client/<br />
<br />
Double-click on the '''setup.exe''' to start the installation wizard. At the end of the wizard you will need to enter the IP address or hostname of your FOG server.<br />
<br />
[[Image:fogservice.jpg]]<br />
<br />
Then restart the computer, if you don't restart the computer you will have issues with the service GUI appearing correctly.<br />
<br />
===== Quiet Installation =====<br />
<br />
As of version 0.29 and higher, the FOG client now supports a quiet installation mode. This can help automate deployments, by allowing the command to be run without user interaction from batch files. To do this the setup.exe file must be run from the command line with the arguments '''fog-defaults=true /qb'''.<br />
<br />
So the full command would be:<br />
<br />
setup.exe fog-defaults=true /qb<br />
<br />
==== Functions and Operation ====<br />
<br />
=====Auto Log Out=====<br />
<br />
Added in Version 0.16<br />
<br />
This module of the FOG Service will log a user off of a client pc after X minutes of inactivity. This module will display a screen saver-like GUI after 3/4 of the inactive time is up. So if the time out value is 40 minutes, the GUI will be displayed at 30 minutes of inactivity. When the time is up, the client computer will reboot. This service module can be configured via the management portal via:<br />
<br />
FOG Service Configuration -> Auto Log Out<br />
<br />
To enable the module globally, place a check in the box next to '''Auto Log Out Enabled?'''. The time to auto log off can changed globally via '''Default log out time:''' The minimum recommended value for this setting is 4 minutes. <br />
<br />
The background image for the auto log off module can be modified via:<br />
<br />
Other Information -> FOG Settings<br />
<br />
The settings can be changed by modifying the value for '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE'''. This settings will accept a jpg file that is local to the client computer like: <br />
<br />
c:\images\image.jpg<br />
<br />
This setting will also accept files located on a web server such as:<br />
<br />
http://www.somedomain.com/image.jpg<br />
<br />
Provided with FOG is a simple php script that will display a random images that is located on the FOG server. To use this option set '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE''' to <br />
<br />
http://x.x.x.x/fog/public/randomimage.php<br />
<br />
Then simply put the images you would like to use in the following directory on the fog server:<br />
<br />
/var/www/html/fog/public/imagepool<br />
<br />
Images used for the auto log off module must be in jpg format, and must be 300px by 300px.<br />
<br />
=====Hostname Changer=====<br />
<br />
This module of the FOG Service is used to change the hostname of the client computer and to allow the client to (optionally) join a Active Directory Domain after imaging. This process only runs shortly after service startup, which means typically only when you start your computer. The service communicates with the FOG server over port 80 and determines the hostname that is present in the FOG database for the host. The hosts are matched to the FOG database by their MAC addresses. If the hostnames are found to be different, the client changes the computers hostname and restart the computer.<br />
<br />
The config.ini file contains configuration options for this module. <br />
<br />
netdompath=<br />
<br />
Allows you to set the path to the netdom.exe file. In some cases the file does not exist on the system. It can be downloaded from: [http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=de Microsoft Download Center]<br />
<br />
=====Host Register=====<br />
<br />
As of version 0.29, this module will only add additional mac address to a host that is already registered, and add them to the pending mac address table, where they need to be approved in the FOG UI.<br />
<br />
=====Task Reboot=====<br />
<br />
This module periodically checks in with the FOG server to see if the client has an imaging task assigned to it. If a task is found AND no one is logged into the workstation, then the client will restart and join the task.<br />
<br />
The config.ini file contains configuration options for this module. As of version 0.13 of FOG you can change:<br />
<br />
forcerestart=0<br />
<br />
to<br />
<br />
forcerestart=1<br />
<br />
This will make the computer restart if a task is found, regardless of whether a user is logged into the computer.<br />
<br />
You can change how often the service will check in with the server by changing:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins.<br />
<br />
=====Directory Cleaner=====<br />
<br />
Added in version 0.16<br />
<br />
This module will clean out (delete) the contents of a directory on user log off. This useful when you don't want any settings cached between users. This module will only delete the contents of a directory and not the root directory itself, so if you specify '''c:\trash''', the service will remove all files and folders located within c:\trash but leave the folder c:\trash.<br />
<br />
=====Display Manager=====<br />
<br />
Added in version 0.16<br />
<br />
This module is used to restore screen resolution between clients. This will restore a fixed resolution and refresh rate when a user logs into a computer.<br />
<br />
=====Green FOG=====<br />
<br />
Added in version 0.16<br />
<br />
This module will simply shutdown/restart the client computer at a fixed schedule if no user is logged in. The schedule can be defined via the management portal. <br />
<br />
=====Snapin Client=====<br />
<br />
This module periodically checks in with the FOG server to see is the client has an snapin set to be deployed to it. If a snapin is found AND no imaging task is associated with the client, then the client will download the snapin and install it in the background.<br />
<br />
The configuration file contains settings for this module including:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins. It is important to note that currently the fog client will wait 5 minutes when first connected / established before it starts checking and installing any snapins from the server.<br />
<br />
=====User Tracker=====<br />
<br />
This module attempts to track user access to the host computer by the Windows user name. It attempts to track logins and logoffs as well as well as the state of the computer at service startup. The service will even attempt to track users when they are not on the network by writing all entries to a journal file, then replying the journal the next time the client is on the network.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====User Cleanup=====<br />
<br />
This module will remove all users not white listed in management portal on log off. This module is useful when using services like dynamic local user. All entries in the management white list are treated as prefixes to usernames, which means that they will white list all users that start with whatever was entered in the management front end. For example, if you enter '''admin''' in the management white list, then users '''admin''', and '''administrator''' will NOT be removed from the computer.<br />
<br />
=====Printer Manager=====<br />
<br />
This module checks on service startup to see what printers should be installed/removed from the client PC.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====Client Updater=====<br />
<br />
This module waits (randomly) between 60 and 500 seconds after service startup to check the local fog server for client updates, and if any are found the service will download and install them. Updates will NOT take effect until after the service is restarted.<br />
<br />
There are no configuration settings for this module.<br />
<br />
==== Keeping Clients up to date ====<br />
<br />
===== Overview =====<br />
<br />
As of version 0.12 of FOG, we have included a client updater module. This module is no different from any of the other sub service modules. This service waits anywhere between 60 and 500 seconds after the FOG service starts up, and then attempts to check with the server for newer FOG service modules. If new modules are found the client will download them, and they will be active on the NEXT service startup. These modules are controlled from the FOG Management Console. <br />
<br />
Only certain modules can be updated, only those that are a sub class of AbstractFOGService. This means you should '''NEVER''' attempt to update the FOGService executable (FOGService.exe file), or the AbstractFOGService.dll file. It is recommended that you not update the ClientUpdater.dll, because if the ClientUpdater.dll file becomes corrupt or not functional, your clients will not be able to update from that point on. Below are a list of the .dll files that can be updated.<br />
<br />
<ul><br />
<li>UserTracker.dll</li><br />
<li>TaskReboot.dll</li><br />
<li>SnapinClient.dll</li><br />
<li>PrinterManager.dll</li><br />
<li>HostRegister.dll</li><br />
<li>HostnameChange.dll</li><br />
<li>GUIWatcher.dll</li><br />
<li>ClientUpdater.dll</li><br />
<li>config.ini</li><br />
</ul><br />
<br />
Care must also be taken when updating the config.ini file, if the IP address is incorrect or the syntax of the file is incorrect, it could leave the FOG service crippled on the client computers.<br />
<br />
===== Posting Updates =====<br />
<br />
To add new modules that can be pushed down to clients, first install a client with the new service or new module and confirm that it works as you would like. Log into the FOG management console, then go to the Infomation/Misc section (the little "i" icon). Click on '''Client Updater''' on the left-hand menu. Now click on the browse button to select the module (.dll) file you would like to post, then click on the capture button. After capturing the file should appear in the table above. If you are adding a new module, you will probably want to capture a new config.ini file to include new configuration settings required by that new module.<br />
<br />
==== FOG Tray ====<br />
<br />
The FOG Tray is a Windows application that runs on user login that docks in the system tray. The FOG Tray, like the FOG service, is very modular in nature. New modules can be dropped in the FOG tray directory and on next load they will be loaded. This tray icon has the ability to communicate with the FOG service, this allows FOG more interactivity with the end-user. <br />
<br />
What happens is that when the FOG service's printer manager module gets a request to set a default printer, the service attempts to contact the FOG Tray. If communication is established, then the service will ask the tray to set the default printer. On the other hand the end user can right click on the "F" icon in the system tray, then select printers, then update my printers. What this will do is attempt to send a request from the FOG Tray to the FOG Service and have the service check for printer updates (new printers or printers to be removed). If one is found the service will install any new printers assigned in the FOG Management portal.<br />
<br />
This application is in its very early stages and currently doesn't have a lot of functionality. It is currently only used to allow end users to update their printers and to allow the setting of default printers (from the FOG service). Our vision for the FOG Tray is to add modules that would allow users to install printers that are published as public (via the management portal) without the printer being directly assigned to their host. We would also like to do the same thing for snapins where some of your snapins could be defined as public where anyone could install them on their computer.<br />
<br />
==== Troubleshooting ====<br />
<br />
If you have problems with the FOG Service, please refer to the log file that is located at:<br />
<br />
c:\fog.log<br />
<br />
If the PXE boot does not work<br />
<br />
If booting from the fog server through pxe comes up with an error file not found, edit /etc/default/tftpd-hpa<br />
<br />
Change TFTP_DIRECTORY to<br />
<br />
TFTP_DIRECTORY="/tftpboot"<br />
Then<br />
<br />
/etc/init.d/tftpd-hpa restart<br />
<br />
=== Snap-ins ===<br />
<br />
==== Overview ====<br />
<br />
*The FOG Service has the ability to install snapins to the clients. Snapins can be anything from whole applications like Microsoft Office to registry keys or desktop icons. Snapins can even be used to uninstall applications or remove unwanted files. For the end use's point of view, they will not even noticed that a snapin is being installed until it is complete. At this point a message will notify them that a new application has been installed on their computer. Snapins can be in MSI (0.17) or EXE formats, and can be created with any snapin creation tool like InstallRite or already packaged MSI files (0.17). You can also push commands to the computer that include .vbs scripts / .cmd (commands) and .bat (batch scripts).<br />
<br />
*Snapin return codes are specified by the program that's being installed.<br />
<br />
<br />
==== Creating a Snapin / Overview ====<br />
<br />
FOG doesn't provide a tool to create snapins, but instead allows you to push files and execute them on the remote computers. It is highly recommended that you push the actual installer to the computer instead of using a program such as InstallRite. <br />
<br />
If you have never silently installed software to a computer, or created an answer file for a program please look at the website Appdeploy [http://www.appdeploy.com/articles/ Link] This website has an trove of information on how to push software to a computer remotely.<br />
<br />
===== Creating a Snapin for larger applications with SFX Maker =====<br />
<br />
Some larger applications such as Microsoft Office and Adobe Products (Acrobat / Creative Suite) require multiple files to install properly. If you have an application that is not a single .exe please use SFX Maker. This tool is free for non commercial use, and most programs fall under the GPL. [http://www.isoft-online.com/ SFX Maker's Website]<br />
<br />
For instructions on how to use this software please see the youtube videos below.<br />
<br />
[http://www.youtube.com/watch?v=ZSMJLnRjn94 Office 2003 Install]<br />
[http://www.youtube.com/watch?v=Qzc1Q9NW_cE Office 2007 Install]<br />
<br />
SFX Maker takes an entire folder and encapsulates it or "folds" it into a single .exe which then "unfolds" to its original state and launches a file or command.<br />
<br />
===== Creating a Snapin with InstallRite =====<br />
<br />
If for some reason you do wish to use Installrite please be aware it comes with issues and limitations (not compatible on all windows operating systems / can cause issues with the computer it is pushed to). Below is an example of how to build a package with that software<br />
<br />
In this example we will use Epsilon Squared's InstallRite which can be downloaded from http://www.epsilonsquared.com/installrite.htm. This application will package up your snapin as an exe file which will be uploaded to the FOG server. <br />
<br />
<ol><br />
<li>To run InstallRite navigate to c:\program files\Epsilon Squared\InstallRite\InstallRite.exe</li><br />
<li>Click on "Install new software and create an InstallKit"</li><br />
<li>On the Configure screen, click Next.</li><br />
<li>On the Snapshot screen click next to create a new system snapshot.</li><br />
<li>On the next screen,click the browse button to select the application you wish to install, then click next.</li><br />
<li>When installation is complete InstallRite will come into focus, click the next button. InstallRite will scan your system again.</li><br />
<li>Enter a name for your snapin.</li><br />
<li>Click "Build Install Kit"</li><br />
<li>Select "Quiet Installation Mode", Never reboot, even if needed, and "Never prompt the user and only overwrite older files"</li><br />
<li>Click OK and it will build your snapin.</li><br />
</ol><br />
<br />
==== Preparing the FOG Server ====<br />
<br />
If your snapin is larger than 2MB you will need to make two changes to the FOG server to allow uploads of larger than 2MB.<br />
<br />
See also: [[Troubleshoot Web Interface]]<br />
<br />
===== Fedora =====<br />
<br />
<br />
#On the FOG Server click on Applications -> Accessories -> Text Editor.<br />
#Select Open and navigate to "/etc/php.ini"<br />
#Change UPLOAD_MAX_FILESIZE to 1900MB (On a 32Bit OS don't set this value above 2GB)<br />
#Change POST_MAX_SIZE to the same value.<br />
#Save and close the text editor.<br />
#Click on Applications ->System Tools -> Terminal and type "service httpd restart"<br />
<br />
===== Ubuntu =====<br />
<br />
#sudo gedit /etc/php5/apache2/php.ini<br />
#Change <br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
#Save Changes<br />
#sudo /etc/init.d/apache2 restart<br />
<br />
<br />
===== VMWare =====<br />
<br />
#sudo vim /etc/php5/apache2/php.ini<br />
#Edit the following lines in the document (read below for assistance with working in VIM)<br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
<br />
<br />
*To edit content in vim you will need to press the '''"I"''' key on your keyboard to enter input mode.<br />
*Hitting the '''Escape''' key will bring you out of input mode.<br />
*Once out of input mode type ''':w''' and then '''enter''' to save the file<br />
*Restart FOG once the file has been saved<br />
<br />
==== Uploading the Snapin ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/CreateSnapin.swf.html Video Tutorial]<br />
<br />
<ol><br />
<li>In the FOG Management Portal click on the Snapin Icon (Puzzle Pieces).</li><br />
<li>On the left-hand menu click on the New Snapin Button.</li><br />
<li>Enter a Snapin Name and Description.</li><br />
<li>Browse to the snapin file you wish to upload.</li><br />
<li>If you want the computer to restart after the snapin is installed click on the "Reboot after install"</li><br />
<li>Click "Add"</li><br />
</ol><br />
<br />
<br />
<br />
As of version 0.17, fog supports using typical msi files as snapin files.<br />
<br />
If the snapin file is a msi file you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of msiexec.exe (ie: c:\windows\system32\msiexec.exe)</li><br />
<li>Set '''Snapin Run With Arguments:''' to '''/i'''</li><br />
<li>Set '''Snapin Arguments:''' to '''/qn'''</li><br />
</ol><br />
<br />
If the snapin file is a .vb script you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of cscript.exe (ie: c:\windows\system32\cscript.exe)</li><br />
</ol><br />
<br />
<br />
<br />
'''Documentation on list of support snapin's and command line arguments''' [[http://www.fogproject.org/wiki/index.php?title=Supported_Snapin%27s_and_Command_Line_Switches]] There are MANY more supported applications that can be installed via command line arguments. You might have better luck installing them directly via .EXE / .MSI / or scripting them via .VBS . For more info on this consult the forums --[[User:Ssx4life|Ssx4life]] 09:04, 8 October 2009 (MST)<br />
<br />
==== Linking the Snapin to Hosts ====<br />
<br />
In order for a snapin to be deployed it must be linked with a host. To do this perform the following:<br />
<br />
<ol><br />
<li>In the FOG Management Portal, click on the Hosts Icon.</li><br />
<li>Search for and select a host and click on the edit button.</li><br />
<li>Scroll down to the snapin section.</li><br />
<li>Select the snapin you just created from the drop-down box and click the "Add Snapin" button.</li><br />
</ol><br />
<br />
The next time you image the computer the FOG Service will attempt to install that snapin. If you have problems, please see the fog log file located at c:\fog.log on the client PC.<br />
<br />
=== Client Side Tasks ===<br />
<br />
==== FOG Version ====<br />
<br />
Applies to version 0.12 or higher.<br />
<br />
==== Overview ====<br />
<br />
FOG attempts to keep management centralized, but in an attempt to make deploying machines as easy as possible FOG has added a few basic client side tasks. These tasks can be run from the client computer during the PXE boot process. When the client boots and the FOG banner is displayed the pxe client will display a prompt like '''boot:''' or something similar. At this point you have 3 seconds to start typing one of the following commands. <br />
<br />
<ul><br />
<li>fog.memtest</li><br />
<li>fog.reg</li><br />
<li>fog.reginput</li><br />
</ul><br />
<br />
==== fog.memtest ====<br />
<br />
This command will run the memtest86+ on the client computer. <br />
<br />
==== fog.reg ====<br />
<br />
This command will run the basic host registration and inventory process without any user input. It will register any new/unregistered hosts with the FOG server and pull a basic hardware inventory from them. The hostname of the computer will be the same as the MAC address without the ":".<br />
<br />
If a host is already registered, then only an inventory will be performed.<br />
<br />
==== fog.reginput ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/RegImage.swf.html View Host Registration Video]<br />
<br />
This command will run the full host registration process with user input, inventory and give the option to push down an image, all at the same time. During this process the user registering the host will be prompted for the computer host name, ip address, operating system ID, image ID, Primary User of the computer, asset tag 1, and asset tag 2. <br />
<br />
If a valid hostname, os id, and image id are given and the option is selected to image the workstation after registration, the host will reboot and an imaging send will began. <br />
<br />
If a host is already registered, then only an inventory will be performed, this prevents end-users from re-registering a machine with a different hostname, etc.<br />
<br />
This tasks was designed for institutions that may get shipments of hundreds of computers that need to be deployed very quickly. They can be unboxed, inventoried, imported into FOG and imaged very quickly. <br />
<br />
===== Operating System ID =====<br />
<br />
As of Version 0.17 of fog, you can now enter '''?''' at the Operating System ID prompt to get a listing of the valid operating system id values. <br />
<br />
The following are valid values for operating system IDs:<br />
<br />
<ul><br />
<li><b>1</b> - Windows 2000 / Windows XP</li><br />
<li><b>2</b> - Windows Vista</li><br />
<li><b>3</b> - Windows 98</li><br />
<li><b>4</b> - Windows (Other)</li><br />
<li><b>5</b> - Windows 7</li><br />
<li><b>50</b> - Linux</li><br />
<li><b>99</b> - Other</li><br />
</ul><br />
<br />
===== Image ID =====<br />
<br />
Image IDs can be found in the management console, in the Images section. Search for the image, and click on the edit button associated with the image, <br />
the image id will be in the Address/url bar in the format of <b>&imageid=xx</b>.<br />
<br />
As of version 0.17, you can enter '''?''' at the Image ID prompt to get a listing of all your images and their ID numbers.<br />
<br />
=== Active Directory Integration ===<br />
<br />
==== Setup ====<br />
<br />
===== Overview =====<br />
<br />
FOG has the ability to register a host with Active Directory, in a limited sense. Versions of FOG up to and including 0.28 rely on the netdom.exe executable that is provided as part the support tools on the Windows installation media. In order for Active Directory integration to function, your image will need to have the FOG service installed, along with the Windows Support Tools.<br />
<br />
Versions of FOG from (and including) 0.29 have this functionality built in and do NOT require netdom.exe or the support tools to be installed.<br />
<br />
It is also very important that before capturing your image that the computer is NOT a member of any domain.<br />
<br />
===== Security =====<br />
<br />
<font color="red">Note: The below statement applies to older FOG versions (1.2.0 and below). When using FOG 1.3.0 and above in conjunction with the NEW fog client, this step is not needed. See [https://wiki.fogproject.org/wiki/index.php?title=FOG_Client here] for more information.</font><br />
<br />
<br />
'''Important - Please read!'''<br />
<br />
In order to add a computer to a domain, FOG requires a username and password of an account that has rights to the OU where the computer objects are stored in the domain tree. This user account should have rights to join computers to the Domain, as well as sufficient rights to create/manage computer objects. FOG attempts to keep your password secure by encrypting it, but since FOG is open source, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and only need to be done one time. Please see the documentation below.<br />
<br />
===== Preparing the Image =====<br />
<br />
Before capturing an image to FOG that you would like to use with Active Directory, please ensure that the image:<br />
<br />
<ul><br />
<li>is NOT a member of the domain, change the computer membership to workgroup instead.</li><br />
<li>has support tools installed (Not required for FOG versions from 0.29).</li><br />
<li>has the FOG service installed.</li><br />
</ul><br />
<br />
===== FOG Setup =====<br />
<br />
To setup a host to use AD, navigate to the hosts section of the FOG management portal. <br />
<br />
<ol><br />
<li>Search for, and select a host. </li><br />
<li>Click on the Edit button</li><br />
<li>Scroll down to the Active Directory section.</li><br />
<li>Check the box next to Join Domain after image task</li><br />
<li>Enter the domain NETBIOS name (i.e. MYDOMAIN, not mydomain.com).</li><br />
<li>Enter the Organizational Unit where you would like to have the computer stored in AD. Leave if blank for the default. (Must be in LDAP format).</li><br />
<li>Enter the user name that has access to the computer objects. Do not include the domain name if you are running version 1.2 (your mileage may vary with earlier versions). Development version of FOG will accept a name with or without domain ('''username ''OR'' mydomain/username''').</li><br />
<li>Enter the encrypted password. This password must be encrypted with the [[FOGCrypt]] utility. This utility is located in the FOGCrypt folder of the FOG download package. It is a Windows (.NET) command line application.</li><br />
<li>Click Update.</li><br />
</ol><br />
<br />
The next time you image that computer the service will attempt to register the host with the domain information provided. If you have problems please refer to the FOG Service log file located in c:\fog.log<br />
<br />
===== Making AD Integration Easier =====<br />
<br />
As of version 0.20 of FOG, we have made it a bit easier to manage AD settings in FOG, by allowing for default settings for AD. This will allow the easy population of the domain, OU, username, and password. To set this feature up perform the following:<br />
<br />
# Go to '''Other Information''' -> '''FOG Settings'''<br />
# Set your default values for the following:<br />
## FOG_AD_DEFAULT_DOMAINNAME<br />
## FOG_AD_DEFAULT_OU<br />
## FOG_AD_DEFAULT_USER<br />
## FOG_AD_DEFAULT_PASSWORD (MUST BE ENCRYPTED!)<br />
<br />
To test everything out, go to a host that doesn't have anything setup for AD, and click on the edit button for that host. Go to the host menu, and select Active Directory. Click on the '''Join Domain after image task:''' button and all your default values should be populated.<br />
<br />
==== Securing Active Directory Integration ====<br />
<br />
===== Overview =====<br />
<br />
In order to add a computer to a domain, FOG requires a username and password that has rights to the OU where the computer objects are stored in the domain tree. FOG attempts to keep your password secure by encrypting it, but since FOG is open source and the methods used to encrypt the password are open for all to see, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and it only needs to be done one time. <br />
<br />
===== The Development Environment =====<br />
<br />
The hostname change module is written in c#, so in order to recompile it you will need to download Microsoft's Visual Studio Express Edition for C#. This can be downloaded from: <br />
<br />
http://www.microsoft.com/express/vcsharp/<br />
<br />
Install Visual Studio with the standard options.<br />
<br />
===== Getting the Source =====<br />
<br />
After Visual Studio Express is installed now we need to get the source code for the hostname change module. This is part of FOG download/installation package. This package can be downloaded from:<br />
<br />
http://sourceforge.net/project/showfiles.php?group_id=201099 <br />
<br />
Extract this package, then navigate to "FOG Service\src\FOG_HostNameChanger\"<br />
<br />
Double-click on HostNameChange.sln to open the project. <br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > hostnamechanger properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Once the project has opened, on the right-hand panel, in the "Solution Explorer", double-click on MOD_HostNameChanger.cs.<br />
<br />
After do so, you should get the source code to display in the main panel, scroll down to the line:<br />
<br />
private const String PASSKEY = "FOG-OpenSource-Imaging"; <br />
<br />
Change '''FOG-OpenSource-Imaging''' to anything you like, just remember what you change it to, as you will need it later.<br />
<br />
Then click File -> Save All.<br />
<br />
Then click Build -> Build Solution.<br />
<br />
This will recompile the hostname change module with your unique key.<br />
<br />
Now navigate to "FOG Service\src\FOG_HostNameChanger\bin\Release"<br />
<br />
Copy only the file HostnameChange.dll to "FOG Service\src\FOG Service\bin\Release" (overwrite existing file).<br />
<br />
Navigate to "FOG Service\src\FOG Service\"<br />
<br />
Open the solution by double-clicking "FogService.sln"<br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > FOGService properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Change the build configuration from debug to release<br />
<br />
Right click on "FOG Service Install" and click "Build"<br />
<br />
Navigate to "FOG Service\src\FOG Service Installer\Release"<br />
<br />
Select the 2 files, right-click -> Send To -> Compressed Folder<br />
<br />
Copy the .zip file to your FOG Server "/var/www/html/fog/client". Overwrite the existing file.<br />
<br />
===== Encrypting Your Password =====<br />
<br />
Now that we have changed the passkey, we need you update the FOGCrypt ini file to use this new passkey. <br />
<br />
Navigate to the FOGCrypt\etc directory from the FOG download package.<br />
<br />
Open the config.ini file and change the passkey value to your new passkey, then save the file.<br />
<br />
Now open a command window and navigate using the cd command to the FOGCrypt directory.<br />
<br />
Type:<br />
<br />
FOGCrypt [password]<br />
<br />
Where [password] is the AD user's password that has rights to the Computers section of the AD tree.<br />
<br />
The output from this command is what you will enter in the FOG management portal.<br />
<br />
<br />
=== FOG Reports ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher. <br />
<br />
==== Overview ====<br />
<br />
FOG Reports allow you to export data from FOG in two major formats including CSV, and PDF.<br />
<br />
#'''Snapin Log''' - This report will report on snapin installation history. <br />
#'''Imaging Log''' - This report will report on images deployed to hosts.<br />
#'''Virus History''' - This report lists any viruses that were found on locate computers. <br />
#'''Inventory''' - This report will report on the inventory information collect for network clients. <br />
#'''Equipment Loan''' - This report can be used for equipment loaned to staff members. <br />
#'''User Login History''' - This report contains information about user logins.<br />
<br />
==== Running Reports ====<br />
<br />
Running a report can be done from the Reports section of FOG, then by picking a report from the left-hand menu.<br />
<br />
==== Importing User Created Reports ====<br />
<br />
The reporting section of FOG allows for the end user to create and upload custom reports into FOG. A FOG report is a simple php script that is processed by the server. To import a report simply click on the '''Upload a Report''' button in the reports section, select the report then click on the upload button. The report will then show up on the left-hand menu. <br />
<br />
Please be cautious when uploading reports from an unknown source as the writer of the report has full access to the FOG system and database! Make sure your sources are trustworthy before importing a report!<br />
<br />
==== Creating Custom Report ====<br />
<br />
Custom reports are simple php scripts in FOG. Custom reports can be created based on the following template:<br />
<br />
[http://freeghost.sf.net/other/ReportTemplate.tar.gz Report Template]<br />
<br />
<br />
<br />
=== Plugins ===<br />
*[[Plugins]] give FOG extra functionality wanted for some users but not all.<br />
<br />
=== Other Settings ===<br />
<br />
==== [[Boot Image Key Map]] ====<br />
<br />
==== FOG Client Kernel ====<br />
<br />
===== Overview =====<br />
<br />
In FOG, there aren't really drivers you need to find and download for your clients to work, this is because we ship a Linux kernel that has the majority of hardware device built into it. What this means is if you have a device that doesn't work with FOG you need to either build a new kernel yourself or try a newer kernel that has been released via our kernel updater.<br />
<br />
<br />
===== Kernel Types =====<br />
<br />
We currently build two "lines" of kernels, one called KS or KitchenSink. This kernel tries to include drivers for as many devices as possible, sometimes as the cost of performance, and this is the kernel that we ship with FOG by default. The other "line" is the PS kernel or the Peter Sykes kernel, which is a based on a config submitted by a user. This kernel line tries to be faster, but may not include as many drivers as the KS kernel. <br />
<br />
===== Updating the Kernel =====<br />
<br />
It is possible to update your client kernel from within the UI of FOG. To do this perform the following steps:<br />
<br />
#Log into the FOG Management UI.<br />
#Go to '''Other Information'''<br />
#Select '''Kernel Updates'''<br />
#Select the Kernel you would like to download, typically the newest kernels are on the top of the list.<br />
#Click the download icon<br />
#Select a file name for your kernel, to make it the default kernel leave the name as '''bzImage'''<br />
#Click the '''Next''' Button<br />
<br />
=== Mobile Management Interface ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Mobile web interface is a very basic, stripped down interface for FOG. It is designed to be given to lower level technicians using low powered, mobile devices such as iPod touches, iPhone, PDAs, and internet tablets. The idea behind this interface is to make it easy for techs to re-image a computer while making the rounds at a site.<br />
<br />
==== Using the mobile Interface ====<br />
<br />
The mobile interface can be access via:<br />
<br />
http://x.x.x.x/fog/mobile<br />
<br />
The portal requires a valid user name in password, which can be created via the FOG portal. <br />
<br />
[[Image:Ipod login.JPG]]<br />
<br />
Once logged into the portal, users can search for hosts and image them, and view/cancel active tasks. <br />
<br />
[[Image:Ipod results.JPG]]<br />
<br />
[[Image:Ipod active.JPG]]<br />
<br />
They can not change image associations, nor modify any properties of a host.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Managing_FOG&diff=12077Managing FOG2016-07-09T00:40:42Z<p>Tom-elliott.7271: /* Group Basic Tasks */</p>
<hr />
<div>== Managing FOG ==<br />
<br />
=== Dashboard ===<br />
<br />
==== Overview ====<br />
<br />
[[File:Dashboard.png]]<br />
<br />
*The FOG dashboard is the first page you are presented with after login. This page just gives you an overview of what is happening on your FOG server.<br />
<br />
==== System Overview ====<br />
<br />
*The system overview box is the the top left hand box on this page. The information presented in this box is the current user, the server IP addresse or hostnames for your web server, tftp server and storage server (which can all be different). This section also gives you the system uptime or how long the system has been running without restart, the number of users logged into the Linux box, and lastly the system load.<br />
<br />
==== System Activity ====<br />
*The system activity box is in the top row, the middle box. This section shows the unicast queue, or the number of unicast deploys that are currently in progress. The queue size can change and is based on the the Storage Group(s). Each storage node has a setting ''Max Clients'' making this the maximum number of hosts that this node can image to. If there are 2 nodes with a max of 10 each then your maximum queue amount is 20. However, remember the more you increase the ''Max Clients'' the slower each particular host will be to deploy the image.<br />
*This means that after 20 hosts are receiving images (at once) the 21st will wait for one of the hosts in progress to complete before starting. The reason this was created was so that you could queue up 100 machines with different images (all unicast) and still keep the system functional. We have heard of this queue being used to re-image an entire building of computers ( ~ 1000+ ) overnight. This section updates in real time.<br />
*It will display all the queued, running, etc... tasks and updates at the same interval as the Bandwidth graph. Also, SVN installations (and later future releases) are able to edit which type of tasks get counted towards the "queue". <br />
*This edit can be performed by going to '''FOG Configuration'''[[file:Config.png]]--> '''FOG Settings'''--> '''General Settings''' --> '''FOG_USED_TASKS'''. <br />
*The text field is numeric values (so you'll need to know which task id's are which type. This text field is a CSV setup. If you type (1,2,3,4,5) it will display all tasks of Deploy, Capture, Debug, Memtest, and Testdisk as queued/active depending on their current state. The exception to this rule, is Task Type ID 8 (multicast) in which case it takes the Jobs, not each individual host task, as a queued slot.<br />
<br />
==== Disk Information ====<br />
<br />
*The disk information box is the top, right hand section of the dashboard page. This is a semi-realtime display of the storage remaining on the storage server.<br />
*There is also a drop-down box that can be changed to your storage nodes to monitor their Disk Information.<br />
*If you get an error in this box, please see [[Dashboard Error: Permission denied...]]<br />
<br />
==== 30 Day Imaging History ====<br />
<br />
*This image shows your imaging trends for the past 30 days<br />
<br />
==== Menu Bar ====<br />
<br />
[[Image:FogMenu.jpeg]]<br />
<br />
This menu appears at the top of every page on Fog's web UI. The icons are, from left to right:<br />
<br />
[[Image:Home.png]]'''Home/Dashboard''' - This is the home screen of the FOG management portal.<br />
<br />
[[Image:Users.png]]'''[[Managing_FOG#Users | User Management]]''' - Individual administrators of the FOG resources.<br />
<br />
[[Image:Hosts.png]]'''[[Managing_FOG#Hosts | Host Management]]''' - This section houses the hosts, which are the pcs to be imaged or to extract images from.<br />
<br />
[[Image:Groups.png]]'''[[Managing_FOG#Groups | Group Management]]''' - This section houses groups, which are similar PCS’ that need tasks done en-masse.<br />
<br />
[[Image:Images.png]]'''[[Managing_FOG#Images | Image Management]]''' - This section allows you to manage the image files stored on the FOG server.<br />
<br />
[[Image:Storage.png]]'''[[Managing_FOG#Storage_Management | Storage Management]]''' - This section allows you to add/remove storage nodes from the FOG system.<br />
<br />
[[Image:snapins.png]]'''[[Managing_FOG#Snap-ins | Snap-in Management]]''' - This section provides ways to automate various post-imaging tasks, not covered in this document<br />
<br />
[[Image:Printers.png]]'''[[Managing_FOG#Printers | Printer Management]]'''' - This section allows for management of printers, allowing you create printer objects that can later be assigned to hosts or groups.<br />
<br />
[[Image:Services.png]]'''Service Configuration'''' - This section allows you to control how the ''client'' service functions.<br />
<br />
[[Image:Tasks.png]]'''[[Managing_FOG#Tasks | Task Management]]''' - This section allow you to perform imaging tasks such as acquiring or deploying images.<br />
<br />
[[Image:Reports.png]]'''[[Managing_FOG#FOG_Reports | Report Management]]''' - Reports let you pull information from the FOG database either as HTML, pdf, or csv.<br />
<br />
[[Image:config.png]]'''Fog Configuration''' - The section has the rest of the settings that don't fit anywhere else like the kernel updater, client service updater, iPXE edits, MAC address list, Log viewer, '''FOG Settings'''.<br />
<br />
[[Image:Plugins.png]]'''[[Managing_FOG#Plugins | Plugins]]''' - Plugins add more functionality to FOG. Must be enabled in ''Fog Configuration''<br />
<br />
[[Image:Logoff.png]]'''Logoff''' - Click this to log off of the Fog web UI.<br />
<br />
<br />
----<br />
<br />
=== Hosts ===<br />
[[File:All_Hosts.png]]<br />
*[http://freeghost.sourceforge.net/videotutorials/hostinfo.html Video Tutorial] (old version but valid instructions)<br />
*A host in FOG is typically a computer, but it can be any network device. Hosts are used to identify a computer on the network and are used to manage the device.<br />
<br />
==== Adding a new host ====<br />
<br />
===== Method 1: Adding a new host via Full Registration =====<br />
<br />
*This is the preferred method, and maybe the easiest method for getting a host into the FOG database, but it requires you to visit the host. When at the client computer, during the boot up process when you see the PXE/iPXE boot menu select '''Perform Full Host Registration and Inventory'''. During this phase you will be prompted for information about the host like hostname, operation system, image, groups, Product Key, and other information. If you enter a valid operating system and image id, you will be asked to Image Now. If desired, you can set the task and it will deploy the image on the next network boot. <br />
*After the requested information is entered, FOG will pull a quick hardware inventory the client.<br />
*This method of registration will register the mac address(primary wired only), serial number(if available in BIOS), Make/Model, and other Hardware information with the FOG server.<br />
*For more information on these commands please see: [[FOGUserGuide#FOG_Tasks | Client Side Tasks]]<br />
<br />
===== Method 2: Adding a new host via Quick Registration =====<br />
<br />
*Quick registration is very much like the Full host registration, with the exception that it will not prompt you for any input, nor give you the option to image the computer directly from the registration screen. When the host is added to the FOG server, it will be named with the hosts primary mac address. This method is great for adding a lab of 30 computers to FOG quickly and easily.<br />
*This feature is disabled by default, to enable this feature:<br />
#Go to '''FOG Configuration'''[[image:config.png]]<br />
#Select '''FOG Settings'''<br />
#Find section '''FOG Quick Registration'''<br />
#Tick ON '''FOG_QUICKREG_AUTOPOP''' to &#10004;<br />
#Set '''FOG_QUICKREG_IMG_ID''' to the image ID you would like to use for all newly created hosts.<br />
#'''FOG_QUICKREG_OS_ID''' will be auto populated when "Save Changes" is selected. (OS is now associated within the image so no need to select an OS)<br />
#Change '''FOG_QUICKREG_SYS_NAME''' to what you would like to name you new machines, where * will be replaced by a number. If you would like to zero pad numbers you can use '''LAB300-**''' which would result with '''LAB300-03''' or '''LAB300-09'''.<br />
#Set '''FOG_QUICKREG_SYS_NUMBER''' to the first number you would like to use.<br />
*After each registration the computer will automatically image and the '''FOG_QUICKREG_SYS_NUMBER''' will incremented by 1.<br />
<br />
===== Method 3: Manually Adding =====<br />
<br />
*[http://freeghost.sourceforge.net/videotutorials/addimghost.html Video Tutorial]<br />
*Adding a new host can be done in the hosts section of FOG.[[Image:Hosts.png]] Then by clicking on the "Add New Host" button on the left hand menu. At least a hostname and a MAC address must be entered in order to add the host to the FOG database. <br />
<br />
*A host consists of the <span style="color:RED">'''required*'''</span> fields: <br />
<br />
#'''Hostname*''' - A string used for the Windows Hostname of client, this must be less than 15 characters long. <br />
#'''MAC address*''' - This field is used in for for a unique identifier for the host. The string must be separated by : (colon), in the format of 00:11:22:33:44:55. <br />
<br />
*Hosts can also include, but are not required:<br />
<br />
#'''IP address''' - Just your typical IP address, in the typical formation of X.X.X.X or 192.168.1.1.<br />
#'''Description''' - Information for your own reference.<br />
#'''Image Association''' - This field is a drop down box that will allow you select an image object created in the '''Images''' section. <br />
#'''Operating System''' - Drop down box that allow you to select the primary type of operating system running on this host.<br />
#'''Kernel''' - This is only used if you want to overwrite the default kernel used for FOG. Needs to be specified as fog/kernel/mybzImage<br />
#'''Kernel Arguments''' - This allow you to add additional kernel arguments for booting the host (ie: vga=6, or irqpoll). <br />
#'''Primary Disk''' - This option allows you to force a device to use during imaging if fog fails to detect the correct device node.<br />
*This page also allows for configuration of Active Directory integration, but this topic will be covered later. When all settings are added, click on the "Add" button.<br />
<br />
===== Method 4: Importing Host Information =====<br />
<br />
*When getting started with FOG, you need to enter the host information for the devices on your network. We understand this can be a long difficult process, so in order to make this process easier we created a page that allows you to import most of the host information from a CSV file. <br />
*The CSV file that is imported to FOG must be in the following format, and the file should not have a header row. <br />
<pre>MAC Address,Host name,IP Address,Description,OSID,ImageID</pre><br />
*The '''MAC Address''' (<span style="color:RED">'''required*'''</span>) is the NIC's MAC address seperated by ''':''' (colon).<br />
*The '''Host name''' (<span style="color:RED">'''required*'''</span>) is the computer's Host name (must be less than 15 characters, should not include underscores, according to [http://tools.ietf.org/html/rfc952 | Network Working Group ]).<br />
*The '''IP Address''' (<span style="color:Orange">'''Can be left as blank'''</span>)is the computer's IP address (format x.x.x.x). <span style="background-color:Yellow;">''This field is '''NOT''' currently used by FOG''</span><br />
*The ''''Description''' (<span style="color:Orange">'''Can be left as blank'''</span>)is any text description you would like associated with the computer.<br />
*The '''OSID''' (<span style="color:RED">'''required*'''</span>)is the number representing the operating system. It can be found in the table "supportedOS" in the field osID.<br />
*The '''ImageID'''(<span style="color:RED">'''required*'''</span>) is the number representing the images file linked to this image. The image definition must already exist and this number can be found in the table "images" in the field imageID.<br />
*<span style="background-color:Red; color:white;">The file must be saved as a CSV '''without''' a header row.</span><br />
*Sample:<br />
<pre><br />
00:00:02:AF:00:E0:01:0F,adminoff1,10.0.1.150,Main admin office computer,5,14<br />
00:00:02:AF:00:E0:01:04,adminoff2,,admin office 2 computer,5,13<br />
00:00:02:AF:00:E0:01:02,adminoff3,,,5,12<br />
</pre><br />
<br />
====== Importing the File ======<br />
#After the file is prepared and saved, you will need to log into the FOG Management Portal.<br />
#Then click on the Hosts icon [[Image:Hosts.png]].<br />
#On the left-hand menu, click on '''Import Hosts'''.<br />
#Browse for your file, then click "'''Upload CSV'''".<br />
<br />
==== Managing Hosts ====<br />
<br />
===== General =====<br />
<br />
*Once hosts have been added to the FOG database you can modify or delete them. Finding a host which you wish to edit can be done in two ways, the first is by listing all the hosts that exist. This is done by clicking on the "List All Hosts" button. The second way to locate a host is to use the search function. To search for hosts click on the "New Search" button, if you would like to search for all hosts you can enter a "*" or "%". The search function will search in the host's name, description, IP and MAC address. <br />
*Once a host is located, it can be edited by clicking on the edit button or on the Host Name itself. Clicking on the edit button will display all the properties that were shown during host creation with the addition of snapin, printers, active directory, service settings, hardware, virus history, and login information. <br />
*The entire host object can be removed from the FOG system by clicking on the delete option at the bottom of the Host Menu.<br />
<br />
===== Multiple MAC Address Support =====<br />
*When FOG first registers your HOST computer it uses the first connected Ethernet cable and defaults it to the Primary MAC Address. Once the FOG Client is installed and reporting data back to the FOG server it may register other additional MAC addresses, such as wireless and other wired connections. Also, an additional MAC can also be added directly under the Host definition.<br />
*These new MAC Addresses will need to be approved before FOG will take advantage of them.<br />
*#'''Host Management''' [[File:Hosts.png]]--> '''[Selected Host]''' -->''Additional MAC''<br />
*#'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' -->''Approve Pending Addresses''<br />
*'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' At this location you can also ''"Update Current Listings"'' giving updated information on the MAC Addresses and their manufactures, listing it under the Host.<br />
<br />
===== Host Status =====<br />
<br />
*Host Status displays an indicator icon next to the host within the FOG UI showing the status of the machine. This function executes a ping based on the host's name. So in order for this to work you must have an internal DNS server that is tied in with your DHCP server, so that when a DHCP address is given out, the DNS server is notified with the new IP. If that is setup correctly, you must make sure your FOG server is able to ping a host from the command line using:<br />
ping somehostname<br />
*If the server isn't able to ping the client, then the status of the host in the UI with always show as unreachable. If you can ping the client using the FQDN, like<br />
#Replace forproject.org with your domain suffix<br />
ping somehostname.fogproject.org <br />
*Then you will need to adjust the DNS '''Search domains:''' setting on your sever. After making this change you will need to restart the apache server for it to take affect.<br />
*If after this, you still can't ping your clients, the problem may be due to a firewall issue with the clients. In this case, client specific configuration changes might be needed.<br />
*With an increase in Hosts(250+) this "ping" will delay the loading of the List ''All Hosts'' page. Disabling this feature will help in loading this page.<br />
*# '''Fog Configuration''' [[File:Config.png]] --> '''Fog Settings''' --> '''General Settings''' --> Untick ''FOG_HOST_LOOKUP''<br />
<br />
===== Creating Host Groups =====<br />
<br />
*FOG allows you to create groups of hosts which then allows you to take action on a whole grouping of hosts. Hosts can be created either on the "List All Hosts" section or by doing a search for hosts. To create a group select the computer you would like to be member of the group by placing a check in the box next to the hostname, or by clicking the check all button in the title row. After the hosts are selected scroll to the bottom of the screen and then enter a name in the create to group box or select a group to add the hosts to. Then click on the "Process Group Changes" button.<br />
<br />
<br />
----<br />
<br />
=== Groups ===<br />
*Groups in FOG are used to organize your hosts into real world logical clusters. This is intended to ease management of the computers. A single host can be a member of infinitely many groups, so if a computer happens to be a member of the group called "Third Floor", it could also be a member of "Math Department", or "Dell PCs." Groups make using FOG possible for organizations with a very large number of PC's.<br />
<br />
==== Creating Groups ====<br />
*Groups are created in two sections:<br />
*#'''Group Management'''[[file:groups.png]] --> '''Create New Group'''<br />
*#Hosts section of FOG based on searches, for information on how to create groups, please see [[Managing_FOG#Creating_Host_Groups | Creating Host Groups.]]<br />
<br />
==== Managing Groups ====<br />
<br />
*After a group has been created, it can be managed from the groups section of FOG. Locating groups is very similar to locating hosts, you can either list all groups or you can search for groups. When searching for groups your search criteria is matched against the group name or the group description. Once a group is located it can be modified by clicking on the "Edit" button on the right hand side of the table or the Title of the group itself.<br />
<br />
*Under the section "Modify Group [Groupname]" there are options to change the group name, group description, group product key, or to delete the group. If you wish to update the group name or the group description make your change then click on the "Update" button within that section. If you would like to remove the group then simply click on the "Delete" button within this section.<br />
<br />
*As a reminder, when saving or updating settings for hosts Fog uses the last to save option. If you set all the hosts in this group to have ''Image A'' and then change ''Host A'' in that group to be ''Image B''. The group settings will not override the settings for ''Host A'', unless you go back to the group and set all hosts back to ''Image A''.<br />
<br />
===== Group Basic Tasks =====<br />
<br />
*This section will allow you to start a task on this group of hosts. From this section you can start any task to all hosts within the group. Multi-Cast is also available from here. Please review [[FOGUserGuide#Fundamental_Concepts | Fundamental Concepts]] to determine the required deploy task.<br />
<br />
===== Group Membership Setup =====<br />
<br />
*This page allows you to view/add/delete membership of the group. This section will list all of the members of the group and give you the option to remove members from the group.<br />
<br />
===== Group Image Associations =====<br />
<br />
*The groups page also allows you to update the image association for all the members of the group. This can be done in the "Image Association for [groupname]" section. Select the image association from the drop-down box and select "Update Images" and then all your host objects for that group will be modified.<br />
<br />
===== Group Snapins =====<br />
<br />
*You can add or remove snapins to all hosts in a group, but because the nature of groups, it is not possible to see what snapins are currently associated with a group. This is because the snapins are not directly associated with the group, the are associated with the host and it is possible for all members of the groups to have different snapins linked with each host. What fog does allow you to do is batch add a snapin to all the hosts within a group. At the same time you can batch remove a snapin from all the hosts within a group. This functions can be done via the '''Add Snapins''' and '''Remove Snapins''' button in the Group Menu.<br />
<br />
===== Group Service Settings =====<br />
<br />
*The '''Service Settings''' page allows you to enable or disable certain service modules on all hosts in the group, as well as change some service settings for group such as screen resolution, and auto log off settings.<br />
<br />
===== Group Active Directory Setup =====<br />
<br />
*Active Directory integration settings can also be distributed to all members of a group via this page. The section "Modify AD information for [groupname]" allows you to do so. This section provides the same options as the host screen but allows you to mass update all of your hosts.<br />
<br />
===== Group Printers =====<br />
<br />
*The '''Printers''' page allows you to add or remove printer associations to all hosts within the group. This page also allows you to set the management level all hosts within the group.<br />
<br />
===== Group Membership Information =====<br />
<br />
*The most important thing to remember about groups in FOG is that they do not contain their own properties. When you make changes to a group, you are really make changes to every host object within the group. For example, if you change the OS association for a group, then go back to the one of the host objects that is a member of that group, it will have the new OS association on that object.<br />
<br />
<br />
----<br />
<br />
=== Images ===<br />
<br />
*Image objects in FOG are the representation of the physical files that contain the disk or partition images that are saved on the FOG server.<br />
<br />
==== Creating Images Objects ====<br />
<br />
*Image objects in FOG are created in the Images section of the FOG management portal. To create a new image click on the "New Image" button on the left hand menu. An image object requires a name and a image file path. <br />
<br />
*When creating images you have a few choices in how you want that image to 'act'. The possible partition types include:<br />
Single Partition<br />
Multiple Partition - Single Disk<br />
Multiple Partition - All Disks<br />
Raw Image<br />
<br />
====='''FOG 1.2.0'''=====<br />
<br />
*'''Single Partition''' - Single Partition images support only single NTFS partitions. These partitions are resizable, meaning that an image from a 200GB hard disk can be put on a 10GB hard disk as long as the data is less than 10GB. This image type is destructive, which means that your partitions will be modified, and if the task doesn't finish without error it is possible that your computer may not be bootable.<br />
<br />
*'''Multiple Partition - Single Disk''' - Single Disk will back up all the supported partitions on the first disk drive detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity. It is possible to backup NTFS drives with vendor specific 'restore' partitions with this type of image. <br />
<br />
It is possible to backup Linux systems with this type of image given the following criteria:<br />
1.) There is a Grub boot loader present.<br />
2.) LVM is not used.<br />
3.) The partitions include '''ext2''', '''ext3''', '''reiserfs''', or '''swap'''.<br />
4.) The swap partition should be moved out of the extended partition (for ubuntu 9.04)<br />
<br />
*'''Multiple Partition - All Disks''' - All Disks will back up all the supported partitions on all disk drives detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity.<br />
<br />
*'''Raw Image''' - Raw Image will do a raw sector-by-sector copy of your hard disk, which means that if you have a 80GB hard drive, dd will process 80GB of data, and you will end up with a VERY LARGE image that is VERY SLOW to create and restore.<br />
<br />
*All of these images can be deployed using multi-cast, unicast, or torrent-cast to clients.<br />
<br />
====='''FOG 1.3.0 (still in development as of feb 11, 2016)'''=====<br />
<br />
Image types:<br />
<br />
* '''Single Disk - Resizable'''<br />
<br />
This should always be your first choice. It takes a copy of every partition on the disk, and resizes any partition that has excessive free space to a smaller size. Each resizable partition will go through a "Resizing filesystem" process for each partition that is to be resized. This process can take some time depending on how severe disk fragmentation is. It's recommended to run "Disk defragmenter" (win 7 and lower) or "Optimize Drives" (Win8+) prior to taking a resizable image. The partitions that are shrank will be shrunk down to only 2GB of free space on their partition. This allows an image taken from a 6TB drive with only 20GB of used space to be deployable to a HDD with a total capacity of 40GB. When the partitions are laid onto the destination drive, all resized partitions are intelligently expanded to utilize the entire drive.<br />
<br />
* '''Multiple Partition Image - Single Disk (Not Resizable)'''<br />
<br />
This is what you should pick when Single Disk - Resizable fails.<br />
<br />
* '''Multiple Partition Image - All Disks (Not Resizable)'''<br />
<br />
This is what you should pick when you want all partitions from multiple disks to be captured. If you only wanted a particular partition captured or drive captured in a multi-drive system, you can define the disk or partition you want within a Single Disk - Resizable or Multiple Partition Image - Single Disk (Not Resizable) type image. This is done through the "golden" host's "General" area, in the "Host Primary Disk" field.<br />
<br />
* '''Raw Image (Sector By Sector, DD, Slow)'''<br />
<br />
This should always be the last resort. This takes an absolute exact copy of an entire disk and does not compress the data. If you take an image from a 6TB disk, the resultant image will be 6TB in size. This image type also takes a '''significant''' amount of time to capture and deploy.<br />
<br />
==== Modifying Image Objects ====<br />
<br />
*Image object can be located either by a search or by listing all image objects.<br />
<br />
==== Adding Existing Image Objects ====<br />
<br />
*To restore an image to the FOG database:<br />
*# Create a new Image definition through the management browser<br />
*# Specify image name (SampleXPImage)<br />
*# Specify storage group (default)<br />
*# Specify image file path (SampleXPImage)<br />
*# Specify image type<br />
*# Log into the box hosting FOG, and move/rename your image to match browser input<br />
*# Create hierarchy if necessary. FOG, by default, puts images in /images/, so for the above example, you would need to create a folder structure like so: /images/SampleXPImage<br />
*# Drop your image file into the folder (be sure it's named the same as image name above)<br />
<br />
----<br />
<br />
=== Storage Management ===<br />
<br />
*The Storage Manager introduces the concept of '''Storage Groups.''' Basically, a storage group is a group of NFS servers that share images and share the load of computers being imaged. Any member of a storage group is referred to as a '''Storage Node.''' You may have as many storage groups as you wish and as many storage nodes within those groups as you wish. In each storage group, there is one storage node which is designated as the '''Master''' of that group. Basically what this means it that is the node where all image captures go, this node handle multicasting tasks for the group, and is the image replicator the for the group. This means that whatever images are stored on this node are what gets distributed to the entire group. <br />
<br />
*What this new system of storage management gives us is a distributed model for FOG which allows for more unicast transfers at a single time. We also gain data redundancy. We also take stress off of the main FOG server.<br />
<br />
*Below is a brief overview of Storage Groups<br />
<br />
[[Image:Nfsgroup.jpg]]<br />
<br />
*This image shows a single Storage Group and the flow of data within the group. The queue size of the system is the sum of the queue size of all the storage nodes within the system. So if you have 4 nodes each with a queue size of 10, then the queue size of the system is 40, which means 40 clients can be imaged (unicast) at one time. <br />
<br />
[[Image:StorageGroups.jpg]]<br />
<br />
*This image shows that it is possible to have multiple storage groups on your network, which are isolated from each other. This image also demonstrates, that captures always go to the master node and multicast session always send data from the master node. Images are pushed out from the master node of the group to all other members of the group.<br />
<br />
*'''Key Benefits'''<br />
*#Increased throughput<br />
*#Redundant Storage<br />
*#Scalability<br />
<br />
*Also see [[Knowledge_Base#Storage_Nodes | Storage Nodes]] for tutorials.<br />
<br />
==== Adding a Storage Node ====<br />
<br />
*Definition: Storage Nodes provide extra [http://www.fogproject.org/wiki/index.php?title=InstallationModes NFS/FTP storage space] which increases available throughput and redundancy within a network. They do not provide PXE, TFTP, or DHCP services at secondary sites. To enable additional PXE and TFTP services at secondary sites see this section: [[#Including_multiple_PXE_.2F_TFTP_servers|#Including multiple PXE / TFTP servers]]<br />
<br />
*Video Tutorial: http://www.youtube.com/watch?v=X72WthDGwsw&fmt=18 (old video but still valid infomation)<br />
<br />
*To add an additional storage node to the network, the computer should be prepared in the same way the main FOG server would be prepared (disable firewall, SELinux, etc). You can also safely mix operating systems for the nodes of you storage group, some nodes can be running fedora, and some can be running Ubuntu. It is important to update your storage nodes when you upgrade to a new version of FOG. Installation of a storage node is done with the same installer for a normal FOG server. Installation can be started by running the installer script, the steps are detailed below.<br />
<br />
*Surprisingly enough some users have actually gotten a Windows Storage node to work properly. See [[Windows_Storage_Node]] for more information on this.<br />
===== Installing the Node =====<br />
*To Install a node:<br />
*#Run the installation script, ./installfog.sh<br />
*#Select your operating system.<br />
*#When prompted for Server Installation Mode, select '''S''', for storage node.<br />
*#Enter the IP address of the storage node.<br />
*#Confirm you interface<br />
*#Then you will need to enter the IP address or host name of the node running the FOG database<br />
*#Then you will be prompted for a username (typically fogstorage)<br />
*#and a password that is located on the FOG server, that will allow the storage node to access the main FOG server's database. This information is located in the FOG management portal for convenience (on the main for server). It can be accessed via '''Other Information''' -> '''FOG settings''' -> section '''FOG Storage Nodes'''.<br />
*#You will then be prompted to confirm your installation settings, if they are correct press '''Y''' end hit '''Enter'''.<br />
*#When installation completes, the install will produce a username and password that will be needed to add the storage node to the FOG management portal. Username is "fog", password is in /opt/fog/.fogsettings<br />
<br />
===== Adding the Node to the Management Portal =====<br />
*To Add a Node<br />
*#Log into the FOG Management Portal<br />
*#Navigate to the '''Storage Management''' section.<br />
*#Click on '''Add Storage Nodes'''.<br />
*#For the '''Storage Node Name''', enter any alpha numeric string to represent the storage node. <br />
*#Enter any description you wish<br />
*#Enter the IP address of the storage node you are adding. This must be the IP address of the node, DO NOT use a hostname here or the node will not function correctly. <br />
*#Enter the maximum number of unicast clients you would like this node to handle at one time. The value that we recommend is 10. <br />
*#Is Master Node is a very dangerous settings, but for right now leave it unchecked, for more details please see: [[#Master Node Status]].<br />
*#Next, select the storage group you would like this member to be a part of, in our example we will pick '''Default'''<br />
*#Next, specify the image location on the storage node, typically '''/images/''', your image location should always end with a '''/'''.<br />
*#Next, you will want to check the box, to enable the node.<br />
*#The last two fields take the username and password that are generated during the installation of the storage node. username is "fog", password is in /opt/fog/.fogsettings<br />
*#Then click '''Add''' to have the node join the storage group.<br />
<br />
==== Monitoring The Master Node ====<br />
<br />
*On all storage nodes there is a new service (as of version 0.24) called FOGImageReplicator which is a very basic script which, if the node is the master, copies all of its images to all other nodes in the storage group. The coping is done every ten minutes by default, which means your images are NOT instantly duplicated to all nodes. <br />
<br />
*If you would like to view the status of the image replication, you can do so on the storage node by switching to tty3, by typing ctl + alt + f3. Output is also logged to a file in the '''/opt/fog/log''' directory.<br />
<br />
*FOGImageReplicator logs are also located in [[File:Config.png]] '''Fog Configuration''' --> '''Log Viewer''' --> '''FILE: [Select Image Replicator]'''<br />
<br />
==== Master Node Status ====<br />
<br />
*The '''Master Node''' (could be the server or a particular node) in a storage group is the node that distributes images files to all other nodes in the storage group.<br />
<br />
*If you have all your images distributed across 3 nodes in a storage group, '''if you add a new storage node that has no images stored on it, making that node master will cause it to take over and push it's image store of nothing to all other nodes, wiping out all of your images'''. So it is important to be very careful and backup your images when you change a node's master status.<br />
<br />
*Notes - You '''can''' have many storage nodes in a storage group. You '''can''' have one master storage node in a storage group. You '''can not''' have more than one master storage node in a storage group. You '''must have''' one master storage node for replication to take place to other nodes in the group. '''If''' a master storage node is set, all captures '''first''' go to the master storage node of the storage group the image is assigned to; and are '''then''' replicated to other storage nodes.<br />
<br />
==== Including multiple PXE / TFTP servers ====<br />
<br />
*A traditional Master Storage Node, [[#Adding_a_Storage_Node|as described above]] only provides File Storage redundancy. While this can help increase multicast throughput on a single network, all the machines under FOG management must be within the same subnet/VLAN so that DHCP broadcast requests can be directed to the Main server. (see note below)<br />
<br />
*<pre>'''Note:''' depending on the network, it may be possible to configure [http://en.wikipedia.org/wiki/UDP_Helper_Address iphelper] to forward packets to the Main FOG server</pre><br />
<br />
*The following instructions are intended to help configure additional Storage Nodes to operate independently on separate networks, while still syncing with and taking commands from a single Main FOG server.<br />
<br />
*Click here for instructions on setting up [[Multiple_TFTP_servers|multiple PXE / TFTP servers]]<br />
<br />
=== Users ===<br />
<br />
==== Overview ====<br />
<br />
*FOG has only two levels of users, '''regular''' users and '''mobile''' users. Regular users have access to the mobile portal and the full management portal. Mobile users have access to only the mobile management portal and Quick Image functions.<br />
<br />
==== Creating Accounts ====<br />
<br />
*All accounts are created under the "Users" section of the FOG portal. To create a new account click on the "New User" button on the left hand side of the page. All accounts must have a unique username, and a password. After filling in the required information click on the "Create User" button.<br />
<br />
==== Modifying Users ====<br />
<br />
*FOG accounts can be modified from within the users section. First you must locate the account you wish to modify by clicking on the "List all Users" button on the left hand side of the page. When a user is located, click on the edit button on the right hand side of the table.<br />
<br />
=== Tasks ===<br />
<br />
==== Overview ====<br />
<br />
*Tasks are all the actions that you can take on a computer, and in FOG there a numerous tasks that can be done including:<br />
<br />
*Deploy (Unicast)<br />
*Capture (Unicast) <br />
*Deploy - Multicast <br />
*Debug<br />
*Memory Test<br />
*Test Disk<br />
*Disk Surface Test<br />
*Recover (File Recovery)<br />
*Hardware Inventory<br />
*Password Reset<br />
*Deploy All Snapins<br />
*Deploy Single Snapin<br />
*Wake-Up<br />
*Deploy - Debug (Unicast)<br />
*Capture - Debug (Unicast)<br />
*Download - Without Snapins (Unicast)<br />
*Fast Wipe<br />
*Normal Wipe<br />
*Full Wipe<br />
*Virus Scan<br />
*Virus Scan - Quarantine<br />
*Donate<br />
*Torrent-Cast<br />
<br />
<br />
In the tasks section of FOG you can perform tasks on single hosts or groups of hosts. This section also allows you to monitor selective tasks, and stop/cancel tasks.<br />
<br />
==== General Tasks ====<br />
<br />
The general/common Tasks in FOG include unicast image capture, and unicast image send, as well as a multicast image send. In FOG, sending an image to the server is considered an image capture, and deploying an image to the client is called a send. Both of these tasks can be started directly from the search, list all hosts, and list all groups pages. <br />
<br />
To perform a simple image capture, click on the upward facing arrow next to the host. Captures are only possible on a host, not a group. Capturing an image will also overwrite any image file that may already exist for that host without any notification or confirmation.<br />
<br />
Please note that capturing images of Windows Vista and Windows 7 requires special command to be run on the clients prior to image capture. Please see [[What do I have to do to an image before capturing?]] for more details.<br />
<br />
For a video demonstration of an image capture, please see: http://www.youtube.com/watch?v=jPPZr0abVfg&fmt=18<br />
<br />
To perform a simple image send, click on the downward facing arrow next to the host. An image send can be done on a host or a group. When sending an image to multiple computers FOG works in queue mode, which means that it will only send to 10 (by default) computers at one time. This is done to keep the server from being overworked. As soon as the a machine finishes, another from the queue joins.<br />
<br />
To perform a multicast image send you must search for a group of hosts on the "Task Management" page. Multicast tasks can only be performed on a group of hosts. Multicast tasks will send to all the computers in the group at once, and the task will not start sending until all members of the group have connected with the server. After starting a multicast task, status can be view by clicking on [ctl]+[alt]+f2. A log is also kept for multicast transfers which is stored at /opt/fog/log.<br />
<br />
==== Advanced Tasks ====<br />
<br />
The advanced Tasks in FOG include everything that is not a simple capture, simple deploy or mutlicast deploy. <br />
<br />
=====Debug=====<br />
<br />
Debug mode boots the linux image to a bash prompt and allows the user to issue all commands by hand. <br />
<br />
=====Capture - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to capture the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to send the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Without Snapins)=====<br />
<br />
This task does a normal send task with the exception that if any snapins are associated with the host, they are not deployed to the host. <br />
<br />
=====Deploy All Snapins=====<br />
<br />
This task will send all the snapins associated with a host to the host without imaging it.<br />
<br />
=====Deploy Single Snapin=====<br />
<br />
This task will send a single snapin that is associated with the host to the host without imaging it. (Note: The snapin must be associated with the host already)<br />
<br />
=====Memory Test=====<br />
<br />
Boots to Memtest86, a memory testing tool. This a task will not exit with out user intervention at the client side. The task must also be manually stopped via the management front end.<br />
<br />
=====Wake Up=====<br />
<br />
Wakes up host or group of hosts using Wake-on-Lan. <br />
<br />
=====Fast Wipe=====<br />
<br />
This task does a quick and dirty wipe of the drive. This task writes zeros to the first ~40MB of the disk. This task should NOT be used if you don't want your data to be recoverable. <br />
<br />
=====Normal Wipe=====<br />
<br />
This tasks writes random data to the entire surface area of the disk. <br />
<br />
=====Full Wipe=====<br />
<br />
This tasks writes random data, multiple times to the entire surface of the disk. <br />
<br />
=====Disk Surface Test=====<br />
<br />
This task will look for bad blocks on the hard disk and report them back to the client console. <br />
<br />
=====File Recovery=====<br />
<br />
This task will load an application that can be used to recover lost files from the hard disk. <br />
<br />
=====Virus Scan=====<br />
<br />
This task will update and load ClamAV and scan the partition for viruses. It will either scan and report or scan and quarantine files, it will also report back to the management portal with the results of the scan.<br />
<br />
=====Hardware Inventory=====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/InventoryUpdate.swf.html Video Tutorial]<br />
<br />
The hardware inventory task will execute the same task as the fog.reginput client side task. Since the host is already registered, all it will do is update the computers inventory and restart. It is visioned that this task could be run on a regular interval on a group of all computers in your network, or some sub group of computers in your network. Then on the next reboot of those computers an inventory would be performed.<br />
<br />
==== Scheduling ==== <br />
<br />
As of version 0.27 of FOG, select tasks can be scheduled using a static date/time combination or using a cron style repetitive task scheduling. Task scheduling can be performed on either single hosts, or on groups of computers. One thing to note about task scheduling that isn't intuitive is that it '''requires an image to be associated with the host, even for non-image based tasks!''' The reason for this is because tasks are only run on the master storage node associated with that host, and the only way to tie a storage node to a host is via an image. We did this to prevent multiple storage nodes to try running the same task for a specific host. <br />
<br />
===== Single Execution Scheduling =====<br />
<br />
Single task execution will run a task at a single date and time, then the task will be discarded. To scheduled a single execution task, you would go to the tasks section of fog, then select the host or group you would like to schedule the task, then select the task you would like to schedule. You will then be presented with the screen show below.<br />
<br />
[[Image:Sched.png]]<br />
<br />
To schedule a single execution task, click on white text box below "Schedule Single Task Execution?" and a pop up calendar will load and allow you to select your date and time for the task. Click on the date to close the calendar, then start you task. <br />
<br />
===== Cron Style Task Scheduling =====<br />
<br />
Cron style task execution allows you to do complex repetitive task scheduling. After a cron task executes, it is not removed, as single executions tasks are. Cron style tasks, as the name suggests are similar to the Linux cron task scheduler format. Cron style tasks are created as single execution tasks are, except when presented with scheduling options, select the option "Schedule Cron Style Task Execution". Below that check box are a series of text boxes including:<br />
<br />
min -> Minute [00-59]<br />
hour -> Hour [00-23]<br />
dom -> Day of Month [01-31]<br />
month -> Month [01-12]<br />
dow -> Day of Week [01-07] (Sunday ==> 0, Saturday ==> 6)<br />
<br />
To give an example of how this works, if you wanted a capture task to run at '''10:00pm everyday''' you would enter the following:<br />
<br />
0 22 * * *<br />
<br />
This basically says run the task a '''0''' minutes into the hour, on the '''22nd hour (10:00pm)''', on '''every day of the month''', on '''every month of the year''', on '''every day of the week'''.<br />
<br />
To take this example further, lets say you only wanted to capture the image '''every other day''', we could do this by adding:<br />
<br />
0 22 */2 * *<br />
<br />
The '''*/2''' now tells the scheduler to only run on '''even days of the month'''. <br />
<br />
We could even ask the scheduler to only do a backup on '''even weekdays''' by adding:<br />
<br />
0 22 */2 * 1-5<br />
<br />
The 1-5 we just added says only run on days 1 through 5, which relate to Monday - Friday.<br />
<br />
Now we will ask the scheduler to only backup in the month of February.<br />
<br />
0 22 */2 2 1-5<br />
<br />
Another basic example could be if you wanted to run an inventory update on the first of every month you could use:<br />
<br />
30 1 1 * *<br />
<br />
This task would then run at '''1:30''' on the '''1st of every month'''.<br />
<br />
<br />
The FOG scheduler doesn't support 100% of the operations that cron supports, below are the operations that are supported:<br />
<br />
4 - Listing a static number<br />
4,5,6,7 - Listing a group of numbers<br />
4-7 - ranges of numbers <br />
4-7,10 - ranges and lists<br />
*/5 - * divided by a number<br />
* - Wildcard<br />
<br />
For more information on cron please see http://en.wikipedia.org/wiki/Cron<br />
<br />
=== Printers ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher.<br />
<br />
==== Known Issues ====<br />
<br />
Setting of the default printer will only work if the fog tray icon is running.<br />
<br />
==== Overview ====<br />
<br />
The printers section of FOG allows you to create printer definitions that you can later associate with hosts. The FOG service looks at these associations and during service it will attempt to install any printers listed. This service has three settings which define how the printers are managed, printer management can be set to:<br />
<br />
<ul><br />
<li>No Printer Management</li><br />
<li>Add Only</li><br />
<li>Add and Remove</li><br />
</ul><br />
<br />
All hosts default to '''No Printer Management''' which means that the FOG service does nothing to the hosts printers. '''Add Only''' does as the name implies, and will only add printers to the host machine, it will not remove any existing printers that may be installed. '''Add and Remove''' will take full control of the hosts printing system and only allow for the printers that are specified by the FOG management console to exist on the host. <br />
<br />
==== Adding New Printers ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf Video Tutorial]<br />
<br />
In order for the printer to be added to the host computer, the printer drivers must be stored in a public area, or included on the host computer. This public area can be a Novell Network share where public has read-only access, a Windows share that is public read-only to everyone, or a Samba share (possibly residing on the FOG server) that is public read-only to everyone. This share must be accessible via a UNC path as the service may attempt to install the printers before drive mapping occurs. In this share the printer drives and .inf file must exist. FOG supports install IP based (Jet-Direct) printers, public access NDS printers, Local printers, windows share based printers, (and we think, but could use a confirmation as it hasn't been tested) AD based printers. <br />
<br />
If you wish to see what printers are included with Windows XP, navigate to c:\windows\inf\ntprint.inf. Open this file with a text editor and you will be able to install all the printers listed using the ntprint.inf file. <br />
<br />
To create a new printer definition click on the Printer icon on the system menu bar. Then on the left hand menu, click on '''Add New Printer'''. The form you are presented with will require you to enter:<br />
<br />
<ul><br />
<li>'''Printer Model''' - This must match the name in the INF file.</li><br />
<li>'''Printer Alias''' - This can be anything you wish and it is what the end user will see.</li><br />
<li>'''Printer Port''' - This is something like '''LPT1:''', or '''IP_1.1.1.2'''.</li><br />
<li>'''Printer INF File''' - This is the path to the INF file for the printer driver.</li><br />
<li>'''Printer IP''' - (optional) This is ip address of an IP based printers only, this can take the form of '''1.2.3.4:9100''' or '''1.2.4.5'''. If the port doesn't exist already, it will create one named ''' IP_x.x.x.x''', where x.x.x.x is the ip address. That is what should be entered in the port field.</li><br />
</ul><br />
<br />
After all the required information is entered, click on the '''Add Printer''' button.<br />
<br />
==== Linking Printers to Hosts ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf.html Video Tutorial]<br />
<br />
Linking printers to hosts can be done from either the hosts section or the groups section. In the hosts section find the host you would like to add a printer to, click on the edit button associated with that host. In the host menu, click on the '''Printers''' button. First select how you would like the host to be managemed, either '''No Printer Management''', '''Add Only''', or '''Add and Remove'''. Then in the section below, select the printer you would like to install from the drop down list and click on the '''Update''' button.<br />
<br />
==== Creating a Samba Based Printer Store on FOG ====<br />
<br />
If you do not have a public sever where you can store your printer drivers for the FOG Printer Manager, then it is very easy to set one up on the FOG server using Samba, so all your Windows Clients will be able to connect.<br />
<br />
[[Creating a Samba Based Printer Store on FOG]]<br />
<br />
=== The FOG Client Service ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Client Service is a Windows Service that is intended to be installed on the client computers during the image creation process. The FOG service communicates with the FOG server to provide certain service to the client computers including:<br />
<br />
<br />
*Auto Log Off (0.16)<br />
*Hostname Changes<br />
*Active Directory Integration<br />
*Directory Cleaner (0.16)<br />
*Display Manager (0.16)<br />
*Green FOG (0.16)<br />
*Host registration<br />
*Task Restarting<br />
*Snapin Installation<br />
*User Tracker<br />
*Printer Manager<br />
*User Cleanup (0.16)<br />
*Client Updater<br />
*User Tracker<br />
<br />
==== Module specific configuration settings ====<br />
<br />
The FOG Client Service is very modular in nature, which means you can install portions of the services provided, and leave off others. This also means that it is very easy to create new sub services if you know a little C#. All configuration data is held in a local INI file. Which is typically stored in <br />
<br />
c:\program files\fog\etc\config.ini<br />
<br />
This file holds, in the general section:<br />
<br />
<ul><br />
<li>FOG Server IP address</li><br />
<li>FOG Service installation root</li><br />
<li>FOG Service working directory</li><br />
<li>FOG Log file path</li><br />
<li>Flag indicating if GUI messages should be displayed</li><br />
<li>The max log file size</li><br />
</ul><br />
<br />
==== Installation ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/FogServiceInstall.swf.html Video Tutorial]<br />
<br />
The FOG service should be installed on the computer to be imaged before capturing the image to the FOG Server. <br />
<br />
The FOG service is located in the '''FOG Service/bin''' directory or if the FOG server is already installed it can be downloaded from:<br />
<br />
http://[serverip]/fog/client/<br />
<br />
Double-click on the '''setup.exe''' to start the installation wizard. At the end of the wizard you will need to enter the IP address or hostname of your FOG server.<br />
<br />
[[Image:fogservice.jpg]]<br />
<br />
Then restart the computer, if you don't restart the computer you will have issues with the service GUI appearing correctly.<br />
<br />
===== Quiet Installation =====<br />
<br />
As of version 0.29 and higher, the FOG client now supports a quiet installation mode. This can help automate deployments, by allowing the command to be run without user interaction from batch files. To do this the setup.exe file must be run from the command line with the arguments '''fog-defaults=true /qb'''.<br />
<br />
So the full command would be:<br />
<br />
setup.exe fog-defaults=true /qb<br />
<br />
==== Functions and Operation ====<br />
<br />
=====Auto Log Out=====<br />
<br />
Added in Version 0.16<br />
<br />
This module of the FOG Service will log a user off of a client pc after X minutes of inactivity. This module will display a screen saver-like GUI after 3/4 of the inactive time is up. So if the time out value is 40 minutes, the GUI will be displayed at 30 minutes of inactivity. When the time is up, the client computer will reboot. This service module can be configured via the management portal via:<br />
<br />
FOG Service Configuration -> Auto Log Out<br />
<br />
To enable the module globally, place a check in the box next to '''Auto Log Out Enabled?'''. The time to auto log off can changed globally via '''Default log out time:''' The minimum recommended value for this setting is 4 minutes. <br />
<br />
The background image for the auto log off module can be modified via:<br />
<br />
Other Information -> FOG Settings<br />
<br />
The settings can be changed by modifying the value for '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE'''. This settings will accept a jpg file that is local to the client computer like: <br />
<br />
c:\images\image.jpg<br />
<br />
This setting will also accept files located on a web server such as:<br />
<br />
http://www.somedomain.com/image.jpg<br />
<br />
Provided with FOG is a simple php script that will display a random images that is located on the FOG server. To use this option set '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE''' to <br />
<br />
http://x.x.x.x/fog/public/randomimage.php<br />
<br />
Then simply put the images you would like to use in the following directory on the fog server:<br />
<br />
/var/www/html/fog/public/imagepool<br />
<br />
Images used for the auto log off module must be in jpg format, and must be 300px by 300px.<br />
<br />
=====Hostname Changer=====<br />
<br />
This module of the FOG Service is used to change the hostname of the client computer and to allow the client to (optionally) join a Active Directory Domain after imaging. This process only runs shortly after service startup, which means typically only when you start your computer. The service communicates with the FOG server over port 80 and determines the hostname that is present in the FOG database for the host. The hosts are matched to the FOG database by their MAC addresses. If the hostnames are found to be different, the client changes the computers hostname and restart the computer.<br />
<br />
The config.ini file contains configuration options for this module. <br />
<br />
netdompath=<br />
<br />
Allows you to set the path to the netdom.exe file. In some cases the file does not exist on the system. It can be downloaded from: [http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=de Microsoft Download Center]<br />
<br />
=====Host Register=====<br />
<br />
As of version 0.29, this module will only add additional mac address to a host that is already registered, and add them to the pending mac address table, where they need to be approved in the FOG UI.<br />
<br />
=====Task Reboot=====<br />
<br />
This module periodically checks in with the FOG server to see if the client has an imaging task assigned to it. If a task is found AND no one is logged into the workstation, then the client will restart and join the task.<br />
<br />
The config.ini file contains configuration options for this module. As of version 0.13 of FOG you can change:<br />
<br />
forcerestart=0<br />
<br />
to<br />
<br />
forcerestart=1<br />
<br />
This will make the computer restart if a task is found, regardless of whether a user is logged into the computer.<br />
<br />
You can change how often the service will check in with the server by changing:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins.<br />
<br />
=====Directory Cleaner=====<br />
<br />
Added in version 0.16<br />
<br />
This module will clean out (delete) the contents of a directory on user log off. This useful when you don't want any settings cached between users. This module will only delete the contents of a directory and not the root directory itself, so if you specify '''c:\trash''', the service will remove all files and folders located within c:\trash but leave the folder c:\trash.<br />
<br />
=====Display Manager=====<br />
<br />
Added in version 0.16<br />
<br />
This module is used to restore screen resolution between clients. This will restore a fixed resolution and refresh rate when a user logs into a computer.<br />
<br />
=====Green FOG=====<br />
<br />
Added in version 0.16<br />
<br />
This module will simply shutdown/restart the client computer at a fixed schedule if no user is logged in. The schedule can be defined via the management portal. <br />
<br />
=====Snapin Client=====<br />
<br />
This module periodically checks in with the FOG server to see is the client has an snapin set to be deployed to it. If a snapin is found AND no imaging task is associated with the client, then the client will download the snapin and install it in the background.<br />
<br />
The configuration file contains settings for this module including:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins. It is important to note that currently the fog client will wait 5 minutes when first connected / established before it starts checking and installing any snapins from the server.<br />
<br />
=====User Tracker=====<br />
<br />
This module attempts to track user access to the host computer by the Windows user name. It attempts to track logins and logoffs as well as well as the state of the computer at service startup. The service will even attempt to track users when they are not on the network by writing all entries to a journal file, then replying the journal the next time the client is on the network.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====User Cleanup=====<br />
<br />
This module will remove all users not white listed in management portal on log off. This module is useful when using services like dynamic local user. All entries in the management white list are treated as prefixes to usernames, which means that they will white list all users that start with whatever was entered in the management front end. For example, if you enter '''admin''' in the management white list, then users '''admin''', and '''administrator''' will NOT be removed from the computer.<br />
<br />
=====Printer Manager=====<br />
<br />
This module checks on service startup to see what printers should be installed/removed from the client PC.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====Client Updater=====<br />
<br />
This module waits (randomly) between 60 and 500 seconds after service startup to check the local fog server for client updates, and if any are found the service will download and install them. Updates will NOT take effect until after the service is restarted.<br />
<br />
There are no configuration settings for this module.<br />
<br />
==== Keeping Clients up to date ====<br />
<br />
===== Overview =====<br />
<br />
As of version 0.12 of FOG, we have included a client updater module. This module is no different from any of the other sub service modules. This service waits anywhere between 60 and 500 seconds after the FOG service starts up, and then attempts to check with the server for newer FOG service modules. If new modules are found the client will download them, and they will be active on the NEXT service startup. These modules are controlled from the FOG Management Console. <br />
<br />
Only certain modules can be updated, only those that are a sub class of AbstractFOGService. This means you should '''NEVER''' attempt to update the FOGService executable (FOGService.exe file), or the AbstractFOGService.dll file. It is recommended that you not update the ClientUpdater.dll, because if the ClientUpdater.dll file becomes corrupt or not functional, your clients will not be able to update from that point on. Below are a list of the .dll files that can be updated.<br />
<br />
<ul><br />
<li>UserTracker.dll</li><br />
<li>TaskReboot.dll</li><br />
<li>SnapinClient.dll</li><br />
<li>PrinterManager.dll</li><br />
<li>HostRegister.dll</li><br />
<li>HostnameChange.dll</li><br />
<li>GUIWatcher.dll</li><br />
<li>ClientUpdater.dll</li><br />
<li>config.ini</li><br />
</ul><br />
<br />
Care must also be taken when updating the config.ini file, if the IP address is incorrect or the syntax of the file is incorrect, it could leave the FOG service crippled on the client computers.<br />
<br />
===== Posting Updates =====<br />
<br />
To add new modules that can be pushed down to clients, first install a client with the new service or new module and confirm that it works as you would like. Log into the FOG management console, then go to the Infomation/Misc section (the little "i" icon). Click on '''Client Updater''' on the left-hand menu. Now click on the browse button to select the module (.dll) file you would like to post, then click on the capture button. After capturing the file should appear in the table above. If you are adding a new module, you will probably want to capture a new config.ini file to include new configuration settings required by that new module.<br />
<br />
==== FOG Tray ====<br />
<br />
The FOG Tray is a Windows application that runs on user login that docks in the system tray. The FOG Tray, like the FOG service, is very modular in nature. New modules can be dropped in the FOG tray directory and on next load they will be loaded. This tray icon has the ability to communicate with the FOG service, this allows FOG more interactivity with the end-user. <br />
<br />
What happens is that when the FOG service's printer manager module gets a request to set a default printer, the service attempts to contact the FOG Tray. If communication is established, then the service will ask the tray to set the default printer. On the other hand the end user can right click on the "F" icon in the system tray, then select printers, then update my printers. What this will do is attempt to send a request from the FOG Tray to the FOG Service and have the service check for printer updates (new printers or printers to be removed). If one is found the service will install any new printers assigned in the FOG Management portal.<br />
<br />
This application is in its very early stages and currently doesn't have a lot of functionality. It is currently only used to allow end users to update their printers and to allow the setting of default printers (from the FOG service). Our vision for the FOG Tray is to add modules that would allow users to install printers that are published as public (via the management portal) without the printer being directly assigned to their host. We would also like to do the same thing for snapins where some of your snapins could be defined as public where anyone could install them on their computer.<br />
<br />
==== Troubleshooting ====<br />
<br />
If you have problems with the FOG Service, please refer to the log file that is located at:<br />
<br />
c:\fog.log<br />
<br />
If the PXE boot does not work<br />
<br />
If booting from the fog server through pxe comes up with an error file not found, edit /etc/default/tftpd-hpa<br />
<br />
Change TFTP_DIRECTORY to<br />
<br />
TFTP_DIRECTORY="/tftpboot"<br />
Then<br />
<br />
/etc/init.d/tftpd-hpa restart<br />
<br />
=== Snap-ins ===<br />
<br />
==== Overview ====<br />
<br />
*The FOG Service has the ability to install snapins to the clients. Snapins can be anything from whole applications like Microsoft Office to registry keys or desktop icons. Snapins can even be used to uninstall applications or remove unwanted files. For the end use's point of view, they will not even noticed that a snapin is being installed until it is complete. At this point a message will notify them that a new application has been installed on their computer. Snapins can be in MSI (0.17) or EXE formats, and can be created with any snapin creation tool like InstallRite or already packaged MSI files (0.17). You can also push commands to the computer that include .vbs scripts / .cmd (commands) and .bat (batch scripts).<br />
<br />
*Snapin return codes are specified by the program that's being installed.<br />
<br />
<br />
==== Creating a Snapin / Overview ====<br />
<br />
FOG doesn't provide a tool to create snapins, but instead allows you to push files and execute them on the remote computers. It is highly recommended that you push the actual installer to the computer instead of using a program such as InstallRite. <br />
<br />
If you have never silently installed software to a computer, or created an answer file for a program please look at the website Appdeploy [http://www.appdeploy.com/articles/ Link] This website has an trove of information on how to push software to a computer remotely.<br />
<br />
===== Creating a Snapin for larger applications with SFX Maker =====<br />
<br />
Some larger applications such as Microsoft Office and Adobe Products (Acrobat / Creative Suite) require multiple files to install properly. If you have an application that is not a single .exe please use SFX Maker. This tool is free for non commercial use, and most programs fall under the GPL. [http://www.isoft-online.com/ SFX Maker's Website]<br />
<br />
For instructions on how to use this software please see the youtube videos below.<br />
<br />
[http://www.youtube.com/watch?v=ZSMJLnRjn94 Office 2003 Install]<br />
[http://www.youtube.com/watch?v=Qzc1Q9NW_cE Office 2007 Install]<br />
<br />
SFX Maker takes an entire folder and encapsulates it or "folds" it into a single .exe which then "unfolds" to its original state and launches a file or command.<br />
<br />
===== Creating a Snapin with InstallRite =====<br />
<br />
If for some reason you do wish to use Installrite please be aware it comes with issues and limitations (not compatible on all windows operating systems / can cause issues with the computer it is pushed to). Below is an example of how to build a package with that software<br />
<br />
In this example we will use Epsilon Squared's InstallRite which can be downloaded from http://www.epsilonsquared.com/installrite.htm. This application will package up your snapin as an exe file which will be uploaded to the FOG server. <br />
<br />
<ol><br />
<li>To run InstallRite navigate to c:\program files\Epsilon Squared\InstallRite\InstallRite.exe</li><br />
<li>Click on "Install new software and create an InstallKit"</li><br />
<li>On the Configure screen, click Next.</li><br />
<li>On the Snapshot screen click next to create a new system snapshot.</li><br />
<li>On the next screen,click the browse button to select the application you wish to install, then click next.</li><br />
<li>When installation is complete InstallRite will come into focus, click the next button. InstallRite will scan your system again.</li><br />
<li>Enter a name for your snapin.</li><br />
<li>Click "Build Install Kit"</li><br />
<li>Select "Quiet Installation Mode", Never reboot, even if needed, and "Never prompt the user and only overwrite older files"</li><br />
<li>Click OK and it will build your snapin.</li><br />
</ol><br />
<br />
==== Preparing the FOG Server ====<br />
<br />
If your snapin is larger than 2MB you will need to make two changes to the FOG server to allow uploads of larger than 2MB.<br />
<br />
See also: [[Troubleshoot Web Interface]]<br />
<br />
===== Fedora =====<br />
<br />
<br />
#On the FOG Server click on Applications -> Accessories -> Text Editor.<br />
#Select Open and navigate to "/etc/php.ini"<br />
#Change UPLOAD_MAX_FILESIZE to 1900MB (On a 32Bit OS don't set this value above 2GB)<br />
#Change POST_MAX_SIZE to the same value.<br />
#Save and close the text editor.<br />
#Click on Applications ->System Tools -> Terminal and type "service httpd restart"<br />
<br />
===== Ubuntu =====<br />
<br />
#sudo gedit /etc/php5/apache2/php.ini<br />
#Change <br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
#Save Changes<br />
#sudo /etc/init.d/apache2 restart<br />
<br />
<br />
===== VMWare =====<br />
<br />
#sudo vim /etc/php5/apache2/php.ini<br />
#Edit the following lines in the document (read below for assistance with working in VIM)<br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
<br />
<br />
*To edit content in vim you will need to press the '''"I"''' key on your keyboard to enter input mode.<br />
*Hitting the '''Escape''' key will bring you out of input mode.<br />
*Once out of input mode type ''':w''' and then '''enter''' to save the file<br />
*Restart FOG once the file has been saved<br />
<br />
==== Uploading the Snapin ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/CreateSnapin.swf.html Video Tutorial]<br />
<br />
<ol><br />
<li>In the FOG Management Portal click on the Snapin Icon (Puzzle Pieces).</li><br />
<li>On the left-hand menu click on the New Snapin Button.</li><br />
<li>Enter a Snapin Name and Description.</li><br />
<li>Browse to the snapin file you wish to upload.</li><br />
<li>If you want the computer to restart after the snapin is installed click on the "Reboot after install"</li><br />
<li>Click "Add"</li><br />
</ol><br />
<br />
<br />
<br />
As of version 0.17, fog supports using typical msi files as snapin files.<br />
<br />
If the snapin file is a msi file you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of msiexec.exe (ie: c:\windows\system32\msiexec.exe)</li><br />
<li>Set '''Snapin Run With Arguments:''' to '''/i'''</li><br />
<li>Set '''Snapin Arguments:''' to '''/qn'''</li><br />
</ol><br />
<br />
If the snapin file is a .vb script you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of cscript.exe (ie: c:\windows\system32\cscript.exe)</li><br />
</ol><br />
<br />
<br />
<br />
'''Documentation on list of support snapin's and command line arguments''' [[http://www.fogproject.org/wiki/index.php?title=Supported_Snapin%27s_and_Command_Line_Switches]] There are MANY more supported applications that can be installed via command line arguments. You might have better luck installing them directly via .EXE / .MSI / or scripting them via .VBS . For more info on this consult the forums --[[User:Ssx4life|Ssx4life]] 09:04, 8 October 2009 (MST)<br />
<br />
==== Linking the Snapin to Hosts ====<br />
<br />
In order for a snapin to be deployed it must be linked with a host. To do this perform the following:<br />
<br />
<ol><br />
<li>In the FOG Management Portal, click on the Hosts Icon.</li><br />
<li>Search for and select a host and click on the edit button.</li><br />
<li>Scroll down to the snapin section.</li><br />
<li>Select the snapin you just created from the drop-down box and click the "Add Snapin" button.</li><br />
</ol><br />
<br />
The next time you image the computer the FOG Service will attempt to install that snapin. If you have problems, please see the fog log file located at c:\fog.log on the client PC.<br />
<br />
=== Client Side Tasks ===<br />
<br />
==== FOG Version ====<br />
<br />
Applies to version 0.12 or higher.<br />
<br />
==== Overview ====<br />
<br />
FOG attempts to keep management centralized, but in an attempt to make deploying machines as easy as possible FOG has added a few basic client side tasks. These tasks can be run from the client computer during the PXE boot process. When the client boots and the FOG banner is displayed the pxe client will display a prompt like '''boot:''' or something similar. At this point you have 3 seconds to start typing one of the following commands. <br />
<br />
<ul><br />
<li>fog.memtest</li><br />
<li>fog.reg</li><br />
<li>fog.reginput</li><br />
</ul><br />
<br />
==== fog.memtest ====<br />
<br />
This command will run the memtest86+ on the client computer. <br />
<br />
==== fog.reg ====<br />
<br />
This command will run the basic host registration and inventory process without any user input. It will register any new/unregistered hosts with the FOG server and pull a basic hardware inventory from them. The hostname of the computer will be the same as the MAC address without the ":".<br />
<br />
If a host is already registered, then only an inventory will be performed.<br />
<br />
==== fog.reginput ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/RegImage.swf.html View Host Registration Video]<br />
<br />
This command will run the full host registration process with user input, inventory and give the option to push down an image, all at the same time. During this process the user registering the host will be prompted for the computer host name, ip address, operating system ID, image ID, Primary User of the computer, asset tag 1, and asset tag 2. <br />
<br />
If a valid hostname, os id, and image id are given and the option is selected to image the workstation after registration, the host will reboot and an imaging send will began. <br />
<br />
If a host is already registered, then only an inventory will be performed, this prevents end-users from re-registering a machine with a different hostname, etc.<br />
<br />
This tasks was designed for institutions that may get shipments of hundreds of computers that need to be deployed very quickly. They can be unboxed, inventoried, imported into FOG and imaged very quickly. <br />
<br />
===== Operating System ID =====<br />
<br />
As of Version 0.17 of fog, you can now enter '''?''' at the Operating System ID prompt to get a listing of the valid operating system id values. <br />
<br />
The following are valid values for operating system IDs:<br />
<br />
<ul><br />
<li><b>1</b> - Windows 2000 / Windows XP</li><br />
<li><b>2</b> - Windows Vista</li><br />
<li><b>3</b> - Windows 98</li><br />
<li><b>4</b> - Windows (Other)</li><br />
<li><b>5</b> - Windows 7</li><br />
<li><b>50</b> - Linux</li><br />
<li><b>99</b> - Other</li><br />
</ul><br />
<br />
===== Image ID =====<br />
<br />
Image IDs can be found in the management console, in the Images section. Search for the image, and click on the edit button associated with the image, <br />
the image id will be in the Address/url bar in the format of <b>&imageid=xx</b>.<br />
<br />
As of version 0.17, you can enter '''?''' at the Image ID prompt to get a listing of all your images and their ID numbers.<br />
<br />
=== Active Directory Integration ===<br />
<br />
==== Setup ====<br />
<br />
===== Overview =====<br />
<br />
FOG has the ability to register a host with Active Directory, in a limited sense. Versions of FOG up to and including 0.28 rely on the netdom.exe executable that is provided as part the support tools on the Windows installation media. In order for Active Directory integration to function, your image will need to have the FOG service installed, along with the Windows Support Tools.<br />
<br />
Versions of FOG from (and including) 0.29 have this functionality built in and do NOT require netdom.exe or the support tools to be installed.<br />
<br />
It is also very important that before capturing your image that the computer is NOT a member of any domain.<br />
<br />
===== Security =====<br />
<br />
<font color="red">Note: The below statement applies to older FOG versions (1.2.0 and below). When using FOG 1.3.0 and above in conjunction with the NEW fog client, this step is not needed. See [https://wiki.fogproject.org/wiki/index.php?title=FOG_Client here] for more information.</font><br />
<br />
<br />
'''Important - Please read!'''<br />
<br />
In order to add a computer to a domain, FOG requires a username and password of an account that has rights to the OU where the computer objects are stored in the domain tree. This user account should have rights to join computers to the Domain, as well as sufficient rights to create/manage computer objects. FOG attempts to keep your password secure by encrypting it, but since FOG is open source, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and only need to be done one time. Please see the documentation below.<br />
<br />
===== Preparing the Image =====<br />
<br />
Before capturing an image to FOG that you would like to use with Active Directory, please ensure that the image:<br />
<br />
<ul><br />
<li>is NOT a member of the domain, change the computer membership to workgroup instead.</li><br />
<li>has support tools installed (Not required for FOG versions from 0.29).</li><br />
<li>has the FOG service installed.</li><br />
</ul><br />
<br />
===== FOG Setup =====<br />
<br />
To setup a host to use AD, navigate to the hosts section of the FOG management portal. <br />
<br />
<ol><br />
<li>Search for, and select a host. </li><br />
<li>Click on the Edit button</li><br />
<li>Scroll down to the Active Directory section.</li><br />
<li>Check the box next to Join Domain after image task</li><br />
<li>Enter the domain NETBIOS name (i.e. MYDOMAIN, not mydomain.com).</li><br />
<li>Enter the Organizational Unit where you would like to have the computer stored in AD. Leave if blank for the default. (Must be in LDAP format).</li><br />
<li>Enter the user name that has access to the computer objects. Do not include the domain name if you are running version 1.2 (your mileage may vary with earlier versions). Development version of FOG will accept a name with or without domain ('''username ''OR'' mydomain/username''').</li><br />
<li>Enter the encrypted password. This password must be encrypted with the [[FOGCrypt]] utility. This utility is located in the FOGCrypt folder of the FOG download package. It is a Windows (.NET) command line application.</li><br />
<li>Click Update.</li><br />
</ol><br />
<br />
The next time you image that computer the service will attempt to register the host with the domain information provided. If you have problems please refer to the FOG Service log file located in c:\fog.log<br />
<br />
===== Making AD Integration Easier =====<br />
<br />
As of version 0.20 of FOG, we have made it a bit easier to manage AD settings in FOG, by allowing for default settings for AD. This will allow the easy population of the domain, OU, username, and password. To set this feature up perform the following:<br />
<br />
# Go to '''Other Information''' -> '''FOG Settings'''<br />
# Set your default values for the following:<br />
## FOG_AD_DEFAULT_DOMAINNAME<br />
## FOG_AD_DEFAULT_OU<br />
## FOG_AD_DEFAULT_USER<br />
## FOG_AD_DEFAULT_PASSWORD (MUST BE ENCRYPTED!)<br />
<br />
To test everything out, go to a host that doesn't have anything setup for AD, and click on the edit button for that host. Go to the host menu, and select Active Directory. Click on the '''Join Domain after image task:''' button and all your default values should be populated.<br />
<br />
==== Securing Active Directory Integration ====<br />
<br />
===== Overview =====<br />
<br />
In order to add a computer to a domain, FOG requires a username and password that has rights to the OU where the computer objects are stored in the domain tree. FOG attempts to keep your password secure by encrypting it, but since FOG is open source and the methods used to encrypt the password are open for all to see, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and it only needs to be done one time. <br />
<br />
===== The Development Environment =====<br />
<br />
The hostname change module is written in c#, so in order to recompile it you will need to download Microsoft's Visual Studio Express Edition for C#. This can be downloaded from: <br />
<br />
http://www.microsoft.com/express/vcsharp/<br />
<br />
Install Visual Studio with the standard options.<br />
<br />
===== Getting the Source =====<br />
<br />
After Visual Studio Express is installed now we need to get the source code for the hostname change module. This is part of FOG download/installation package. This package can be downloaded from:<br />
<br />
http://sourceforge.net/project/showfiles.php?group_id=201099 <br />
<br />
Extract this package, then navigate to "FOG Service\src\FOG_HostNameChanger\"<br />
<br />
Double-click on HostNameChange.sln to open the project. <br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > hostnamechanger properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Once the project has opened, on the right-hand panel, in the "Solution Explorer", double-click on MOD_HostNameChanger.cs.<br />
<br />
After do so, you should get the source code to display in the main panel, scroll down to the line:<br />
<br />
private const String PASSKEY = "FOG-OpenSource-Imaging"; <br />
<br />
Change '''FOG-OpenSource-Imaging''' to anything you like, just remember what you change it to, as you will need it later.<br />
<br />
Then click File -> Save All.<br />
<br />
Then click Build -> Build Solution.<br />
<br />
This will recompile the hostname change module with your unique key.<br />
<br />
Now navigate to "FOG Service\src\FOG_HostNameChanger\bin\Release"<br />
<br />
Copy only the file HostnameChange.dll to "FOG Service\src\FOG Service\bin\Release" (overwrite existing file).<br />
<br />
Navigate to "FOG Service\src\FOG Service\"<br />
<br />
Open the solution by double-clicking "FogService.sln"<br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > FOGService properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Change the build configuration from debug to release<br />
<br />
Right click on "FOG Service Install" and click "Build"<br />
<br />
Navigate to "FOG Service\src\FOG Service Installer\Release"<br />
<br />
Select the 2 files, right-click -> Send To -> Compressed Folder<br />
<br />
Copy the .zip file to your FOG Server "/var/www/html/fog/client". Overwrite the existing file.<br />
<br />
===== Encrypting Your Password =====<br />
<br />
Now that we have changed the passkey, we need you update the FOGCrypt ini file to use this new passkey. <br />
<br />
Navigate to the FOGCrypt\etc directory from the FOG download package.<br />
<br />
Open the config.ini file and change the passkey value to your new passkey, then save the file.<br />
<br />
Now open a command window and navigate using the cd command to the FOGCrypt directory.<br />
<br />
Type:<br />
<br />
FOGCrypt [password]<br />
<br />
Where [password] is the AD user's password that has rights to the Computers section of the AD tree.<br />
<br />
The output from this command is what you will enter in the FOG management portal.<br />
<br />
<br />
=== FOG Reports ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher. <br />
<br />
==== Overview ====<br />
<br />
FOG Reports allow you to export data from FOG in two major formats including CSV, and PDF.<br />
<br />
#'''Snapin Log''' - This report will report on snapin installation history. <br />
#'''Imaging Log''' - This report will report on images deployed to hosts.<br />
#'''Virus History''' - This report lists any viruses that were found on locate computers. <br />
#'''Inventory''' - This report will report on the inventory information collect for network clients. <br />
#'''Equipment Loan''' - This report can be used for equipment loaned to staff members. <br />
#'''User Login History''' - This report contains information about user logins.<br />
<br />
==== Running Reports ====<br />
<br />
Running a report can be done from the Reports section of FOG, then by picking a report from the left-hand menu.<br />
<br />
==== Importing User Created Reports ====<br />
<br />
The reporting section of FOG allows for the end user to create and upload custom reports into FOG. A FOG report is a simple php script that is processed by the server. To import a report simply click on the '''Upload a Report''' button in the reports section, select the report then click on the upload button. The report will then show up on the left-hand menu. <br />
<br />
Please be cautious when uploading reports from an unknown source as the writer of the report has full access to the FOG system and database! Make sure your sources are trustworthy before importing a report!<br />
<br />
==== Creating Custom Report ====<br />
<br />
Custom reports are simple php scripts in FOG. Custom reports can be created based on the following template:<br />
<br />
[http://freeghost.sf.net/other/ReportTemplate.tar.gz Report Template]<br />
<br />
<br />
<br />
=== Plugins ===<br />
*[[Plugins]] give FOG extra functionality wanted for some users but not all.<br />
<br />
=== Other Settings ===<br />
<br />
==== [[Boot Image Key Map]] ====<br />
<br />
==== FOG Client Kernel ====<br />
<br />
===== Overview =====<br />
<br />
In FOG, there aren't really drivers you need to find and download for your clients to work, this is because we ship a Linux kernel that has the majority of hardware device built into it. What this means is if you have a device that doesn't work with FOG you need to either build a new kernel yourself or try a newer kernel that has been released via our kernel updater.<br />
<br />
<br />
===== Kernel Types =====<br />
<br />
We currently build two "lines" of kernels, one called KS or KitchenSink. This kernel tries to include drivers for as many devices as possible, sometimes as the cost of performance, and this is the kernel that we ship with FOG by default. The other "line" is the PS kernel or the Peter Sykes kernel, which is a based on a config submitted by a user. This kernel line tries to be faster, but may not include as many drivers as the KS kernel. <br />
<br />
===== Updating the Kernel =====<br />
<br />
It is possible to update your client kernel from within the UI of FOG. To do this perform the following steps:<br />
<br />
#Log into the FOG Management UI.<br />
#Go to '''Other Information'''<br />
#Select '''Kernel Updates'''<br />
#Select the Kernel you would like to download, typically the newest kernels are on the top of the list.<br />
#Click the download icon<br />
#Select a file name for your kernel, to make it the default kernel leave the name as '''bzImage'''<br />
#Click the '''Next''' Button<br />
<br />
=== Mobile Management Interface ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Mobile web interface is a very basic, stripped down interface for FOG. It is designed to be given to lower level technicians using low powered, mobile devices such as iPod touches, iPhone, PDAs, and internet tablets. The idea behind this interface is to make it easy for techs to re-image a computer while making the rounds at a site.<br />
<br />
==== Using the mobile Interface ====<br />
<br />
The mobile interface can be access via:<br />
<br />
http://x.x.x.x/fog/mobile<br />
<br />
The portal requires a valid user name in password, which can be created via the FOG portal. <br />
<br />
[[Image:Ipod login.JPG]]<br />
<br />
Once logged into the portal, users can search for hosts and image them, and view/cancel active tasks. <br />
<br />
[[Image:Ipod results.JPG]]<br />
<br />
[[Image:Ipod active.JPG]]<br />
<br />
They can not change image associations, nor modify any properties of a host.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Managing_FOG&diff=12076Managing FOG2016-07-09T00:40:21Z<p>Tom-elliott.7271: /* Method 1: Adding a new host via Full Registration */</p>
<hr />
<div>== Managing FOG ==<br />
<br />
=== Dashboard ===<br />
<br />
==== Overview ====<br />
<br />
[[File:Dashboard.png]]<br />
<br />
*The FOG dashboard is the first page you are presented with after login. This page just gives you an overview of what is happening on your FOG server.<br />
<br />
==== System Overview ====<br />
<br />
*The system overview box is the the top left hand box on this page. The information presented in this box is the current user, the server IP addresse or hostnames for your web server, tftp server and storage server (which can all be different). This section also gives you the system uptime or how long the system has been running without restart, the number of users logged into the Linux box, and lastly the system load.<br />
<br />
==== System Activity ====<br />
*The system activity box is in the top row, the middle box. This section shows the unicast queue, or the number of unicast deploys that are currently in progress. The queue size can change and is based on the the Storage Group(s). Each storage node has a setting ''Max Clients'' making this the maximum number of hosts that this node can image to. If there are 2 nodes with a max of 10 each then your maximum queue amount is 20. However, remember the more you increase the ''Max Clients'' the slower each particular host will be to deploy the image.<br />
*This means that after 20 hosts are receiving images (at once) the 21st will wait for one of the hosts in progress to complete before starting. The reason this was created was so that you could queue up 100 machines with different images (all unicast) and still keep the system functional. We have heard of this queue being used to re-image an entire building of computers ( ~ 1000+ ) overnight. This section updates in real time.<br />
*It will display all the queued, running, etc... tasks and updates at the same interval as the Bandwidth graph. Also, SVN installations (and later future releases) are able to edit which type of tasks get counted towards the "queue". <br />
*This edit can be performed by going to '''FOG Configuration'''[[file:Config.png]]--> '''FOG Settings'''--> '''General Settings''' --> '''FOG_USED_TASKS'''. <br />
*The text field is numeric values (so you'll need to know which task id's are which type. This text field is a CSV setup. If you type (1,2,3,4,5) it will display all tasks of Deploy, Capture, Debug, Memtest, and Testdisk as queued/active depending on their current state. The exception to this rule, is Task Type ID 8 (multicast) in which case it takes the Jobs, not each individual host task, as a queued slot.<br />
<br />
==== Disk Information ====<br />
<br />
*The disk information box is the top, right hand section of the dashboard page. This is a semi-realtime display of the storage remaining on the storage server.<br />
*There is also a drop-down box that can be changed to your storage nodes to monitor their Disk Information.<br />
*If you get an error in this box, please see [[Dashboard Error: Permission denied...]]<br />
<br />
==== 30 Day Imaging History ====<br />
<br />
*This image shows your imaging trends for the past 30 days<br />
<br />
==== Menu Bar ====<br />
<br />
[[Image:FogMenu.jpeg]]<br />
<br />
This menu appears at the top of every page on Fog's web UI. The icons are, from left to right:<br />
<br />
[[Image:Home.png]]'''Home/Dashboard''' - This is the home screen of the FOG management portal.<br />
<br />
[[Image:Users.png]]'''[[Managing_FOG#Users | User Management]]''' - Individual administrators of the FOG resources.<br />
<br />
[[Image:Hosts.png]]'''[[Managing_FOG#Hosts | Host Management]]''' - This section houses the hosts, which are the pcs to be imaged or to extract images from.<br />
<br />
[[Image:Groups.png]]'''[[Managing_FOG#Groups | Group Management]]''' - This section houses groups, which are similar PCS’ that need tasks done en-masse.<br />
<br />
[[Image:Images.png]]'''[[Managing_FOG#Images | Image Management]]''' - This section allows you to manage the image files stored on the FOG server.<br />
<br />
[[Image:Storage.png]]'''[[Managing_FOG#Storage_Management | Storage Management]]''' - This section allows you to add/remove storage nodes from the FOG system.<br />
<br />
[[Image:snapins.png]]'''[[Managing_FOG#Snap-ins | Snap-in Management]]''' - This section provides ways to automate various post-imaging tasks, not covered in this document<br />
<br />
[[Image:Printers.png]]'''[[Managing_FOG#Printers | Printer Management]]'''' - This section allows for management of printers, allowing you create printer objects that can later be assigned to hosts or groups.<br />
<br />
[[Image:Services.png]]'''Service Configuration'''' - This section allows you to control how the ''client'' service functions.<br />
<br />
[[Image:Tasks.png]]'''[[Managing_FOG#Tasks | Task Management]]''' - This section allow you to perform imaging tasks such as acquiring or deploying images.<br />
<br />
[[Image:Reports.png]]'''[[Managing_FOG#FOG_Reports | Report Management]]''' - Reports let you pull information from the FOG database either as HTML, pdf, or csv.<br />
<br />
[[Image:config.png]]'''Fog Configuration''' - The section has the rest of the settings that don't fit anywhere else like the kernel updater, client service updater, iPXE edits, MAC address list, Log viewer, '''FOG Settings'''.<br />
<br />
[[Image:Plugins.png]]'''[[Managing_FOG#Plugins | Plugins]]''' - Plugins add more functionality to FOG. Must be enabled in ''Fog Configuration''<br />
<br />
[[Image:Logoff.png]]'''Logoff''' - Click this to log off of the Fog web UI.<br />
<br />
<br />
----<br />
<br />
=== Hosts ===<br />
[[File:All_Hosts.png]]<br />
*[http://freeghost.sourceforge.net/videotutorials/hostinfo.html Video Tutorial] (old version but valid instructions)<br />
*A host in FOG is typically a computer, but it can be any network device. Hosts are used to identify a computer on the network and are used to manage the device.<br />
<br />
==== Adding a new host ====<br />
<br />
===== Method 1: Adding a new host via Full Registration =====<br />
<br />
*This is the preferred method, and maybe the easiest method for getting a host into the FOG database, but it requires you to visit the host. When at the client computer, during the boot up process when you see the PXE/iPXE boot menu select '''Perform Full Host Registration and Inventory'''. During this phase you will be prompted for information about the host like hostname, operation system, image, groups, Product Key, and other information. If you enter a valid operating system and image id, you will be asked to Image Now. If desired, you can set the task and it will deploy the image on the next network boot. <br />
*After the requested information is entered, FOG will pull a quick hardware inventory the client.<br />
*This method of registration will register the mac address(primary wired only), serial number(if available in BIOS), Make/Model, and other Hardware information with the FOG server.<br />
*For more information on these commands please see: [[FOGUserGuide#FOG_Tasks | Client Side Tasks]]<br />
<br />
===== Method 2: Adding a new host via Quick Registration =====<br />
<br />
*Quick registration is very much like the Full host registration, with the exception that it will not prompt you for any input, nor give you the option to image the computer directly from the registration screen. When the host is added to the FOG server, it will be named with the hosts primary mac address. This method is great for adding a lab of 30 computers to FOG quickly and easily.<br />
*This feature is disabled by default, to enable this feature:<br />
#Go to '''FOG Configuration'''[[image:config.png]]<br />
#Select '''FOG Settings'''<br />
#Find section '''FOG Quick Registration'''<br />
#Tick ON '''FOG_QUICKREG_AUTOPOP''' to &#10004;<br />
#Set '''FOG_QUICKREG_IMG_ID''' to the image ID you would like to use for all newly created hosts.<br />
#'''FOG_QUICKREG_OS_ID''' will be auto populated when "Save Changes" is selected. (OS is now associated within the image so no need to select an OS)<br />
#Change '''FOG_QUICKREG_SYS_NAME''' to what you would like to name you new machines, where * will be replaced by a number. If you would like to zero pad numbers you can use '''LAB300-**''' which would result with '''LAB300-03''' or '''LAB300-09'''.<br />
#Set '''FOG_QUICKREG_SYS_NUMBER''' to the first number you would like to use.<br />
*After each registration the computer will automatically image and the '''FOG_QUICKREG_SYS_NUMBER''' will incremented by 1.<br />
<br />
===== Method 3: Manually Adding =====<br />
<br />
*[http://freeghost.sourceforge.net/videotutorials/addimghost.html Video Tutorial]<br />
*Adding a new host can be done in the hosts section of FOG.[[Image:Hosts.png]] Then by clicking on the "Add New Host" button on the left hand menu. At least a hostname and a MAC address must be entered in order to add the host to the FOG database. <br />
<br />
*A host consists of the <span style="color:RED">'''required*'''</span> fields: <br />
<br />
#'''Hostname*''' - A string used for the Windows Hostname of client, this must be less than 15 characters long. <br />
#'''MAC address*''' - This field is used in for for a unique identifier for the host. The string must be separated by : (colon), in the format of 00:11:22:33:44:55. <br />
<br />
*Hosts can also include, but are not required:<br />
<br />
#'''IP address''' - Just your typical IP address, in the typical formation of X.X.X.X or 192.168.1.1.<br />
#'''Description''' - Information for your own reference.<br />
#'''Image Association''' - This field is a drop down box that will allow you select an image object created in the '''Images''' section. <br />
#'''Operating System''' - Drop down box that allow you to select the primary type of operating system running on this host.<br />
#'''Kernel''' - This is only used if you want to overwrite the default kernel used for FOG. Needs to be specified as fog/kernel/mybzImage<br />
#'''Kernel Arguments''' - This allow you to add additional kernel arguments for booting the host (ie: vga=6, or irqpoll). <br />
#'''Primary Disk''' - This option allows you to force a device to use during imaging if fog fails to detect the correct device node.<br />
*This page also allows for configuration of Active Directory integration, but this topic will be covered later. When all settings are added, click on the "Add" button.<br />
<br />
===== Method 4: Importing Host Information =====<br />
<br />
*When getting started with FOG, you need to enter the host information for the devices on your network. We understand this can be a long difficult process, so in order to make this process easier we created a page that allows you to import most of the host information from a CSV file. <br />
*The CSV file that is imported to FOG must be in the following format, and the file should not have a header row. <br />
<pre>MAC Address,Host name,IP Address,Description,OSID,ImageID</pre><br />
*The '''MAC Address''' (<span style="color:RED">'''required*'''</span>) is the NIC's MAC address seperated by ''':''' (colon).<br />
*The '''Host name''' (<span style="color:RED">'''required*'''</span>) is the computer's Host name (must be less than 15 characters, should not include underscores, according to [http://tools.ietf.org/html/rfc952 | Network Working Group ]).<br />
*The '''IP Address''' (<span style="color:Orange">'''Can be left as blank'''</span>)is the computer's IP address (format x.x.x.x). <span style="background-color:Yellow;">''This field is '''NOT''' currently used by FOG''</span><br />
*The ''''Description''' (<span style="color:Orange">'''Can be left as blank'''</span>)is any text description you would like associated with the computer.<br />
*The '''OSID''' (<span style="color:RED">'''required*'''</span>)is the number representing the operating system. It can be found in the table "supportedOS" in the field osID.<br />
*The '''ImageID'''(<span style="color:RED">'''required*'''</span>) is the number representing the images file linked to this image. The image definition must already exist and this number can be found in the table "images" in the field imageID.<br />
*<span style="background-color:Red; color:white;">The file must be saved as a CSV '''without''' a header row.</span><br />
*Sample:<br />
<pre><br />
00:00:02:AF:00:E0:01:0F,adminoff1,10.0.1.150,Main admin office computer,5,14<br />
00:00:02:AF:00:E0:01:04,adminoff2,,admin office 2 computer,5,13<br />
00:00:02:AF:00:E0:01:02,adminoff3,,,5,12<br />
</pre><br />
<br />
====== Importing the File ======<br />
#After the file is prepared and saved, you will need to log into the FOG Management Portal.<br />
#Then click on the Hosts icon [[Image:Hosts.png]].<br />
#On the left-hand menu, click on '''Import Hosts'''.<br />
#Browse for your file, then click "'''Upload CSV'''".<br />
<br />
==== Managing Hosts ====<br />
<br />
===== General =====<br />
<br />
*Once hosts have been added to the FOG database you can modify or delete them. Finding a host which you wish to edit can be done in two ways, the first is by listing all the hosts that exist. This is done by clicking on the "List All Hosts" button. The second way to locate a host is to use the search function. To search for hosts click on the "New Search" button, if you would like to search for all hosts you can enter a "*" or "%". The search function will search in the host's name, description, IP and MAC address. <br />
*Once a host is located, it can be edited by clicking on the edit button or on the Host Name itself. Clicking on the edit button will display all the properties that were shown during host creation with the addition of snapin, printers, active directory, service settings, hardware, virus history, and login information. <br />
*The entire host object can be removed from the FOG system by clicking on the delete option at the bottom of the Host Menu.<br />
<br />
===== Multiple MAC Address Support =====<br />
*When FOG first registers your HOST computer it uses the first connected Ethernet cable and defaults it to the Primary MAC Address. Once the FOG Client is installed and reporting data back to the FOG server it may register other additional MAC addresses, such as wireless and other wired connections. Also, an additional MAC can also be added directly under the Host definition.<br />
*These new MAC Addresses will need to be approved before FOG will take advantage of them.<br />
*#'''Host Management''' [[File:Hosts.png]]--> '''[Selected Host]''' -->''Additional MAC''<br />
*#'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' -->''Approve Pending Addresses''<br />
*'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' At this location you can also ''"Update Current Listings"'' giving updated information on the MAC Addresses and their manufactures, listing it under the Host.<br />
<br />
===== Host Status =====<br />
<br />
*Host Status displays an indicator icon next to the host within the FOG UI showing the status of the machine. This function executes a ping based on the host's name. So in order for this to work you must have an internal DNS server that is tied in with your DHCP server, so that when a DHCP address is given out, the DNS server is notified with the new IP. If that is setup correctly, you must make sure your FOG server is able to ping a host from the command line using:<br />
ping somehostname<br />
*If the server isn't able to ping the client, then the status of the host in the UI with always show as unreachable. If you can ping the client using the FQDN, like<br />
#Replace forproject.org with your domain suffix<br />
ping somehostname.fogproject.org <br />
*Then you will need to adjust the DNS '''Search domains:''' setting on your sever. After making this change you will need to restart the apache server for it to take affect.<br />
*If after this, you still can't ping your clients, the problem may be due to a firewall issue with the clients. In this case, client specific configuration changes might be needed.<br />
*With an increase in Hosts(250+) this "ping" will delay the loading of the List ''All Hosts'' page. Disabling this feature will help in loading this page.<br />
*# '''Fog Configuration''' [[File:Config.png]] --> '''Fog Settings''' --> '''General Settings''' --> Untick ''FOG_HOST_LOOKUP''<br />
<br />
===== Creating Host Groups =====<br />
<br />
*FOG allows you to create groups of hosts which then allows you to take action on a whole grouping of hosts. Hosts can be created either on the "List All Hosts" section or by doing a search for hosts. To create a group select the computer you would like to be member of the group by placing a check in the box next to the hostname, or by clicking the check all button in the title row. After the hosts are selected scroll to the bottom of the screen and then enter a name in the create to group box or select a group to add the hosts to. Then click on the "Process Group Changes" button.<br />
<br />
<br />
----<br />
<br />
=== Groups ===<br />
*Groups in FOG are used to organize your hosts into real world logical clusters. This is intended to ease management of the computers. A single host can be a member of infinitely many groups, so if a computer happens to be a member of the group called "Third Floor", it could also be a member of "Math Department", or "Dell PCs." Groups make using FOG possible for organizations with a very large number of PC's.<br />
<br />
==== Creating Groups ====<br />
*Groups are created in two sections:<br />
*#'''Group Management'''[[file:groups.png]] --> '''Create New Group'''<br />
*#Hosts section of FOG based on searches, for information on how to create groups, please see [[Managing_FOG#Creating_Host_Groups | Creating Host Groups.]]<br />
<br />
==== Managing Groups ====<br />
<br />
*After a group has been created, it can be managed from the groups section of FOG. Locating groups is very similar to locating hosts, you can either list all groups or you can search for groups. When searching for groups your search criteria is matched against the group name or the group description. Once a group is located it can be modified by clicking on the "Edit" button on the right hand side of the table or the Title of the group itself.<br />
<br />
*Under the section "Modify Group [Groupname]" there are options to change the group name, group description, group product key, or to delete the group. If you wish to update the group name or the group description make your change then click on the "Update" button within that section. If you would like to remove the group then simply click on the "Delete" button within this section.<br />
<br />
*As a reminder, when saving or updating settings for hosts Fog uses the last to save option. If you set all the hosts in this group to have ''Image A'' and then change ''Host A'' in that group to be ''Image B''. The group settings will not override the settings for ''Host A'', unless you go back to the group and set all hosts back to ''Image A''.<br />
<br />
===== Group Basic Tasks =====<br />
<br />
*This section will allow you to start a task on this group of hosts. From this section you can start any task to all hosts within the group. Multi-Cast is also available from here. Please review [[FOGUserGuide#Fundamental_Concepts | Fundamental Concepts]] to determine the required download task.<br />
<br />
===== Group Membership Setup =====<br />
<br />
*This page allows you to view/add/delete membership of the group. This section will list all of the members of the group and give you the option to remove members from the group.<br />
<br />
===== Group Image Associations =====<br />
<br />
*The groups page also allows you to update the image association for all the members of the group. This can be done in the "Image Association for [groupname]" section. Select the image association from the drop-down box and select "Update Images" and then all your host objects for that group will be modified.<br />
<br />
===== Group Snapins =====<br />
<br />
*You can add or remove snapins to all hosts in a group, but because the nature of groups, it is not possible to see what snapins are currently associated with a group. This is because the snapins are not directly associated with the group, the are associated with the host and it is possible for all members of the groups to have different snapins linked with each host. What fog does allow you to do is batch add a snapin to all the hosts within a group. At the same time you can batch remove a snapin from all the hosts within a group. This functions can be done via the '''Add Snapins''' and '''Remove Snapins''' button in the Group Menu.<br />
<br />
===== Group Service Settings =====<br />
<br />
*The '''Service Settings''' page allows you to enable or disable certain service modules on all hosts in the group, as well as change some service settings for group such as screen resolution, and auto log off settings.<br />
<br />
===== Group Active Directory Setup =====<br />
<br />
*Active Directory integration settings can also be distributed to all members of a group via this page. The section "Modify AD information for [groupname]" allows you to do so. This section provides the same options as the host screen but allows you to mass update all of your hosts.<br />
<br />
===== Group Printers =====<br />
<br />
*The '''Printers''' page allows you to add or remove printer associations to all hosts within the group. This page also allows you to set the management level all hosts within the group.<br />
<br />
===== Group Membership Information =====<br />
<br />
*The most important thing to remember about groups in FOG is that they do not contain their own properties. When you make changes to a group, you are really make changes to every host object within the group. For example, if you change the OS association for a group, then go back to the one of the host objects that is a member of that group, it will have the new OS association on that object.<br />
<br />
<br />
----<br />
<br />
=== Images ===<br />
<br />
*Image objects in FOG are the representation of the physical files that contain the disk or partition images that are saved on the FOG server.<br />
<br />
==== Creating Images Objects ====<br />
<br />
*Image objects in FOG are created in the Images section of the FOG management portal. To create a new image click on the "New Image" button on the left hand menu. An image object requires a name and a image file path. <br />
<br />
*When creating images you have a few choices in how you want that image to 'act'. The possible partition types include:<br />
Single Partition<br />
Multiple Partition - Single Disk<br />
Multiple Partition - All Disks<br />
Raw Image<br />
<br />
====='''FOG 1.2.0'''=====<br />
<br />
*'''Single Partition''' - Single Partition images support only single NTFS partitions. These partitions are resizable, meaning that an image from a 200GB hard disk can be put on a 10GB hard disk as long as the data is less than 10GB. This image type is destructive, which means that your partitions will be modified, and if the task doesn't finish without error it is possible that your computer may not be bootable.<br />
<br />
*'''Multiple Partition - Single Disk''' - Single Disk will back up all the supported partitions on the first disk drive detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity. It is possible to backup NTFS drives with vendor specific 'restore' partitions with this type of image. <br />
<br />
It is possible to backup Linux systems with this type of image given the following criteria:<br />
1.) There is a Grub boot loader present.<br />
2.) LVM is not used.<br />
3.) The partitions include '''ext2''', '''ext3''', '''reiserfs''', or '''swap'''.<br />
4.) The swap partition should be moved out of the extended partition (for ubuntu 9.04)<br />
<br />
*'''Multiple Partition - All Disks''' - All Disks will back up all the supported partitions on all disk drives detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity.<br />
<br />
*'''Raw Image''' - Raw Image will do a raw sector-by-sector copy of your hard disk, which means that if you have a 80GB hard drive, dd will process 80GB of data, and you will end up with a VERY LARGE image that is VERY SLOW to create and restore.<br />
<br />
*All of these images can be deployed using multi-cast, unicast, or torrent-cast to clients.<br />
<br />
====='''FOG 1.3.0 (still in development as of feb 11, 2016)'''=====<br />
<br />
Image types:<br />
<br />
* '''Single Disk - Resizable'''<br />
<br />
This should always be your first choice. It takes a copy of every partition on the disk, and resizes any partition that has excessive free space to a smaller size. Each resizable partition will go through a "Resizing filesystem" process for each partition that is to be resized. This process can take some time depending on how severe disk fragmentation is. It's recommended to run "Disk defragmenter" (win 7 and lower) or "Optimize Drives" (Win8+) prior to taking a resizable image. The partitions that are shrank will be shrunk down to only 2GB of free space on their partition. This allows an image taken from a 6TB drive with only 20GB of used space to be deployable to a HDD with a total capacity of 40GB. When the partitions are laid onto the destination drive, all resized partitions are intelligently expanded to utilize the entire drive.<br />
<br />
* '''Multiple Partition Image - Single Disk (Not Resizable)'''<br />
<br />
This is what you should pick when Single Disk - Resizable fails.<br />
<br />
* '''Multiple Partition Image - All Disks (Not Resizable)'''<br />
<br />
This is what you should pick when you want all partitions from multiple disks to be captured. If you only wanted a particular partition captured or drive captured in a multi-drive system, you can define the disk or partition you want within a Single Disk - Resizable or Multiple Partition Image - Single Disk (Not Resizable) type image. This is done through the "golden" host's "General" area, in the "Host Primary Disk" field.<br />
<br />
* '''Raw Image (Sector By Sector, DD, Slow)'''<br />
<br />
This should always be the last resort. This takes an absolute exact copy of an entire disk and does not compress the data. If you take an image from a 6TB disk, the resultant image will be 6TB in size. This image type also takes a '''significant''' amount of time to capture and deploy.<br />
<br />
==== Modifying Image Objects ====<br />
<br />
*Image object can be located either by a search or by listing all image objects.<br />
<br />
==== Adding Existing Image Objects ====<br />
<br />
*To restore an image to the FOG database:<br />
*# Create a new Image definition through the management browser<br />
*# Specify image name (SampleXPImage)<br />
*# Specify storage group (default)<br />
*# Specify image file path (SampleXPImage)<br />
*# Specify image type<br />
*# Log into the box hosting FOG, and move/rename your image to match browser input<br />
*# Create hierarchy if necessary. FOG, by default, puts images in /images/, so for the above example, you would need to create a folder structure like so: /images/SampleXPImage<br />
*# Drop your image file into the folder (be sure it's named the same as image name above)<br />
<br />
----<br />
<br />
=== Storage Management ===<br />
<br />
*The Storage Manager introduces the concept of '''Storage Groups.''' Basically, a storage group is a group of NFS servers that share images and share the load of computers being imaged. Any member of a storage group is referred to as a '''Storage Node.''' You may have as many storage groups as you wish and as many storage nodes within those groups as you wish. In each storage group, there is one storage node which is designated as the '''Master''' of that group. Basically what this means it that is the node where all image captures go, this node handle multicasting tasks for the group, and is the image replicator the for the group. This means that whatever images are stored on this node are what gets distributed to the entire group. <br />
<br />
*What this new system of storage management gives us is a distributed model for FOG which allows for more unicast transfers at a single time. We also gain data redundancy. We also take stress off of the main FOG server.<br />
<br />
*Below is a brief overview of Storage Groups<br />
<br />
[[Image:Nfsgroup.jpg]]<br />
<br />
*This image shows a single Storage Group and the flow of data within the group. The queue size of the system is the sum of the queue size of all the storage nodes within the system. So if you have 4 nodes each with a queue size of 10, then the queue size of the system is 40, which means 40 clients can be imaged (unicast) at one time. <br />
<br />
[[Image:StorageGroups.jpg]]<br />
<br />
*This image shows that it is possible to have multiple storage groups on your network, which are isolated from each other. This image also demonstrates, that captures always go to the master node and multicast session always send data from the master node. Images are pushed out from the master node of the group to all other members of the group.<br />
<br />
*'''Key Benefits'''<br />
*#Increased throughput<br />
*#Redundant Storage<br />
*#Scalability<br />
<br />
*Also see [[Knowledge_Base#Storage_Nodes | Storage Nodes]] for tutorials.<br />
<br />
==== Adding a Storage Node ====<br />
<br />
*Definition: Storage Nodes provide extra [http://www.fogproject.org/wiki/index.php?title=InstallationModes NFS/FTP storage space] which increases available throughput and redundancy within a network. They do not provide PXE, TFTP, or DHCP services at secondary sites. To enable additional PXE and TFTP services at secondary sites see this section: [[#Including_multiple_PXE_.2F_TFTP_servers|#Including multiple PXE / TFTP servers]]<br />
<br />
*Video Tutorial: http://www.youtube.com/watch?v=X72WthDGwsw&fmt=18 (old video but still valid infomation)<br />
<br />
*To add an additional storage node to the network, the computer should be prepared in the same way the main FOG server would be prepared (disable firewall, SELinux, etc). You can also safely mix operating systems for the nodes of you storage group, some nodes can be running fedora, and some can be running Ubuntu. It is important to update your storage nodes when you upgrade to a new version of FOG. Installation of a storage node is done with the same installer for a normal FOG server. Installation can be started by running the installer script, the steps are detailed below.<br />
<br />
*Surprisingly enough some users have actually gotten a Windows Storage node to work properly. See [[Windows_Storage_Node]] for more information on this.<br />
===== Installing the Node =====<br />
*To Install a node:<br />
*#Run the installation script, ./installfog.sh<br />
*#Select your operating system.<br />
*#When prompted for Server Installation Mode, select '''S''', for storage node.<br />
*#Enter the IP address of the storage node.<br />
*#Confirm you interface<br />
*#Then you will need to enter the IP address or host name of the node running the FOG database<br />
*#Then you will be prompted for a username (typically fogstorage)<br />
*#and a password that is located on the FOG server, that will allow the storage node to access the main FOG server's database. This information is located in the FOG management portal for convenience (on the main for server). It can be accessed via '''Other Information''' -> '''FOG settings''' -> section '''FOG Storage Nodes'''.<br />
*#You will then be prompted to confirm your installation settings, if they are correct press '''Y''' end hit '''Enter'''.<br />
*#When installation completes, the install will produce a username and password that will be needed to add the storage node to the FOG management portal. Username is "fog", password is in /opt/fog/.fogsettings<br />
<br />
===== Adding the Node to the Management Portal =====<br />
*To Add a Node<br />
*#Log into the FOG Management Portal<br />
*#Navigate to the '''Storage Management''' section.<br />
*#Click on '''Add Storage Nodes'''.<br />
*#For the '''Storage Node Name''', enter any alpha numeric string to represent the storage node. <br />
*#Enter any description you wish<br />
*#Enter the IP address of the storage node you are adding. This must be the IP address of the node, DO NOT use a hostname here or the node will not function correctly. <br />
*#Enter the maximum number of unicast clients you would like this node to handle at one time. The value that we recommend is 10. <br />
*#Is Master Node is a very dangerous settings, but for right now leave it unchecked, for more details please see: [[#Master Node Status]].<br />
*#Next, select the storage group you would like this member to be a part of, in our example we will pick '''Default'''<br />
*#Next, specify the image location on the storage node, typically '''/images/''', your image location should always end with a '''/'''.<br />
*#Next, you will want to check the box, to enable the node.<br />
*#The last two fields take the username and password that are generated during the installation of the storage node. username is "fog", password is in /opt/fog/.fogsettings<br />
*#Then click '''Add''' to have the node join the storage group.<br />
<br />
==== Monitoring The Master Node ====<br />
<br />
*On all storage nodes there is a new service (as of version 0.24) called FOGImageReplicator which is a very basic script which, if the node is the master, copies all of its images to all other nodes in the storage group. The coping is done every ten minutes by default, which means your images are NOT instantly duplicated to all nodes. <br />
<br />
*If you would like to view the status of the image replication, you can do so on the storage node by switching to tty3, by typing ctl + alt + f3. Output is also logged to a file in the '''/opt/fog/log''' directory.<br />
<br />
*FOGImageReplicator logs are also located in [[File:Config.png]] '''Fog Configuration''' --> '''Log Viewer''' --> '''FILE: [Select Image Replicator]'''<br />
<br />
==== Master Node Status ====<br />
<br />
*The '''Master Node''' (could be the server or a particular node) in a storage group is the node that distributes images files to all other nodes in the storage group.<br />
<br />
*If you have all your images distributed across 3 nodes in a storage group, '''if you add a new storage node that has no images stored on it, making that node master will cause it to take over and push it's image store of nothing to all other nodes, wiping out all of your images'''. So it is important to be very careful and backup your images when you change a node's master status.<br />
<br />
*Notes - You '''can''' have many storage nodes in a storage group. You '''can''' have one master storage node in a storage group. You '''can not''' have more than one master storage node in a storage group. You '''must have''' one master storage node for replication to take place to other nodes in the group. '''If''' a master storage node is set, all captures '''first''' go to the master storage node of the storage group the image is assigned to; and are '''then''' replicated to other storage nodes.<br />
<br />
==== Including multiple PXE / TFTP servers ====<br />
<br />
*A traditional Master Storage Node, [[#Adding_a_Storage_Node|as described above]] only provides File Storage redundancy. While this can help increase multicast throughput on a single network, all the machines under FOG management must be within the same subnet/VLAN so that DHCP broadcast requests can be directed to the Main server. (see note below)<br />
<br />
*<pre>'''Note:''' depending on the network, it may be possible to configure [http://en.wikipedia.org/wiki/UDP_Helper_Address iphelper] to forward packets to the Main FOG server</pre><br />
<br />
*The following instructions are intended to help configure additional Storage Nodes to operate independently on separate networks, while still syncing with and taking commands from a single Main FOG server.<br />
<br />
*Click here for instructions on setting up [[Multiple_TFTP_servers|multiple PXE / TFTP servers]]<br />
<br />
=== Users ===<br />
<br />
==== Overview ====<br />
<br />
*FOG has only two levels of users, '''regular''' users and '''mobile''' users. Regular users have access to the mobile portal and the full management portal. Mobile users have access to only the mobile management portal and Quick Image functions.<br />
<br />
==== Creating Accounts ====<br />
<br />
*All accounts are created under the "Users" section of the FOG portal. To create a new account click on the "New User" button on the left hand side of the page. All accounts must have a unique username, and a password. After filling in the required information click on the "Create User" button.<br />
<br />
==== Modifying Users ====<br />
<br />
*FOG accounts can be modified from within the users section. First you must locate the account you wish to modify by clicking on the "List all Users" button on the left hand side of the page. When a user is located, click on the edit button on the right hand side of the table.<br />
<br />
=== Tasks ===<br />
<br />
==== Overview ====<br />
<br />
*Tasks are all the actions that you can take on a computer, and in FOG there a numerous tasks that can be done including:<br />
<br />
*Deploy (Unicast)<br />
*Capture (Unicast) <br />
*Deploy - Multicast <br />
*Debug<br />
*Memory Test<br />
*Test Disk<br />
*Disk Surface Test<br />
*Recover (File Recovery)<br />
*Hardware Inventory<br />
*Password Reset<br />
*Deploy All Snapins<br />
*Deploy Single Snapin<br />
*Wake-Up<br />
*Deploy - Debug (Unicast)<br />
*Capture - Debug (Unicast)<br />
*Download - Without Snapins (Unicast)<br />
*Fast Wipe<br />
*Normal Wipe<br />
*Full Wipe<br />
*Virus Scan<br />
*Virus Scan - Quarantine<br />
*Donate<br />
*Torrent-Cast<br />
<br />
<br />
In the tasks section of FOG you can perform tasks on single hosts or groups of hosts. This section also allows you to monitor selective tasks, and stop/cancel tasks.<br />
<br />
==== General Tasks ====<br />
<br />
The general/common Tasks in FOG include unicast image capture, and unicast image send, as well as a multicast image send. In FOG, sending an image to the server is considered an image capture, and deploying an image to the client is called a send. Both of these tasks can be started directly from the search, list all hosts, and list all groups pages. <br />
<br />
To perform a simple image capture, click on the upward facing arrow next to the host. Captures are only possible on a host, not a group. Capturing an image will also overwrite any image file that may already exist for that host without any notification or confirmation.<br />
<br />
Please note that capturing images of Windows Vista and Windows 7 requires special command to be run on the clients prior to image capture. Please see [[What do I have to do to an image before capturing?]] for more details.<br />
<br />
For a video demonstration of an image capture, please see: http://www.youtube.com/watch?v=jPPZr0abVfg&fmt=18<br />
<br />
To perform a simple image send, click on the downward facing arrow next to the host. An image send can be done on a host or a group. When sending an image to multiple computers FOG works in queue mode, which means that it will only send to 10 (by default) computers at one time. This is done to keep the server from being overworked. As soon as the a machine finishes, another from the queue joins.<br />
<br />
To perform a multicast image send you must search for a group of hosts on the "Task Management" page. Multicast tasks can only be performed on a group of hosts. Multicast tasks will send to all the computers in the group at once, and the task will not start sending until all members of the group have connected with the server. After starting a multicast task, status can be view by clicking on [ctl]+[alt]+f2. A log is also kept for multicast transfers which is stored at /opt/fog/log.<br />
<br />
==== Advanced Tasks ====<br />
<br />
The advanced Tasks in FOG include everything that is not a simple capture, simple deploy or mutlicast deploy. <br />
<br />
=====Debug=====<br />
<br />
Debug mode boots the linux image to a bash prompt and allows the user to issue all commands by hand. <br />
<br />
=====Capture - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to capture the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to send the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Without Snapins)=====<br />
<br />
This task does a normal send task with the exception that if any snapins are associated with the host, they are not deployed to the host. <br />
<br />
=====Deploy All Snapins=====<br />
<br />
This task will send all the snapins associated with a host to the host without imaging it.<br />
<br />
=====Deploy Single Snapin=====<br />
<br />
This task will send a single snapin that is associated with the host to the host without imaging it. (Note: The snapin must be associated with the host already)<br />
<br />
=====Memory Test=====<br />
<br />
Boots to Memtest86, a memory testing tool. This a task will not exit with out user intervention at the client side. The task must also be manually stopped via the management front end.<br />
<br />
=====Wake Up=====<br />
<br />
Wakes up host or group of hosts using Wake-on-Lan. <br />
<br />
=====Fast Wipe=====<br />
<br />
This task does a quick and dirty wipe of the drive. This task writes zeros to the first ~40MB of the disk. This task should NOT be used if you don't want your data to be recoverable. <br />
<br />
=====Normal Wipe=====<br />
<br />
This tasks writes random data to the entire surface area of the disk. <br />
<br />
=====Full Wipe=====<br />
<br />
This tasks writes random data, multiple times to the entire surface of the disk. <br />
<br />
=====Disk Surface Test=====<br />
<br />
This task will look for bad blocks on the hard disk and report them back to the client console. <br />
<br />
=====File Recovery=====<br />
<br />
This task will load an application that can be used to recover lost files from the hard disk. <br />
<br />
=====Virus Scan=====<br />
<br />
This task will update and load ClamAV and scan the partition for viruses. It will either scan and report or scan and quarantine files, it will also report back to the management portal with the results of the scan.<br />
<br />
=====Hardware Inventory=====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/InventoryUpdate.swf.html Video Tutorial]<br />
<br />
The hardware inventory task will execute the same task as the fog.reginput client side task. Since the host is already registered, all it will do is update the computers inventory and restart. It is visioned that this task could be run on a regular interval on a group of all computers in your network, or some sub group of computers in your network. Then on the next reboot of those computers an inventory would be performed.<br />
<br />
==== Scheduling ==== <br />
<br />
As of version 0.27 of FOG, select tasks can be scheduled using a static date/time combination or using a cron style repetitive task scheduling. Task scheduling can be performed on either single hosts, or on groups of computers. One thing to note about task scheduling that isn't intuitive is that it '''requires an image to be associated with the host, even for non-image based tasks!''' The reason for this is because tasks are only run on the master storage node associated with that host, and the only way to tie a storage node to a host is via an image. We did this to prevent multiple storage nodes to try running the same task for a specific host. <br />
<br />
===== Single Execution Scheduling =====<br />
<br />
Single task execution will run a task at a single date and time, then the task will be discarded. To scheduled a single execution task, you would go to the tasks section of fog, then select the host or group you would like to schedule the task, then select the task you would like to schedule. You will then be presented with the screen show below.<br />
<br />
[[Image:Sched.png]]<br />
<br />
To schedule a single execution task, click on white text box below "Schedule Single Task Execution?" and a pop up calendar will load and allow you to select your date and time for the task. Click on the date to close the calendar, then start you task. <br />
<br />
===== Cron Style Task Scheduling =====<br />
<br />
Cron style task execution allows you to do complex repetitive task scheduling. After a cron task executes, it is not removed, as single executions tasks are. Cron style tasks, as the name suggests are similar to the Linux cron task scheduler format. Cron style tasks are created as single execution tasks are, except when presented with scheduling options, select the option "Schedule Cron Style Task Execution". Below that check box are a series of text boxes including:<br />
<br />
min -> Minute [00-59]<br />
hour -> Hour [00-23]<br />
dom -> Day of Month [01-31]<br />
month -> Month [01-12]<br />
dow -> Day of Week [01-07] (Sunday ==> 0, Saturday ==> 6)<br />
<br />
To give an example of how this works, if you wanted a capture task to run at '''10:00pm everyday''' you would enter the following:<br />
<br />
0 22 * * *<br />
<br />
This basically says run the task a '''0''' minutes into the hour, on the '''22nd hour (10:00pm)''', on '''every day of the month''', on '''every month of the year''', on '''every day of the week'''.<br />
<br />
To take this example further, lets say you only wanted to capture the image '''every other day''', we could do this by adding:<br />
<br />
0 22 */2 * *<br />
<br />
The '''*/2''' now tells the scheduler to only run on '''even days of the month'''. <br />
<br />
We could even ask the scheduler to only do a backup on '''even weekdays''' by adding:<br />
<br />
0 22 */2 * 1-5<br />
<br />
The 1-5 we just added says only run on days 1 through 5, which relate to Monday - Friday.<br />
<br />
Now we will ask the scheduler to only backup in the month of February.<br />
<br />
0 22 */2 2 1-5<br />
<br />
Another basic example could be if you wanted to run an inventory update on the first of every month you could use:<br />
<br />
30 1 1 * *<br />
<br />
This task would then run at '''1:30''' on the '''1st of every month'''.<br />
<br />
<br />
The FOG scheduler doesn't support 100% of the operations that cron supports, below are the operations that are supported:<br />
<br />
4 - Listing a static number<br />
4,5,6,7 - Listing a group of numbers<br />
4-7 - ranges of numbers <br />
4-7,10 - ranges and lists<br />
*/5 - * divided by a number<br />
* - Wildcard<br />
<br />
For more information on cron please see http://en.wikipedia.org/wiki/Cron<br />
<br />
=== Printers ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher.<br />
<br />
==== Known Issues ====<br />
<br />
Setting of the default printer will only work if the fog tray icon is running.<br />
<br />
==== Overview ====<br />
<br />
The printers section of FOG allows you to create printer definitions that you can later associate with hosts. The FOG service looks at these associations and during service it will attempt to install any printers listed. This service has three settings which define how the printers are managed, printer management can be set to:<br />
<br />
<ul><br />
<li>No Printer Management</li><br />
<li>Add Only</li><br />
<li>Add and Remove</li><br />
</ul><br />
<br />
All hosts default to '''No Printer Management''' which means that the FOG service does nothing to the hosts printers. '''Add Only''' does as the name implies, and will only add printers to the host machine, it will not remove any existing printers that may be installed. '''Add and Remove''' will take full control of the hosts printing system and only allow for the printers that are specified by the FOG management console to exist on the host. <br />
<br />
==== Adding New Printers ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf Video Tutorial]<br />
<br />
In order for the printer to be added to the host computer, the printer drivers must be stored in a public area, or included on the host computer. This public area can be a Novell Network share where public has read-only access, a Windows share that is public read-only to everyone, or a Samba share (possibly residing on the FOG server) that is public read-only to everyone. This share must be accessible via a UNC path as the service may attempt to install the printers before drive mapping occurs. In this share the printer drives and .inf file must exist. FOG supports install IP based (Jet-Direct) printers, public access NDS printers, Local printers, windows share based printers, (and we think, but could use a confirmation as it hasn't been tested) AD based printers. <br />
<br />
If you wish to see what printers are included with Windows XP, navigate to c:\windows\inf\ntprint.inf. Open this file with a text editor and you will be able to install all the printers listed using the ntprint.inf file. <br />
<br />
To create a new printer definition click on the Printer icon on the system menu bar. Then on the left hand menu, click on '''Add New Printer'''. The form you are presented with will require you to enter:<br />
<br />
<ul><br />
<li>'''Printer Model''' - This must match the name in the INF file.</li><br />
<li>'''Printer Alias''' - This can be anything you wish and it is what the end user will see.</li><br />
<li>'''Printer Port''' - This is something like '''LPT1:''', or '''IP_1.1.1.2'''.</li><br />
<li>'''Printer INF File''' - This is the path to the INF file for the printer driver.</li><br />
<li>'''Printer IP''' - (optional) This is ip address of an IP based printers only, this can take the form of '''1.2.3.4:9100''' or '''1.2.4.5'''. If the port doesn't exist already, it will create one named ''' IP_x.x.x.x''', where x.x.x.x is the ip address. That is what should be entered in the port field.</li><br />
</ul><br />
<br />
After all the required information is entered, click on the '''Add Printer''' button.<br />
<br />
==== Linking Printers to Hosts ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf.html Video Tutorial]<br />
<br />
Linking printers to hosts can be done from either the hosts section or the groups section. In the hosts section find the host you would like to add a printer to, click on the edit button associated with that host. In the host menu, click on the '''Printers''' button. First select how you would like the host to be managemed, either '''No Printer Management''', '''Add Only''', or '''Add and Remove'''. Then in the section below, select the printer you would like to install from the drop down list and click on the '''Update''' button.<br />
<br />
==== Creating a Samba Based Printer Store on FOG ====<br />
<br />
If you do not have a public sever where you can store your printer drivers for the FOG Printer Manager, then it is very easy to set one up on the FOG server using Samba, so all your Windows Clients will be able to connect.<br />
<br />
[[Creating a Samba Based Printer Store on FOG]]<br />
<br />
=== The FOG Client Service ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Client Service is a Windows Service that is intended to be installed on the client computers during the image creation process. The FOG service communicates with the FOG server to provide certain service to the client computers including:<br />
<br />
<br />
*Auto Log Off (0.16)<br />
*Hostname Changes<br />
*Active Directory Integration<br />
*Directory Cleaner (0.16)<br />
*Display Manager (0.16)<br />
*Green FOG (0.16)<br />
*Host registration<br />
*Task Restarting<br />
*Snapin Installation<br />
*User Tracker<br />
*Printer Manager<br />
*User Cleanup (0.16)<br />
*Client Updater<br />
*User Tracker<br />
<br />
==== Module specific configuration settings ====<br />
<br />
The FOG Client Service is very modular in nature, which means you can install portions of the services provided, and leave off others. This also means that it is very easy to create new sub services if you know a little C#. All configuration data is held in a local INI file. Which is typically stored in <br />
<br />
c:\program files\fog\etc\config.ini<br />
<br />
This file holds, in the general section:<br />
<br />
<ul><br />
<li>FOG Server IP address</li><br />
<li>FOG Service installation root</li><br />
<li>FOG Service working directory</li><br />
<li>FOG Log file path</li><br />
<li>Flag indicating if GUI messages should be displayed</li><br />
<li>The max log file size</li><br />
</ul><br />
<br />
==== Installation ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/FogServiceInstall.swf.html Video Tutorial]<br />
<br />
The FOG service should be installed on the computer to be imaged before capturing the image to the FOG Server. <br />
<br />
The FOG service is located in the '''FOG Service/bin''' directory or if the FOG server is already installed it can be downloaded from:<br />
<br />
http://[serverip]/fog/client/<br />
<br />
Double-click on the '''setup.exe''' to start the installation wizard. At the end of the wizard you will need to enter the IP address or hostname of your FOG server.<br />
<br />
[[Image:fogservice.jpg]]<br />
<br />
Then restart the computer, if you don't restart the computer you will have issues with the service GUI appearing correctly.<br />
<br />
===== Quiet Installation =====<br />
<br />
As of version 0.29 and higher, the FOG client now supports a quiet installation mode. This can help automate deployments, by allowing the command to be run without user interaction from batch files. To do this the setup.exe file must be run from the command line with the arguments '''fog-defaults=true /qb'''.<br />
<br />
So the full command would be:<br />
<br />
setup.exe fog-defaults=true /qb<br />
<br />
==== Functions and Operation ====<br />
<br />
=====Auto Log Out=====<br />
<br />
Added in Version 0.16<br />
<br />
This module of the FOG Service will log a user off of a client pc after X minutes of inactivity. This module will display a screen saver-like GUI after 3/4 of the inactive time is up. So if the time out value is 40 minutes, the GUI will be displayed at 30 minutes of inactivity. When the time is up, the client computer will reboot. This service module can be configured via the management portal via:<br />
<br />
FOG Service Configuration -> Auto Log Out<br />
<br />
To enable the module globally, place a check in the box next to '''Auto Log Out Enabled?'''. The time to auto log off can changed globally via '''Default log out time:''' The minimum recommended value for this setting is 4 minutes. <br />
<br />
The background image for the auto log off module can be modified via:<br />
<br />
Other Information -> FOG Settings<br />
<br />
The settings can be changed by modifying the value for '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE'''. This settings will accept a jpg file that is local to the client computer like: <br />
<br />
c:\images\image.jpg<br />
<br />
This setting will also accept files located on a web server such as:<br />
<br />
http://www.somedomain.com/image.jpg<br />
<br />
Provided with FOG is a simple php script that will display a random images that is located on the FOG server. To use this option set '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE''' to <br />
<br />
http://x.x.x.x/fog/public/randomimage.php<br />
<br />
Then simply put the images you would like to use in the following directory on the fog server:<br />
<br />
/var/www/html/fog/public/imagepool<br />
<br />
Images used for the auto log off module must be in jpg format, and must be 300px by 300px.<br />
<br />
=====Hostname Changer=====<br />
<br />
This module of the FOG Service is used to change the hostname of the client computer and to allow the client to (optionally) join a Active Directory Domain after imaging. This process only runs shortly after service startup, which means typically only when you start your computer. The service communicates with the FOG server over port 80 and determines the hostname that is present in the FOG database for the host. The hosts are matched to the FOG database by their MAC addresses. If the hostnames are found to be different, the client changes the computers hostname and restart the computer.<br />
<br />
The config.ini file contains configuration options for this module. <br />
<br />
netdompath=<br />
<br />
Allows you to set the path to the netdom.exe file. In some cases the file does not exist on the system. It can be downloaded from: [http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=de Microsoft Download Center]<br />
<br />
=====Host Register=====<br />
<br />
As of version 0.29, this module will only add additional mac address to a host that is already registered, and add them to the pending mac address table, where they need to be approved in the FOG UI.<br />
<br />
=====Task Reboot=====<br />
<br />
This module periodically checks in with the FOG server to see if the client has an imaging task assigned to it. If a task is found AND no one is logged into the workstation, then the client will restart and join the task.<br />
<br />
The config.ini file contains configuration options for this module. As of version 0.13 of FOG you can change:<br />
<br />
forcerestart=0<br />
<br />
to<br />
<br />
forcerestart=1<br />
<br />
This will make the computer restart if a task is found, regardless of whether a user is logged into the computer.<br />
<br />
You can change how often the service will check in with the server by changing:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins.<br />
<br />
=====Directory Cleaner=====<br />
<br />
Added in version 0.16<br />
<br />
This module will clean out (delete) the contents of a directory on user log off. This useful when you don't want any settings cached between users. This module will only delete the contents of a directory and not the root directory itself, so if you specify '''c:\trash''', the service will remove all files and folders located within c:\trash but leave the folder c:\trash.<br />
<br />
=====Display Manager=====<br />
<br />
Added in version 0.16<br />
<br />
This module is used to restore screen resolution between clients. This will restore a fixed resolution and refresh rate when a user logs into a computer.<br />
<br />
=====Green FOG=====<br />
<br />
Added in version 0.16<br />
<br />
This module will simply shutdown/restart the client computer at a fixed schedule if no user is logged in. The schedule can be defined via the management portal. <br />
<br />
=====Snapin Client=====<br />
<br />
This module periodically checks in with the FOG server to see is the client has an snapin set to be deployed to it. If a snapin is found AND no imaging task is associated with the client, then the client will download the snapin and install it in the background.<br />
<br />
The configuration file contains settings for this module including:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins. It is important to note that currently the fog client will wait 5 minutes when first connected / established before it starts checking and installing any snapins from the server.<br />
<br />
=====User Tracker=====<br />
<br />
This module attempts to track user access to the host computer by the Windows user name. It attempts to track logins and logoffs as well as well as the state of the computer at service startup. The service will even attempt to track users when they are not on the network by writing all entries to a journal file, then replying the journal the next time the client is on the network.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====User Cleanup=====<br />
<br />
This module will remove all users not white listed in management portal on log off. This module is useful when using services like dynamic local user. All entries in the management white list are treated as prefixes to usernames, which means that they will white list all users that start with whatever was entered in the management front end. For example, if you enter '''admin''' in the management white list, then users '''admin''', and '''administrator''' will NOT be removed from the computer.<br />
<br />
=====Printer Manager=====<br />
<br />
This module checks on service startup to see what printers should be installed/removed from the client PC.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====Client Updater=====<br />
<br />
This module waits (randomly) between 60 and 500 seconds after service startup to check the local fog server for client updates, and if any are found the service will download and install them. Updates will NOT take effect until after the service is restarted.<br />
<br />
There are no configuration settings for this module.<br />
<br />
==== Keeping Clients up to date ====<br />
<br />
===== Overview =====<br />
<br />
As of version 0.12 of FOG, we have included a client updater module. This module is no different from any of the other sub service modules. This service waits anywhere between 60 and 500 seconds after the FOG service starts up, and then attempts to check with the server for newer FOG service modules. If new modules are found the client will download them, and they will be active on the NEXT service startup. These modules are controlled from the FOG Management Console. <br />
<br />
Only certain modules can be updated, only those that are a sub class of AbstractFOGService. This means you should '''NEVER''' attempt to update the FOGService executable (FOGService.exe file), or the AbstractFOGService.dll file. It is recommended that you not update the ClientUpdater.dll, because if the ClientUpdater.dll file becomes corrupt or not functional, your clients will not be able to update from that point on. Below are a list of the .dll files that can be updated.<br />
<br />
<ul><br />
<li>UserTracker.dll</li><br />
<li>TaskReboot.dll</li><br />
<li>SnapinClient.dll</li><br />
<li>PrinterManager.dll</li><br />
<li>HostRegister.dll</li><br />
<li>HostnameChange.dll</li><br />
<li>GUIWatcher.dll</li><br />
<li>ClientUpdater.dll</li><br />
<li>config.ini</li><br />
</ul><br />
<br />
Care must also be taken when updating the config.ini file, if the IP address is incorrect or the syntax of the file is incorrect, it could leave the FOG service crippled on the client computers.<br />
<br />
===== Posting Updates =====<br />
<br />
To add new modules that can be pushed down to clients, first install a client with the new service or new module and confirm that it works as you would like. Log into the FOG management console, then go to the Infomation/Misc section (the little "i" icon). Click on '''Client Updater''' on the left-hand menu. Now click on the browse button to select the module (.dll) file you would like to post, then click on the capture button. After capturing the file should appear in the table above. If you are adding a new module, you will probably want to capture a new config.ini file to include new configuration settings required by that new module.<br />
<br />
==== FOG Tray ====<br />
<br />
The FOG Tray is a Windows application that runs on user login that docks in the system tray. The FOG Tray, like the FOG service, is very modular in nature. New modules can be dropped in the FOG tray directory and on next load they will be loaded. This tray icon has the ability to communicate with the FOG service, this allows FOG more interactivity with the end-user. <br />
<br />
What happens is that when the FOG service's printer manager module gets a request to set a default printer, the service attempts to contact the FOG Tray. If communication is established, then the service will ask the tray to set the default printer. On the other hand the end user can right click on the "F" icon in the system tray, then select printers, then update my printers. What this will do is attempt to send a request from the FOG Tray to the FOG Service and have the service check for printer updates (new printers or printers to be removed). If one is found the service will install any new printers assigned in the FOG Management portal.<br />
<br />
This application is in its very early stages and currently doesn't have a lot of functionality. It is currently only used to allow end users to update their printers and to allow the setting of default printers (from the FOG service). Our vision for the FOG Tray is to add modules that would allow users to install printers that are published as public (via the management portal) without the printer being directly assigned to their host. We would also like to do the same thing for snapins where some of your snapins could be defined as public where anyone could install them on their computer.<br />
<br />
==== Troubleshooting ====<br />
<br />
If you have problems with the FOG Service, please refer to the log file that is located at:<br />
<br />
c:\fog.log<br />
<br />
If the PXE boot does not work<br />
<br />
If booting from the fog server through pxe comes up with an error file not found, edit /etc/default/tftpd-hpa<br />
<br />
Change TFTP_DIRECTORY to<br />
<br />
TFTP_DIRECTORY="/tftpboot"<br />
Then<br />
<br />
/etc/init.d/tftpd-hpa restart<br />
<br />
=== Snap-ins ===<br />
<br />
==== Overview ====<br />
<br />
*The FOG Service has the ability to install snapins to the clients. Snapins can be anything from whole applications like Microsoft Office to registry keys or desktop icons. Snapins can even be used to uninstall applications or remove unwanted files. For the end use's point of view, they will not even noticed that a snapin is being installed until it is complete. At this point a message will notify them that a new application has been installed on their computer. Snapins can be in MSI (0.17) or EXE formats, and can be created with any snapin creation tool like InstallRite or already packaged MSI files (0.17). You can also push commands to the computer that include .vbs scripts / .cmd (commands) and .bat (batch scripts).<br />
<br />
*Snapin return codes are specified by the program that's being installed.<br />
<br />
<br />
==== Creating a Snapin / Overview ====<br />
<br />
FOG doesn't provide a tool to create snapins, but instead allows you to push files and execute them on the remote computers. It is highly recommended that you push the actual installer to the computer instead of using a program such as InstallRite. <br />
<br />
If you have never silently installed software to a computer, or created an answer file for a program please look at the website Appdeploy [http://www.appdeploy.com/articles/ Link] This website has an trove of information on how to push software to a computer remotely.<br />
<br />
===== Creating a Snapin for larger applications with SFX Maker =====<br />
<br />
Some larger applications such as Microsoft Office and Adobe Products (Acrobat / Creative Suite) require multiple files to install properly. If you have an application that is not a single .exe please use SFX Maker. This tool is free for non commercial use, and most programs fall under the GPL. [http://www.isoft-online.com/ SFX Maker's Website]<br />
<br />
For instructions on how to use this software please see the youtube videos below.<br />
<br />
[http://www.youtube.com/watch?v=ZSMJLnRjn94 Office 2003 Install]<br />
[http://www.youtube.com/watch?v=Qzc1Q9NW_cE Office 2007 Install]<br />
<br />
SFX Maker takes an entire folder and encapsulates it or "folds" it into a single .exe which then "unfolds" to its original state and launches a file or command.<br />
<br />
===== Creating a Snapin with InstallRite =====<br />
<br />
If for some reason you do wish to use Installrite please be aware it comes with issues and limitations (not compatible on all windows operating systems / can cause issues with the computer it is pushed to). Below is an example of how to build a package with that software<br />
<br />
In this example we will use Epsilon Squared's InstallRite which can be downloaded from http://www.epsilonsquared.com/installrite.htm. This application will package up your snapin as an exe file which will be uploaded to the FOG server. <br />
<br />
<ol><br />
<li>To run InstallRite navigate to c:\program files\Epsilon Squared\InstallRite\InstallRite.exe</li><br />
<li>Click on "Install new software and create an InstallKit"</li><br />
<li>On the Configure screen, click Next.</li><br />
<li>On the Snapshot screen click next to create a new system snapshot.</li><br />
<li>On the next screen,click the browse button to select the application you wish to install, then click next.</li><br />
<li>When installation is complete InstallRite will come into focus, click the next button. InstallRite will scan your system again.</li><br />
<li>Enter a name for your snapin.</li><br />
<li>Click "Build Install Kit"</li><br />
<li>Select "Quiet Installation Mode", Never reboot, even if needed, and "Never prompt the user and only overwrite older files"</li><br />
<li>Click OK and it will build your snapin.</li><br />
</ol><br />
<br />
==== Preparing the FOG Server ====<br />
<br />
If your snapin is larger than 2MB you will need to make two changes to the FOG server to allow uploads of larger than 2MB.<br />
<br />
See also: [[Troubleshoot Web Interface]]<br />
<br />
===== Fedora =====<br />
<br />
<br />
#On the FOG Server click on Applications -> Accessories -> Text Editor.<br />
#Select Open and navigate to "/etc/php.ini"<br />
#Change UPLOAD_MAX_FILESIZE to 1900MB (On a 32Bit OS don't set this value above 2GB)<br />
#Change POST_MAX_SIZE to the same value.<br />
#Save and close the text editor.<br />
#Click on Applications ->System Tools -> Terminal and type "service httpd restart"<br />
<br />
===== Ubuntu =====<br />
<br />
#sudo gedit /etc/php5/apache2/php.ini<br />
#Change <br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
#Save Changes<br />
#sudo /etc/init.d/apache2 restart<br />
<br />
<br />
===== VMWare =====<br />
<br />
#sudo vim /etc/php5/apache2/php.ini<br />
#Edit the following lines in the document (read below for assistance with working in VIM)<br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
<br />
<br />
*To edit content in vim you will need to press the '''"I"''' key on your keyboard to enter input mode.<br />
*Hitting the '''Escape''' key will bring you out of input mode.<br />
*Once out of input mode type ''':w''' and then '''enter''' to save the file<br />
*Restart FOG once the file has been saved<br />
<br />
==== Uploading the Snapin ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/CreateSnapin.swf.html Video Tutorial]<br />
<br />
<ol><br />
<li>In the FOG Management Portal click on the Snapin Icon (Puzzle Pieces).</li><br />
<li>On the left-hand menu click on the New Snapin Button.</li><br />
<li>Enter a Snapin Name and Description.</li><br />
<li>Browse to the snapin file you wish to upload.</li><br />
<li>If you want the computer to restart after the snapin is installed click on the "Reboot after install"</li><br />
<li>Click "Add"</li><br />
</ol><br />
<br />
<br />
<br />
As of version 0.17, fog supports using typical msi files as snapin files.<br />
<br />
If the snapin file is a msi file you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of msiexec.exe (ie: c:\windows\system32\msiexec.exe)</li><br />
<li>Set '''Snapin Run With Arguments:''' to '''/i'''</li><br />
<li>Set '''Snapin Arguments:''' to '''/qn'''</li><br />
</ol><br />
<br />
If the snapin file is a .vb script you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of cscript.exe (ie: c:\windows\system32\cscript.exe)</li><br />
</ol><br />
<br />
<br />
<br />
'''Documentation on list of support snapin's and command line arguments''' [[http://www.fogproject.org/wiki/index.php?title=Supported_Snapin%27s_and_Command_Line_Switches]] There are MANY more supported applications that can be installed via command line arguments. You might have better luck installing them directly via .EXE / .MSI / or scripting them via .VBS . For more info on this consult the forums --[[User:Ssx4life|Ssx4life]] 09:04, 8 October 2009 (MST)<br />
<br />
==== Linking the Snapin to Hosts ====<br />
<br />
In order for a snapin to be deployed it must be linked with a host. To do this perform the following:<br />
<br />
<ol><br />
<li>In the FOG Management Portal, click on the Hosts Icon.</li><br />
<li>Search for and select a host and click on the edit button.</li><br />
<li>Scroll down to the snapin section.</li><br />
<li>Select the snapin you just created from the drop-down box and click the "Add Snapin" button.</li><br />
</ol><br />
<br />
The next time you image the computer the FOG Service will attempt to install that snapin. If you have problems, please see the fog log file located at c:\fog.log on the client PC.<br />
<br />
=== Client Side Tasks ===<br />
<br />
==== FOG Version ====<br />
<br />
Applies to version 0.12 or higher.<br />
<br />
==== Overview ====<br />
<br />
FOG attempts to keep management centralized, but in an attempt to make deploying machines as easy as possible FOG has added a few basic client side tasks. These tasks can be run from the client computer during the PXE boot process. When the client boots and the FOG banner is displayed the pxe client will display a prompt like '''boot:''' or something similar. At this point you have 3 seconds to start typing one of the following commands. <br />
<br />
<ul><br />
<li>fog.memtest</li><br />
<li>fog.reg</li><br />
<li>fog.reginput</li><br />
</ul><br />
<br />
==== fog.memtest ====<br />
<br />
This command will run the memtest86+ on the client computer. <br />
<br />
==== fog.reg ====<br />
<br />
This command will run the basic host registration and inventory process without any user input. It will register any new/unregistered hosts with the FOG server and pull a basic hardware inventory from them. The hostname of the computer will be the same as the MAC address without the ":".<br />
<br />
If a host is already registered, then only an inventory will be performed.<br />
<br />
==== fog.reginput ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/RegImage.swf.html View Host Registration Video]<br />
<br />
This command will run the full host registration process with user input, inventory and give the option to push down an image, all at the same time. During this process the user registering the host will be prompted for the computer host name, ip address, operating system ID, image ID, Primary User of the computer, asset tag 1, and asset tag 2. <br />
<br />
If a valid hostname, os id, and image id are given and the option is selected to image the workstation after registration, the host will reboot and an imaging send will began. <br />
<br />
If a host is already registered, then only an inventory will be performed, this prevents end-users from re-registering a machine with a different hostname, etc.<br />
<br />
This tasks was designed for institutions that may get shipments of hundreds of computers that need to be deployed very quickly. They can be unboxed, inventoried, imported into FOG and imaged very quickly. <br />
<br />
===== Operating System ID =====<br />
<br />
As of Version 0.17 of fog, you can now enter '''?''' at the Operating System ID prompt to get a listing of the valid operating system id values. <br />
<br />
The following are valid values for operating system IDs:<br />
<br />
<ul><br />
<li><b>1</b> - Windows 2000 / Windows XP</li><br />
<li><b>2</b> - Windows Vista</li><br />
<li><b>3</b> - Windows 98</li><br />
<li><b>4</b> - Windows (Other)</li><br />
<li><b>5</b> - Windows 7</li><br />
<li><b>50</b> - Linux</li><br />
<li><b>99</b> - Other</li><br />
</ul><br />
<br />
===== Image ID =====<br />
<br />
Image IDs can be found in the management console, in the Images section. Search for the image, and click on the edit button associated with the image, <br />
the image id will be in the Address/url bar in the format of <b>&imageid=xx</b>.<br />
<br />
As of version 0.17, you can enter '''?''' at the Image ID prompt to get a listing of all your images and their ID numbers.<br />
<br />
=== Active Directory Integration ===<br />
<br />
==== Setup ====<br />
<br />
===== Overview =====<br />
<br />
FOG has the ability to register a host with Active Directory, in a limited sense. Versions of FOG up to and including 0.28 rely on the netdom.exe executable that is provided as part the support tools on the Windows installation media. In order for Active Directory integration to function, your image will need to have the FOG service installed, along with the Windows Support Tools.<br />
<br />
Versions of FOG from (and including) 0.29 have this functionality built in and do NOT require netdom.exe or the support tools to be installed.<br />
<br />
It is also very important that before capturing your image that the computer is NOT a member of any domain.<br />
<br />
===== Security =====<br />
<br />
<font color="red">Note: The below statement applies to older FOG versions (1.2.0 and below). When using FOG 1.3.0 and above in conjunction with the NEW fog client, this step is not needed. See [https://wiki.fogproject.org/wiki/index.php?title=FOG_Client here] for more information.</font><br />
<br />
<br />
'''Important - Please read!'''<br />
<br />
In order to add a computer to a domain, FOG requires a username and password of an account that has rights to the OU where the computer objects are stored in the domain tree. This user account should have rights to join computers to the Domain, as well as sufficient rights to create/manage computer objects. FOG attempts to keep your password secure by encrypting it, but since FOG is open source, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and only need to be done one time. Please see the documentation below.<br />
<br />
===== Preparing the Image =====<br />
<br />
Before capturing an image to FOG that you would like to use with Active Directory, please ensure that the image:<br />
<br />
<ul><br />
<li>is NOT a member of the domain, change the computer membership to workgroup instead.</li><br />
<li>has support tools installed (Not required for FOG versions from 0.29).</li><br />
<li>has the FOG service installed.</li><br />
</ul><br />
<br />
===== FOG Setup =====<br />
<br />
To setup a host to use AD, navigate to the hosts section of the FOG management portal. <br />
<br />
<ol><br />
<li>Search for, and select a host. </li><br />
<li>Click on the Edit button</li><br />
<li>Scroll down to the Active Directory section.</li><br />
<li>Check the box next to Join Domain after image task</li><br />
<li>Enter the domain NETBIOS name (i.e. MYDOMAIN, not mydomain.com).</li><br />
<li>Enter the Organizational Unit where you would like to have the computer stored in AD. Leave if blank for the default. (Must be in LDAP format).</li><br />
<li>Enter the user name that has access to the computer objects. Do not include the domain name if you are running version 1.2 (your mileage may vary with earlier versions). Development version of FOG will accept a name with or without domain ('''username ''OR'' mydomain/username''').</li><br />
<li>Enter the encrypted password. This password must be encrypted with the [[FOGCrypt]] utility. This utility is located in the FOGCrypt folder of the FOG download package. It is a Windows (.NET) command line application.</li><br />
<li>Click Update.</li><br />
</ol><br />
<br />
The next time you image that computer the service will attempt to register the host with the domain information provided. If you have problems please refer to the FOG Service log file located in c:\fog.log<br />
<br />
===== Making AD Integration Easier =====<br />
<br />
As of version 0.20 of FOG, we have made it a bit easier to manage AD settings in FOG, by allowing for default settings for AD. This will allow the easy population of the domain, OU, username, and password. To set this feature up perform the following:<br />
<br />
# Go to '''Other Information''' -> '''FOG Settings'''<br />
# Set your default values for the following:<br />
## FOG_AD_DEFAULT_DOMAINNAME<br />
## FOG_AD_DEFAULT_OU<br />
## FOG_AD_DEFAULT_USER<br />
## FOG_AD_DEFAULT_PASSWORD (MUST BE ENCRYPTED!)<br />
<br />
To test everything out, go to a host that doesn't have anything setup for AD, and click on the edit button for that host. Go to the host menu, and select Active Directory. Click on the '''Join Domain after image task:''' button and all your default values should be populated.<br />
<br />
==== Securing Active Directory Integration ====<br />
<br />
===== Overview =====<br />
<br />
In order to add a computer to a domain, FOG requires a username and password that has rights to the OU where the computer objects are stored in the domain tree. FOG attempts to keep your password secure by encrypting it, but since FOG is open source and the methods used to encrypt the password are open for all to see, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and it only needs to be done one time. <br />
<br />
===== The Development Environment =====<br />
<br />
The hostname change module is written in c#, so in order to recompile it you will need to download Microsoft's Visual Studio Express Edition for C#. This can be downloaded from: <br />
<br />
http://www.microsoft.com/express/vcsharp/<br />
<br />
Install Visual Studio with the standard options.<br />
<br />
===== Getting the Source =====<br />
<br />
After Visual Studio Express is installed now we need to get the source code for the hostname change module. This is part of FOG download/installation package. This package can be downloaded from:<br />
<br />
http://sourceforge.net/project/showfiles.php?group_id=201099 <br />
<br />
Extract this package, then navigate to "FOG Service\src\FOG_HostNameChanger\"<br />
<br />
Double-click on HostNameChange.sln to open the project. <br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > hostnamechanger properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Once the project has opened, on the right-hand panel, in the "Solution Explorer", double-click on MOD_HostNameChanger.cs.<br />
<br />
After do so, you should get the source code to display in the main panel, scroll down to the line:<br />
<br />
private const String PASSKEY = "FOG-OpenSource-Imaging"; <br />
<br />
Change '''FOG-OpenSource-Imaging''' to anything you like, just remember what you change it to, as you will need it later.<br />
<br />
Then click File -> Save All.<br />
<br />
Then click Build -> Build Solution.<br />
<br />
This will recompile the hostname change module with your unique key.<br />
<br />
Now navigate to "FOG Service\src\FOG_HostNameChanger\bin\Release"<br />
<br />
Copy only the file HostnameChange.dll to "FOG Service\src\FOG Service\bin\Release" (overwrite existing file).<br />
<br />
Navigate to "FOG Service\src\FOG Service\"<br />
<br />
Open the solution by double-clicking "FogService.sln"<br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > FOGService properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Change the build configuration from debug to release<br />
<br />
Right click on "FOG Service Install" and click "Build"<br />
<br />
Navigate to "FOG Service\src\FOG Service Installer\Release"<br />
<br />
Select the 2 files, right-click -> Send To -> Compressed Folder<br />
<br />
Copy the .zip file to your FOG Server "/var/www/html/fog/client". Overwrite the existing file.<br />
<br />
===== Encrypting Your Password =====<br />
<br />
Now that we have changed the passkey, we need you update the FOGCrypt ini file to use this new passkey. <br />
<br />
Navigate to the FOGCrypt\etc directory from the FOG download package.<br />
<br />
Open the config.ini file and change the passkey value to your new passkey, then save the file.<br />
<br />
Now open a command window and navigate using the cd command to the FOGCrypt directory.<br />
<br />
Type:<br />
<br />
FOGCrypt [password]<br />
<br />
Where [password] is the AD user's password that has rights to the Computers section of the AD tree.<br />
<br />
The output from this command is what you will enter in the FOG management portal.<br />
<br />
<br />
=== FOG Reports ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher. <br />
<br />
==== Overview ====<br />
<br />
FOG Reports allow you to export data from FOG in two major formats including CSV, and PDF.<br />
<br />
#'''Snapin Log''' - This report will report on snapin installation history. <br />
#'''Imaging Log''' - This report will report on images deployed to hosts.<br />
#'''Virus History''' - This report lists any viruses that were found on locate computers. <br />
#'''Inventory''' - This report will report on the inventory information collect for network clients. <br />
#'''Equipment Loan''' - This report can be used for equipment loaned to staff members. <br />
#'''User Login History''' - This report contains information about user logins.<br />
<br />
==== Running Reports ====<br />
<br />
Running a report can be done from the Reports section of FOG, then by picking a report from the left-hand menu.<br />
<br />
==== Importing User Created Reports ====<br />
<br />
The reporting section of FOG allows for the end user to create and upload custom reports into FOG. A FOG report is a simple php script that is processed by the server. To import a report simply click on the '''Upload a Report''' button in the reports section, select the report then click on the upload button. The report will then show up on the left-hand menu. <br />
<br />
Please be cautious when uploading reports from an unknown source as the writer of the report has full access to the FOG system and database! Make sure your sources are trustworthy before importing a report!<br />
<br />
==== Creating Custom Report ====<br />
<br />
Custom reports are simple php scripts in FOG. Custom reports can be created based on the following template:<br />
<br />
[http://freeghost.sf.net/other/ReportTemplate.tar.gz Report Template]<br />
<br />
<br />
<br />
=== Plugins ===<br />
*[[Plugins]] give FOG extra functionality wanted for some users but not all.<br />
<br />
=== Other Settings ===<br />
<br />
==== [[Boot Image Key Map]] ====<br />
<br />
==== FOG Client Kernel ====<br />
<br />
===== Overview =====<br />
<br />
In FOG, there aren't really drivers you need to find and download for your clients to work, this is because we ship a Linux kernel that has the majority of hardware device built into it. What this means is if you have a device that doesn't work with FOG you need to either build a new kernel yourself or try a newer kernel that has been released via our kernel updater.<br />
<br />
<br />
===== Kernel Types =====<br />
<br />
We currently build two "lines" of kernels, one called KS or KitchenSink. This kernel tries to include drivers for as many devices as possible, sometimes as the cost of performance, and this is the kernel that we ship with FOG by default. The other "line" is the PS kernel or the Peter Sykes kernel, which is a based on a config submitted by a user. This kernel line tries to be faster, but may not include as many drivers as the KS kernel. <br />
<br />
===== Updating the Kernel =====<br />
<br />
It is possible to update your client kernel from within the UI of FOG. To do this perform the following steps:<br />
<br />
#Log into the FOG Management UI.<br />
#Go to '''Other Information'''<br />
#Select '''Kernel Updates'''<br />
#Select the Kernel you would like to download, typically the newest kernels are on the top of the list.<br />
#Click the download icon<br />
#Select a file name for your kernel, to make it the default kernel leave the name as '''bzImage'''<br />
#Click the '''Next''' Button<br />
<br />
=== Mobile Management Interface ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Mobile web interface is a very basic, stripped down interface for FOG. It is designed to be given to lower level technicians using low powered, mobile devices such as iPod touches, iPhone, PDAs, and internet tablets. The idea behind this interface is to make it easy for techs to re-image a computer while making the rounds at a site.<br />
<br />
==== Using the mobile Interface ====<br />
<br />
The mobile interface can be access via:<br />
<br />
http://x.x.x.x/fog/mobile<br />
<br />
The portal requires a valid user name in password, which can be created via the FOG portal. <br />
<br />
[[Image:Ipod login.JPG]]<br />
<br />
Once logged into the portal, users can search for hosts and image them, and view/cancel active tasks. <br />
<br />
[[Image:Ipod results.JPG]]<br />
<br />
[[Image:Ipod active.JPG]]<br />
<br />
They can not change image associations, nor modify any properties of a host.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Managing_FOG&diff=12075Managing FOG2016-07-09T00:39:59Z<p>Tom-elliott.7271: /* System Activity */</p>
<hr />
<div>== Managing FOG ==<br />
<br />
=== Dashboard ===<br />
<br />
==== Overview ====<br />
<br />
[[File:Dashboard.png]]<br />
<br />
*The FOG dashboard is the first page you are presented with after login. This page just gives you an overview of what is happening on your FOG server.<br />
<br />
==== System Overview ====<br />
<br />
*The system overview box is the the top left hand box on this page. The information presented in this box is the current user, the server IP addresse or hostnames for your web server, tftp server and storage server (which can all be different). This section also gives you the system uptime or how long the system has been running without restart, the number of users logged into the Linux box, and lastly the system load.<br />
<br />
==== System Activity ====<br />
*The system activity box is in the top row, the middle box. This section shows the unicast queue, or the number of unicast deploys that are currently in progress. The queue size can change and is based on the the Storage Group(s). Each storage node has a setting ''Max Clients'' making this the maximum number of hosts that this node can image to. If there are 2 nodes with a max of 10 each then your maximum queue amount is 20. However, remember the more you increase the ''Max Clients'' the slower each particular host will be to deploy the image.<br />
*This means that after 20 hosts are receiving images (at once) the 21st will wait for one of the hosts in progress to complete before starting. The reason this was created was so that you could queue up 100 machines with different images (all unicast) and still keep the system functional. We have heard of this queue being used to re-image an entire building of computers ( ~ 1000+ ) overnight. This section updates in real time.<br />
*It will display all the queued, running, etc... tasks and updates at the same interval as the Bandwidth graph. Also, SVN installations (and later future releases) are able to edit which type of tasks get counted towards the "queue". <br />
*This edit can be performed by going to '''FOG Configuration'''[[file:Config.png]]--> '''FOG Settings'''--> '''General Settings''' --> '''FOG_USED_TASKS'''. <br />
*The text field is numeric values (so you'll need to know which task id's are which type. This text field is a CSV setup. If you type (1,2,3,4,5) it will display all tasks of Deploy, Capture, Debug, Memtest, and Testdisk as queued/active depending on their current state. The exception to this rule, is Task Type ID 8 (multicast) in which case it takes the Jobs, not each individual host task, as a queued slot.<br />
<br />
==== Disk Information ====<br />
<br />
*The disk information box is the top, right hand section of the dashboard page. This is a semi-realtime display of the storage remaining on the storage server.<br />
*There is also a drop-down box that can be changed to your storage nodes to monitor their Disk Information.<br />
*If you get an error in this box, please see [[Dashboard Error: Permission denied...]]<br />
<br />
==== 30 Day Imaging History ====<br />
<br />
*This image shows your imaging trends for the past 30 days<br />
<br />
==== Menu Bar ====<br />
<br />
[[Image:FogMenu.jpeg]]<br />
<br />
This menu appears at the top of every page on Fog's web UI. The icons are, from left to right:<br />
<br />
[[Image:Home.png]]'''Home/Dashboard''' - This is the home screen of the FOG management portal.<br />
<br />
[[Image:Users.png]]'''[[Managing_FOG#Users | User Management]]''' - Individual administrators of the FOG resources.<br />
<br />
[[Image:Hosts.png]]'''[[Managing_FOG#Hosts | Host Management]]''' - This section houses the hosts, which are the pcs to be imaged or to extract images from.<br />
<br />
[[Image:Groups.png]]'''[[Managing_FOG#Groups | Group Management]]''' - This section houses groups, which are similar PCS’ that need tasks done en-masse.<br />
<br />
[[Image:Images.png]]'''[[Managing_FOG#Images | Image Management]]''' - This section allows you to manage the image files stored on the FOG server.<br />
<br />
[[Image:Storage.png]]'''[[Managing_FOG#Storage_Management | Storage Management]]''' - This section allows you to add/remove storage nodes from the FOG system.<br />
<br />
[[Image:snapins.png]]'''[[Managing_FOG#Snap-ins | Snap-in Management]]''' - This section provides ways to automate various post-imaging tasks, not covered in this document<br />
<br />
[[Image:Printers.png]]'''[[Managing_FOG#Printers | Printer Management]]'''' - This section allows for management of printers, allowing you create printer objects that can later be assigned to hosts or groups.<br />
<br />
[[Image:Services.png]]'''Service Configuration'''' - This section allows you to control how the ''client'' service functions.<br />
<br />
[[Image:Tasks.png]]'''[[Managing_FOG#Tasks | Task Management]]''' - This section allow you to perform imaging tasks such as acquiring or deploying images.<br />
<br />
[[Image:Reports.png]]'''[[Managing_FOG#FOG_Reports | Report Management]]''' - Reports let you pull information from the FOG database either as HTML, pdf, or csv.<br />
<br />
[[Image:config.png]]'''Fog Configuration''' - The section has the rest of the settings that don't fit anywhere else like the kernel updater, client service updater, iPXE edits, MAC address list, Log viewer, '''FOG Settings'''.<br />
<br />
[[Image:Plugins.png]]'''[[Managing_FOG#Plugins | Plugins]]''' - Plugins add more functionality to FOG. Must be enabled in ''Fog Configuration''<br />
<br />
[[Image:Logoff.png]]'''Logoff''' - Click this to log off of the Fog web UI.<br />
<br />
<br />
----<br />
<br />
=== Hosts ===<br />
[[File:All_Hosts.png]]<br />
*[http://freeghost.sourceforge.net/videotutorials/hostinfo.html Video Tutorial] (old version but valid instructions)<br />
*A host in FOG is typically a computer, but it can be any network device. Hosts are used to identify a computer on the network and are used to manage the device.<br />
<br />
==== Adding a new host ====<br />
<br />
===== Method 1: Adding a new host via Full Registration =====<br />
<br />
*This is the preferred method, and maybe the easiest method for getting a host into the FOG database, but it requires you to visit the host. When at the client computer, during the boot up process when you see the PXE/iPXE boot menu select '''Perform Full Host Registration and Inventory'''. During this phase you will be prompted for information about the host like hostname, operation system, image, groups, Product Key, and other information. If you enter a valid operating system and image id, you will be asked to Image Now. If desired, you can set the task and it will download the image on the next network boot. <br />
*After the requested information is entered, FOG will pull a quick hardware inventory the client.<br />
*This method of registration will register the mac address(primary wired only), serial number(if available in BIOS), Make/Model, and other Hardware information with the FOG server.<br />
*For more information on these commands please see: [[FOGUserGuide#FOG_Tasks | Client Side Tasks]]<br />
<br />
===== Method 2: Adding a new host via Quick Registration =====<br />
<br />
*Quick registration is very much like the Full host registration, with the exception that it will not prompt you for any input, nor give you the option to image the computer directly from the registration screen. When the host is added to the FOG server, it will be named with the hosts primary mac address. This method is great for adding a lab of 30 computers to FOG quickly and easily.<br />
*This feature is disabled by default, to enable this feature:<br />
#Go to '''FOG Configuration'''[[image:config.png]]<br />
#Select '''FOG Settings'''<br />
#Find section '''FOG Quick Registration'''<br />
#Tick ON '''FOG_QUICKREG_AUTOPOP''' to &#10004;<br />
#Set '''FOG_QUICKREG_IMG_ID''' to the image ID you would like to use for all newly created hosts.<br />
#'''FOG_QUICKREG_OS_ID''' will be auto populated when "Save Changes" is selected. (OS is now associated within the image so no need to select an OS)<br />
#Change '''FOG_QUICKREG_SYS_NAME''' to what you would like to name you new machines, where * will be replaced by a number. If you would like to zero pad numbers you can use '''LAB300-**''' which would result with '''LAB300-03''' or '''LAB300-09'''.<br />
#Set '''FOG_QUICKREG_SYS_NUMBER''' to the first number you would like to use.<br />
*After each registration the computer will automatically image and the '''FOG_QUICKREG_SYS_NUMBER''' will incremented by 1.<br />
<br />
===== Method 3: Manually Adding =====<br />
<br />
*[http://freeghost.sourceforge.net/videotutorials/addimghost.html Video Tutorial]<br />
*Adding a new host can be done in the hosts section of FOG.[[Image:Hosts.png]] Then by clicking on the "Add New Host" button on the left hand menu. At least a hostname and a MAC address must be entered in order to add the host to the FOG database. <br />
<br />
*A host consists of the <span style="color:RED">'''required*'''</span> fields: <br />
<br />
#'''Hostname*''' - A string used for the Windows Hostname of client, this must be less than 15 characters long. <br />
#'''MAC address*''' - This field is used in for for a unique identifier for the host. The string must be separated by : (colon), in the format of 00:11:22:33:44:55. <br />
<br />
*Hosts can also include, but are not required:<br />
<br />
#'''IP address''' - Just your typical IP address, in the typical formation of X.X.X.X or 192.168.1.1.<br />
#'''Description''' - Information for your own reference.<br />
#'''Image Association''' - This field is a drop down box that will allow you select an image object created in the '''Images''' section. <br />
#'''Operating System''' - Drop down box that allow you to select the primary type of operating system running on this host.<br />
#'''Kernel''' - This is only used if you want to overwrite the default kernel used for FOG. Needs to be specified as fog/kernel/mybzImage<br />
#'''Kernel Arguments''' - This allow you to add additional kernel arguments for booting the host (ie: vga=6, or irqpoll). <br />
#'''Primary Disk''' - This option allows you to force a device to use during imaging if fog fails to detect the correct device node.<br />
*This page also allows for configuration of Active Directory integration, but this topic will be covered later. When all settings are added, click on the "Add" button.<br />
<br />
===== Method 4: Importing Host Information =====<br />
<br />
*When getting started with FOG, you need to enter the host information for the devices on your network. We understand this can be a long difficult process, so in order to make this process easier we created a page that allows you to import most of the host information from a CSV file. <br />
*The CSV file that is imported to FOG must be in the following format, and the file should not have a header row. <br />
<pre>MAC Address,Host name,IP Address,Description,OSID,ImageID</pre><br />
*The '''MAC Address''' (<span style="color:RED">'''required*'''</span>) is the NIC's MAC address seperated by ''':''' (colon).<br />
*The '''Host name''' (<span style="color:RED">'''required*'''</span>) is the computer's Host name (must be less than 15 characters, should not include underscores, according to [http://tools.ietf.org/html/rfc952 | Network Working Group ]).<br />
*The '''IP Address''' (<span style="color:Orange">'''Can be left as blank'''</span>)is the computer's IP address (format x.x.x.x). <span style="background-color:Yellow;">''This field is '''NOT''' currently used by FOG''</span><br />
*The ''''Description''' (<span style="color:Orange">'''Can be left as blank'''</span>)is any text description you would like associated with the computer.<br />
*The '''OSID''' (<span style="color:RED">'''required*'''</span>)is the number representing the operating system. It can be found in the table "supportedOS" in the field osID.<br />
*The '''ImageID'''(<span style="color:RED">'''required*'''</span>) is the number representing the images file linked to this image. The image definition must already exist and this number can be found in the table "images" in the field imageID.<br />
*<span style="background-color:Red; color:white;">The file must be saved as a CSV '''without''' a header row.</span><br />
*Sample:<br />
<pre><br />
00:00:02:AF:00:E0:01:0F,adminoff1,10.0.1.150,Main admin office computer,5,14<br />
00:00:02:AF:00:E0:01:04,adminoff2,,admin office 2 computer,5,13<br />
00:00:02:AF:00:E0:01:02,adminoff3,,,5,12<br />
</pre><br />
<br />
====== Importing the File ======<br />
#After the file is prepared and saved, you will need to log into the FOG Management Portal.<br />
#Then click on the Hosts icon [[Image:Hosts.png]].<br />
#On the left-hand menu, click on '''Import Hosts'''.<br />
#Browse for your file, then click "'''Upload CSV'''".<br />
<br />
==== Managing Hosts ====<br />
<br />
===== General =====<br />
<br />
*Once hosts have been added to the FOG database you can modify or delete them. Finding a host which you wish to edit can be done in two ways, the first is by listing all the hosts that exist. This is done by clicking on the "List All Hosts" button. The second way to locate a host is to use the search function. To search for hosts click on the "New Search" button, if you would like to search for all hosts you can enter a "*" or "%". The search function will search in the host's name, description, IP and MAC address. <br />
*Once a host is located, it can be edited by clicking on the edit button or on the Host Name itself. Clicking on the edit button will display all the properties that were shown during host creation with the addition of snapin, printers, active directory, service settings, hardware, virus history, and login information. <br />
*The entire host object can be removed from the FOG system by clicking on the delete option at the bottom of the Host Menu.<br />
<br />
===== Multiple MAC Address Support =====<br />
*When FOG first registers your HOST computer it uses the first connected Ethernet cable and defaults it to the Primary MAC Address. Once the FOG Client is installed and reporting data back to the FOG server it may register other additional MAC addresses, such as wireless and other wired connections. Also, an additional MAC can also be added directly under the Host definition.<br />
*These new MAC Addresses will need to be approved before FOG will take advantage of them.<br />
*#'''Host Management''' [[File:Hosts.png]]--> '''[Selected Host]''' -->''Additional MAC''<br />
*#'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' -->''Approve Pending Addresses''<br />
*'''Fog Configuration'''[[File:Config.png]]--> '''MAC Address List''' At this location you can also ''"Update Current Listings"'' giving updated information on the MAC Addresses and their manufactures, listing it under the Host.<br />
<br />
===== Host Status =====<br />
<br />
*Host Status displays an indicator icon next to the host within the FOG UI showing the status of the machine. This function executes a ping based on the host's name. So in order for this to work you must have an internal DNS server that is tied in with your DHCP server, so that when a DHCP address is given out, the DNS server is notified with the new IP. If that is setup correctly, you must make sure your FOG server is able to ping a host from the command line using:<br />
ping somehostname<br />
*If the server isn't able to ping the client, then the status of the host in the UI with always show as unreachable. If you can ping the client using the FQDN, like<br />
#Replace forproject.org with your domain suffix<br />
ping somehostname.fogproject.org <br />
*Then you will need to adjust the DNS '''Search domains:''' setting on your sever. After making this change you will need to restart the apache server for it to take affect.<br />
*If after this, you still can't ping your clients, the problem may be due to a firewall issue with the clients. In this case, client specific configuration changes might be needed.<br />
*With an increase in Hosts(250+) this "ping" will delay the loading of the List ''All Hosts'' page. Disabling this feature will help in loading this page.<br />
*# '''Fog Configuration''' [[File:Config.png]] --> '''Fog Settings''' --> '''General Settings''' --> Untick ''FOG_HOST_LOOKUP''<br />
<br />
===== Creating Host Groups =====<br />
<br />
*FOG allows you to create groups of hosts which then allows you to take action on a whole grouping of hosts. Hosts can be created either on the "List All Hosts" section or by doing a search for hosts. To create a group select the computer you would like to be member of the group by placing a check in the box next to the hostname, or by clicking the check all button in the title row. After the hosts are selected scroll to the bottom of the screen and then enter a name in the create to group box or select a group to add the hosts to. Then click on the "Process Group Changes" button.<br />
<br />
<br />
----<br />
<br />
=== Groups ===<br />
*Groups in FOG are used to organize your hosts into real world logical clusters. This is intended to ease management of the computers. A single host can be a member of infinitely many groups, so if a computer happens to be a member of the group called "Third Floor", it could also be a member of "Math Department", or "Dell PCs." Groups make using FOG possible for organizations with a very large number of PC's.<br />
<br />
==== Creating Groups ====<br />
*Groups are created in two sections:<br />
*#'''Group Management'''[[file:groups.png]] --> '''Create New Group'''<br />
*#Hosts section of FOG based on searches, for information on how to create groups, please see [[Managing_FOG#Creating_Host_Groups | Creating Host Groups.]]<br />
<br />
==== Managing Groups ====<br />
<br />
*After a group has been created, it can be managed from the groups section of FOG. Locating groups is very similar to locating hosts, you can either list all groups or you can search for groups. When searching for groups your search criteria is matched against the group name or the group description. Once a group is located it can be modified by clicking on the "Edit" button on the right hand side of the table or the Title of the group itself.<br />
<br />
*Under the section "Modify Group [Groupname]" there are options to change the group name, group description, group product key, or to delete the group. If you wish to update the group name or the group description make your change then click on the "Update" button within that section. If you would like to remove the group then simply click on the "Delete" button within this section.<br />
<br />
*As a reminder, when saving or updating settings for hosts Fog uses the last to save option. If you set all the hosts in this group to have ''Image A'' and then change ''Host A'' in that group to be ''Image B''. The group settings will not override the settings for ''Host A'', unless you go back to the group and set all hosts back to ''Image A''.<br />
<br />
===== Group Basic Tasks =====<br />
<br />
*This section will allow you to start a task on this group of hosts. From this section you can start any task to all hosts within the group. Multi-Cast is also available from here. Please review [[FOGUserGuide#Fundamental_Concepts | Fundamental Concepts]] to determine the required download task.<br />
<br />
===== Group Membership Setup =====<br />
<br />
*This page allows you to view/add/delete membership of the group. This section will list all of the members of the group and give you the option to remove members from the group.<br />
<br />
===== Group Image Associations =====<br />
<br />
*The groups page also allows you to update the image association for all the members of the group. This can be done in the "Image Association for [groupname]" section. Select the image association from the drop-down box and select "Update Images" and then all your host objects for that group will be modified.<br />
<br />
===== Group Snapins =====<br />
<br />
*You can add or remove snapins to all hosts in a group, but because the nature of groups, it is not possible to see what snapins are currently associated with a group. This is because the snapins are not directly associated with the group, the are associated with the host and it is possible for all members of the groups to have different snapins linked with each host. What fog does allow you to do is batch add a snapin to all the hosts within a group. At the same time you can batch remove a snapin from all the hosts within a group. This functions can be done via the '''Add Snapins''' and '''Remove Snapins''' button in the Group Menu.<br />
<br />
===== Group Service Settings =====<br />
<br />
*The '''Service Settings''' page allows you to enable or disable certain service modules on all hosts in the group, as well as change some service settings for group such as screen resolution, and auto log off settings.<br />
<br />
===== Group Active Directory Setup =====<br />
<br />
*Active Directory integration settings can also be distributed to all members of a group via this page. The section "Modify AD information for [groupname]" allows you to do so. This section provides the same options as the host screen but allows you to mass update all of your hosts.<br />
<br />
===== Group Printers =====<br />
<br />
*The '''Printers''' page allows you to add or remove printer associations to all hosts within the group. This page also allows you to set the management level all hosts within the group.<br />
<br />
===== Group Membership Information =====<br />
<br />
*The most important thing to remember about groups in FOG is that they do not contain their own properties. When you make changes to a group, you are really make changes to every host object within the group. For example, if you change the OS association for a group, then go back to the one of the host objects that is a member of that group, it will have the new OS association on that object.<br />
<br />
<br />
----<br />
<br />
=== Images ===<br />
<br />
*Image objects in FOG are the representation of the physical files that contain the disk or partition images that are saved on the FOG server.<br />
<br />
==== Creating Images Objects ====<br />
<br />
*Image objects in FOG are created in the Images section of the FOG management portal. To create a new image click on the "New Image" button on the left hand menu. An image object requires a name and a image file path. <br />
<br />
*When creating images you have a few choices in how you want that image to 'act'. The possible partition types include:<br />
Single Partition<br />
Multiple Partition - Single Disk<br />
Multiple Partition - All Disks<br />
Raw Image<br />
<br />
====='''FOG 1.2.0'''=====<br />
<br />
*'''Single Partition''' - Single Partition images support only single NTFS partitions. These partitions are resizable, meaning that an image from a 200GB hard disk can be put on a 10GB hard disk as long as the data is less than 10GB. This image type is destructive, which means that your partitions will be modified, and if the task doesn't finish without error it is possible that your computer may not be bootable.<br />
<br />
*'''Multiple Partition - Single Disk''' - Single Disk will back up all the supported partitions on the first disk drive detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity. It is possible to backup NTFS drives with vendor specific 'restore' partitions with this type of image. <br />
<br />
It is possible to backup Linux systems with this type of image given the following criteria:<br />
1.) There is a Grub boot loader present.<br />
2.) LVM is not used.<br />
3.) The partitions include '''ext2''', '''ext3''', '''reiserfs''', or '''swap'''.<br />
4.) The swap partition should be moved out of the extended partition (for ubuntu 9.04)<br />
<br />
*'''Multiple Partition - All Disks''' - All Disks will back up all the supported partitions on all disk drives detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity.<br />
<br />
*'''Raw Image''' - Raw Image will do a raw sector-by-sector copy of your hard disk, which means that if you have a 80GB hard drive, dd will process 80GB of data, and you will end up with a VERY LARGE image that is VERY SLOW to create and restore.<br />
<br />
*All of these images can be deployed using multi-cast, unicast, or torrent-cast to clients.<br />
<br />
====='''FOG 1.3.0 (still in development as of feb 11, 2016)'''=====<br />
<br />
Image types:<br />
<br />
* '''Single Disk - Resizable'''<br />
<br />
This should always be your first choice. It takes a copy of every partition on the disk, and resizes any partition that has excessive free space to a smaller size. Each resizable partition will go through a "Resizing filesystem" process for each partition that is to be resized. This process can take some time depending on how severe disk fragmentation is. It's recommended to run "Disk defragmenter" (win 7 and lower) or "Optimize Drives" (Win8+) prior to taking a resizable image. The partitions that are shrank will be shrunk down to only 2GB of free space on their partition. This allows an image taken from a 6TB drive with only 20GB of used space to be deployable to a HDD with a total capacity of 40GB. When the partitions are laid onto the destination drive, all resized partitions are intelligently expanded to utilize the entire drive.<br />
<br />
* '''Multiple Partition Image - Single Disk (Not Resizable)'''<br />
<br />
This is what you should pick when Single Disk - Resizable fails.<br />
<br />
* '''Multiple Partition Image - All Disks (Not Resizable)'''<br />
<br />
This is what you should pick when you want all partitions from multiple disks to be captured. If you only wanted a particular partition captured or drive captured in a multi-drive system, you can define the disk or partition you want within a Single Disk - Resizable or Multiple Partition Image - Single Disk (Not Resizable) type image. This is done through the "golden" host's "General" area, in the "Host Primary Disk" field.<br />
<br />
* '''Raw Image (Sector By Sector, DD, Slow)'''<br />
<br />
This should always be the last resort. This takes an absolute exact copy of an entire disk and does not compress the data. If you take an image from a 6TB disk, the resultant image will be 6TB in size. This image type also takes a '''significant''' amount of time to capture and deploy.<br />
<br />
==== Modifying Image Objects ====<br />
<br />
*Image object can be located either by a search or by listing all image objects.<br />
<br />
==== Adding Existing Image Objects ====<br />
<br />
*To restore an image to the FOG database:<br />
*# Create a new Image definition through the management browser<br />
*# Specify image name (SampleXPImage)<br />
*# Specify storage group (default)<br />
*# Specify image file path (SampleXPImage)<br />
*# Specify image type<br />
*# Log into the box hosting FOG, and move/rename your image to match browser input<br />
*# Create hierarchy if necessary. FOG, by default, puts images in /images/, so for the above example, you would need to create a folder structure like so: /images/SampleXPImage<br />
*# Drop your image file into the folder (be sure it's named the same as image name above)<br />
<br />
----<br />
<br />
=== Storage Management ===<br />
<br />
*The Storage Manager introduces the concept of '''Storage Groups.''' Basically, a storage group is a group of NFS servers that share images and share the load of computers being imaged. Any member of a storage group is referred to as a '''Storage Node.''' You may have as many storage groups as you wish and as many storage nodes within those groups as you wish. In each storage group, there is one storage node which is designated as the '''Master''' of that group. Basically what this means it that is the node where all image captures go, this node handle multicasting tasks for the group, and is the image replicator the for the group. This means that whatever images are stored on this node are what gets distributed to the entire group. <br />
<br />
*What this new system of storage management gives us is a distributed model for FOG which allows for more unicast transfers at a single time. We also gain data redundancy. We also take stress off of the main FOG server.<br />
<br />
*Below is a brief overview of Storage Groups<br />
<br />
[[Image:Nfsgroup.jpg]]<br />
<br />
*This image shows a single Storage Group and the flow of data within the group. The queue size of the system is the sum of the queue size of all the storage nodes within the system. So if you have 4 nodes each with a queue size of 10, then the queue size of the system is 40, which means 40 clients can be imaged (unicast) at one time. <br />
<br />
[[Image:StorageGroups.jpg]]<br />
<br />
*This image shows that it is possible to have multiple storage groups on your network, which are isolated from each other. This image also demonstrates, that captures always go to the master node and multicast session always send data from the master node. Images are pushed out from the master node of the group to all other members of the group.<br />
<br />
*'''Key Benefits'''<br />
*#Increased throughput<br />
*#Redundant Storage<br />
*#Scalability<br />
<br />
*Also see [[Knowledge_Base#Storage_Nodes | Storage Nodes]] for tutorials.<br />
<br />
==== Adding a Storage Node ====<br />
<br />
*Definition: Storage Nodes provide extra [http://www.fogproject.org/wiki/index.php?title=InstallationModes NFS/FTP storage space] which increases available throughput and redundancy within a network. They do not provide PXE, TFTP, or DHCP services at secondary sites. To enable additional PXE and TFTP services at secondary sites see this section: [[#Including_multiple_PXE_.2F_TFTP_servers|#Including multiple PXE / TFTP servers]]<br />
<br />
*Video Tutorial: http://www.youtube.com/watch?v=X72WthDGwsw&fmt=18 (old video but still valid infomation)<br />
<br />
*To add an additional storage node to the network, the computer should be prepared in the same way the main FOG server would be prepared (disable firewall, SELinux, etc). You can also safely mix operating systems for the nodes of you storage group, some nodes can be running fedora, and some can be running Ubuntu. It is important to update your storage nodes when you upgrade to a new version of FOG. Installation of a storage node is done with the same installer for a normal FOG server. Installation can be started by running the installer script, the steps are detailed below.<br />
<br />
*Surprisingly enough some users have actually gotten a Windows Storage node to work properly. See [[Windows_Storage_Node]] for more information on this.<br />
===== Installing the Node =====<br />
*To Install a node:<br />
*#Run the installation script, ./installfog.sh<br />
*#Select your operating system.<br />
*#When prompted for Server Installation Mode, select '''S''', for storage node.<br />
*#Enter the IP address of the storage node.<br />
*#Confirm you interface<br />
*#Then you will need to enter the IP address or host name of the node running the FOG database<br />
*#Then you will be prompted for a username (typically fogstorage)<br />
*#and a password that is located on the FOG server, that will allow the storage node to access the main FOG server's database. This information is located in the FOG management portal for convenience (on the main for server). It can be accessed via '''Other Information''' -> '''FOG settings''' -> section '''FOG Storage Nodes'''.<br />
*#You will then be prompted to confirm your installation settings, if they are correct press '''Y''' end hit '''Enter'''.<br />
*#When installation completes, the install will produce a username and password that will be needed to add the storage node to the FOG management portal. Username is "fog", password is in /opt/fog/.fogsettings<br />
<br />
===== Adding the Node to the Management Portal =====<br />
*To Add a Node<br />
*#Log into the FOG Management Portal<br />
*#Navigate to the '''Storage Management''' section.<br />
*#Click on '''Add Storage Nodes'''.<br />
*#For the '''Storage Node Name''', enter any alpha numeric string to represent the storage node. <br />
*#Enter any description you wish<br />
*#Enter the IP address of the storage node you are adding. This must be the IP address of the node, DO NOT use a hostname here or the node will not function correctly. <br />
*#Enter the maximum number of unicast clients you would like this node to handle at one time. The value that we recommend is 10. <br />
*#Is Master Node is a very dangerous settings, but for right now leave it unchecked, for more details please see: [[#Master Node Status]].<br />
*#Next, select the storage group you would like this member to be a part of, in our example we will pick '''Default'''<br />
*#Next, specify the image location on the storage node, typically '''/images/''', your image location should always end with a '''/'''.<br />
*#Next, you will want to check the box, to enable the node.<br />
*#The last two fields take the username and password that are generated during the installation of the storage node. username is "fog", password is in /opt/fog/.fogsettings<br />
*#Then click '''Add''' to have the node join the storage group.<br />
<br />
==== Monitoring The Master Node ====<br />
<br />
*On all storage nodes there is a new service (as of version 0.24) called FOGImageReplicator which is a very basic script which, if the node is the master, copies all of its images to all other nodes in the storage group. The coping is done every ten minutes by default, which means your images are NOT instantly duplicated to all nodes. <br />
<br />
*If you would like to view the status of the image replication, you can do so on the storage node by switching to tty3, by typing ctl + alt + f3. Output is also logged to a file in the '''/opt/fog/log''' directory.<br />
<br />
*FOGImageReplicator logs are also located in [[File:Config.png]] '''Fog Configuration''' --> '''Log Viewer''' --> '''FILE: [Select Image Replicator]'''<br />
<br />
==== Master Node Status ====<br />
<br />
*The '''Master Node''' (could be the server or a particular node) in a storage group is the node that distributes images files to all other nodes in the storage group.<br />
<br />
*If you have all your images distributed across 3 nodes in a storage group, '''if you add a new storage node that has no images stored on it, making that node master will cause it to take over and push it's image store of nothing to all other nodes, wiping out all of your images'''. So it is important to be very careful and backup your images when you change a node's master status.<br />
<br />
*Notes - You '''can''' have many storage nodes in a storage group. You '''can''' have one master storage node in a storage group. You '''can not''' have more than one master storage node in a storage group. You '''must have''' one master storage node for replication to take place to other nodes in the group. '''If''' a master storage node is set, all captures '''first''' go to the master storage node of the storage group the image is assigned to; and are '''then''' replicated to other storage nodes.<br />
<br />
==== Including multiple PXE / TFTP servers ====<br />
<br />
*A traditional Master Storage Node, [[#Adding_a_Storage_Node|as described above]] only provides File Storage redundancy. While this can help increase multicast throughput on a single network, all the machines under FOG management must be within the same subnet/VLAN so that DHCP broadcast requests can be directed to the Main server. (see note below)<br />
<br />
*<pre>'''Note:''' depending on the network, it may be possible to configure [http://en.wikipedia.org/wiki/UDP_Helper_Address iphelper] to forward packets to the Main FOG server</pre><br />
<br />
*The following instructions are intended to help configure additional Storage Nodes to operate independently on separate networks, while still syncing with and taking commands from a single Main FOG server.<br />
<br />
*Click here for instructions on setting up [[Multiple_TFTP_servers|multiple PXE / TFTP servers]]<br />
<br />
=== Users ===<br />
<br />
==== Overview ====<br />
<br />
*FOG has only two levels of users, '''regular''' users and '''mobile''' users. Regular users have access to the mobile portal and the full management portal. Mobile users have access to only the mobile management portal and Quick Image functions.<br />
<br />
==== Creating Accounts ====<br />
<br />
*All accounts are created under the "Users" section of the FOG portal. To create a new account click on the "New User" button on the left hand side of the page. All accounts must have a unique username, and a password. After filling in the required information click on the "Create User" button.<br />
<br />
==== Modifying Users ====<br />
<br />
*FOG accounts can be modified from within the users section. First you must locate the account you wish to modify by clicking on the "List all Users" button on the left hand side of the page. When a user is located, click on the edit button on the right hand side of the table.<br />
<br />
=== Tasks ===<br />
<br />
==== Overview ====<br />
<br />
*Tasks are all the actions that you can take on a computer, and in FOG there a numerous tasks that can be done including:<br />
<br />
*Deploy (Unicast)<br />
*Capture (Unicast) <br />
*Deploy - Multicast <br />
*Debug<br />
*Memory Test<br />
*Test Disk<br />
*Disk Surface Test<br />
*Recover (File Recovery)<br />
*Hardware Inventory<br />
*Password Reset<br />
*Deploy All Snapins<br />
*Deploy Single Snapin<br />
*Wake-Up<br />
*Deploy - Debug (Unicast)<br />
*Capture - Debug (Unicast)<br />
*Download - Without Snapins (Unicast)<br />
*Fast Wipe<br />
*Normal Wipe<br />
*Full Wipe<br />
*Virus Scan<br />
*Virus Scan - Quarantine<br />
*Donate<br />
*Torrent-Cast<br />
<br />
<br />
In the tasks section of FOG you can perform tasks on single hosts or groups of hosts. This section also allows you to monitor selective tasks, and stop/cancel tasks.<br />
<br />
==== General Tasks ====<br />
<br />
The general/common Tasks in FOG include unicast image capture, and unicast image send, as well as a multicast image send. In FOG, sending an image to the server is considered an image capture, and deploying an image to the client is called a send. Both of these tasks can be started directly from the search, list all hosts, and list all groups pages. <br />
<br />
To perform a simple image capture, click on the upward facing arrow next to the host. Captures are only possible on a host, not a group. Capturing an image will also overwrite any image file that may already exist for that host without any notification or confirmation.<br />
<br />
Please note that capturing images of Windows Vista and Windows 7 requires special command to be run on the clients prior to image capture. Please see [[What do I have to do to an image before capturing?]] for more details.<br />
<br />
For a video demonstration of an image capture, please see: http://www.youtube.com/watch?v=jPPZr0abVfg&fmt=18<br />
<br />
To perform a simple image send, click on the downward facing arrow next to the host. An image send can be done on a host or a group. When sending an image to multiple computers FOG works in queue mode, which means that it will only send to 10 (by default) computers at one time. This is done to keep the server from being overworked. As soon as the a machine finishes, another from the queue joins.<br />
<br />
To perform a multicast image send you must search for a group of hosts on the "Task Management" page. Multicast tasks can only be performed on a group of hosts. Multicast tasks will send to all the computers in the group at once, and the task will not start sending until all members of the group have connected with the server. After starting a multicast task, status can be view by clicking on [ctl]+[alt]+f2. A log is also kept for multicast transfers which is stored at /opt/fog/log.<br />
<br />
==== Advanced Tasks ====<br />
<br />
The advanced Tasks in FOG include everything that is not a simple capture, simple deploy or mutlicast deploy. <br />
<br />
=====Debug=====<br />
<br />
Debug mode boots the linux image to a bash prompt and allows the user to issue all commands by hand. <br />
<br />
=====Capture - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to capture the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Debug)=====<br />
<br />
Does the same thing that debug mode does, with the exception that the environment is setup to send the image. To start the imaging process just type:<br />
<br />
fog<br />
<br />
=====Send - Unicast (Without Snapins)=====<br />
<br />
This task does a normal send task with the exception that if any snapins are associated with the host, they are not deployed to the host. <br />
<br />
=====Deploy All Snapins=====<br />
<br />
This task will send all the snapins associated with a host to the host without imaging it.<br />
<br />
=====Deploy Single Snapin=====<br />
<br />
This task will send a single snapin that is associated with the host to the host without imaging it. (Note: The snapin must be associated with the host already)<br />
<br />
=====Memory Test=====<br />
<br />
Boots to Memtest86, a memory testing tool. This a task will not exit with out user intervention at the client side. The task must also be manually stopped via the management front end.<br />
<br />
=====Wake Up=====<br />
<br />
Wakes up host or group of hosts using Wake-on-Lan. <br />
<br />
=====Fast Wipe=====<br />
<br />
This task does a quick and dirty wipe of the drive. This task writes zeros to the first ~40MB of the disk. This task should NOT be used if you don't want your data to be recoverable. <br />
<br />
=====Normal Wipe=====<br />
<br />
This tasks writes random data to the entire surface area of the disk. <br />
<br />
=====Full Wipe=====<br />
<br />
This tasks writes random data, multiple times to the entire surface of the disk. <br />
<br />
=====Disk Surface Test=====<br />
<br />
This task will look for bad blocks on the hard disk and report them back to the client console. <br />
<br />
=====File Recovery=====<br />
<br />
This task will load an application that can be used to recover lost files from the hard disk. <br />
<br />
=====Virus Scan=====<br />
<br />
This task will update and load ClamAV and scan the partition for viruses. It will either scan and report or scan and quarantine files, it will also report back to the management portal with the results of the scan.<br />
<br />
=====Hardware Inventory=====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/InventoryUpdate.swf.html Video Tutorial]<br />
<br />
The hardware inventory task will execute the same task as the fog.reginput client side task. Since the host is already registered, all it will do is update the computers inventory and restart. It is visioned that this task could be run on a regular interval on a group of all computers in your network, or some sub group of computers in your network. Then on the next reboot of those computers an inventory would be performed.<br />
<br />
==== Scheduling ==== <br />
<br />
As of version 0.27 of FOG, select tasks can be scheduled using a static date/time combination or using a cron style repetitive task scheduling. Task scheduling can be performed on either single hosts, or on groups of computers. One thing to note about task scheduling that isn't intuitive is that it '''requires an image to be associated with the host, even for non-image based tasks!''' The reason for this is because tasks are only run on the master storage node associated with that host, and the only way to tie a storage node to a host is via an image. We did this to prevent multiple storage nodes to try running the same task for a specific host. <br />
<br />
===== Single Execution Scheduling =====<br />
<br />
Single task execution will run a task at a single date and time, then the task will be discarded. To scheduled a single execution task, you would go to the tasks section of fog, then select the host or group you would like to schedule the task, then select the task you would like to schedule. You will then be presented with the screen show below.<br />
<br />
[[Image:Sched.png]]<br />
<br />
To schedule a single execution task, click on white text box below "Schedule Single Task Execution?" and a pop up calendar will load and allow you to select your date and time for the task. Click on the date to close the calendar, then start you task. <br />
<br />
===== Cron Style Task Scheduling =====<br />
<br />
Cron style task execution allows you to do complex repetitive task scheduling. After a cron task executes, it is not removed, as single executions tasks are. Cron style tasks, as the name suggests are similar to the Linux cron task scheduler format. Cron style tasks are created as single execution tasks are, except when presented with scheduling options, select the option "Schedule Cron Style Task Execution". Below that check box are a series of text boxes including:<br />
<br />
min -> Minute [00-59]<br />
hour -> Hour [00-23]<br />
dom -> Day of Month [01-31]<br />
month -> Month [01-12]<br />
dow -> Day of Week [01-07] (Sunday ==> 0, Saturday ==> 6)<br />
<br />
To give an example of how this works, if you wanted a capture task to run at '''10:00pm everyday''' you would enter the following:<br />
<br />
0 22 * * *<br />
<br />
This basically says run the task a '''0''' minutes into the hour, on the '''22nd hour (10:00pm)''', on '''every day of the month''', on '''every month of the year''', on '''every day of the week'''.<br />
<br />
To take this example further, lets say you only wanted to capture the image '''every other day''', we could do this by adding:<br />
<br />
0 22 */2 * *<br />
<br />
The '''*/2''' now tells the scheduler to only run on '''even days of the month'''. <br />
<br />
We could even ask the scheduler to only do a backup on '''even weekdays''' by adding:<br />
<br />
0 22 */2 * 1-5<br />
<br />
The 1-5 we just added says only run on days 1 through 5, which relate to Monday - Friday.<br />
<br />
Now we will ask the scheduler to only backup in the month of February.<br />
<br />
0 22 */2 2 1-5<br />
<br />
Another basic example could be if you wanted to run an inventory update on the first of every month you could use:<br />
<br />
30 1 1 * *<br />
<br />
This task would then run at '''1:30''' on the '''1st of every month'''.<br />
<br />
<br />
The FOG scheduler doesn't support 100% of the operations that cron supports, below are the operations that are supported:<br />
<br />
4 - Listing a static number<br />
4,5,6,7 - Listing a group of numbers<br />
4-7 - ranges of numbers <br />
4-7,10 - ranges and lists<br />
*/5 - * divided by a number<br />
* - Wildcard<br />
<br />
For more information on cron please see http://en.wikipedia.org/wiki/Cron<br />
<br />
=== Printers ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher.<br />
<br />
==== Known Issues ====<br />
<br />
Setting of the default printer will only work if the fog tray icon is running.<br />
<br />
==== Overview ====<br />
<br />
The printers section of FOG allows you to create printer definitions that you can later associate with hosts. The FOG service looks at these associations and during service it will attempt to install any printers listed. This service has three settings which define how the printers are managed, printer management can be set to:<br />
<br />
<ul><br />
<li>No Printer Management</li><br />
<li>Add Only</li><br />
<li>Add and Remove</li><br />
</ul><br />
<br />
All hosts default to '''No Printer Management''' which means that the FOG service does nothing to the hosts printers. '''Add Only''' does as the name implies, and will only add printers to the host machine, it will not remove any existing printers that may be installed. '''Add and Remove''' will take full control of the hosts printing system and only allow for the printers that are specified by the FOG management console to exist on the host. <br />
<br />
==== Adding New Printers ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf Video Tutorial]<br />
<br />
In order for the printer to be added to the host computer, the printer drivers must be stored in a public area, or included on the host computer. This public area can be a Novell Network share where public has read-only access, a Windows share that is public read-only to everyone, or a Samba share (possibly residing on the FOG server) that is public read-only to everyone. This share must be accessible via a UNC path as the service may attempt to install the printers before drive mapping occurs. In this share the printer drives and .inf file must exist. FOG supports install IP based (Jet-Direct) printers, public access NDS printers, Local printers, windows share based printers, (and we think, but could use a confirmation as it hasn't been tested) AD based printers. <br />
<br />
If you wish to see what printers are included with Windows XP, navigate to c:\windows\inf\ntprint.inf. Open this file with a text editor and you will be able to install all the printers listed using the ntprint.inf file. <br />
<br />
To create a new printer definition click on the Printer icon on the system menu bar. Then on the left hand menu, click on '''Add New Printer'''. The form you are presented with will require you to enter:<br />
<br />
<ul><br />
<li>'''Printer Model''' - This must match the name in the INF file.</li><br />
<li>'''Printer Alias''' - This can be anything you wish and it is what the end user will see.</li><br />
<li>'''Printer Port''' - This is something like '''LPT1:''', or '''IP_1.1.1.2'''.</li><br />
<li>'''Printer INF File''' - This is the path to the INF file for the printer driver.</li><br />
<li>'''Printer IP''' - (optional) This is ip address of an IP based printers only, this can take the form of '''1.2.3.4:9100''' or '''1.2.4.5'''. If the port doesn't exist already, it will create one named ''' IP_x.x.x.x''', where x.x.x.x is the ip address. That is what should be entered in the port field.</li><br />
</ul><br />
<br />
After all the required information is entered, click on the '''Add Printer''' button.<br />
<br />
==== Linking Printers to Hosts ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/printer.swf.html Video Tutorial]<br />
<br />
Linking printers to hosts can be done from either the hosts section or the groups section. In the hosts section find the host you would like to add a printer to, click on the edit button associated with that host. In the host menu, click on the '''Printers''' button. First select how you would like the host to be managemed, either '''No Printer Management''', '''Add Only''', or '''Add and Remove'''. Then in the section below, select the printer you would like to install from the drop down list and click on the '''Update''' button.<br />
<br />
==== Creating a Samba Based Printer Store on FOG ====<br />
<br />
If you do not have a public sever where you can store your printer drivers for the FOG Printer Manager, then it is very easy to set one up on the FOG server using Samba, so all your Windows Clients will be able to connect.<br />
<br />
[[Creating a Samba Based Printer Store on FOG]]<br />
<br />
=== The FOG Client Service ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Client Service is a Windows Service that is intended to be installed on the client computers during the image creation process. The FOG service communicates with the FOG server to provide certain service to the client computers including:<br />
<br />
<br />
*Auto Log Off (0.16)<br />
*Hostname Changes<br />
*Active Directory Integration<br />
*Directory Cleaner (0.16)<br />
*Display Manager (0.16)<br />
*Green FOG (0.16)<br />
*Host registration<br />
*Task Restarting<br />
*Snapin Installation<br />
*User Tracker<br />
*Printer Manager<br />
*User Cleanup (0.16)<br />
*Client Updater<br />
*User Tracker<br />
<br />
==== Module specific configuration settings ====<br />
<br />
The FOG Client Service is very modular in nature, which means you can install portions of the services provided, and leave off others. This also means that it is very easy to create new sub services if you know a little C#. All configuration data is held in a local INI file. Which is typically stored in <br />
<br />
c:\program files\fog\etc\config.ini<br />
<br />
This file holds, in the general section:<br />
<br />
<ul><br />
<li>FOG Server IP address</li><br />
<li>FOG Service installation root</li><br />
<li>FOG Service working directory</li><br />
<li>FOG Log file path</li><br />
<li>Flag indicating if GUI messages should be displayed</li><br />
<li>The max log file size</li><br />
</ul><br />
<br />
==== Installation ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/FogServiceInstall.swf.html Video Tutorial]<br />
<br />
The FOG service should be installed on the computer to be imaged before capturing the image to the FOG Server. <br />
<br />
The FOG service is located in the '''FOG Service/bin''' directory or if the FOG server is already installed it can be downloaded from:<br />
<br />
http://[serverip]/fog/client/<br />
<br />
Double-click on the '''setup.exe''' to start the installation wizard. At the end of the wizard you will need to enter the IP address or hostname of your FOG server.<br />
<br />
[[Image:fogservice.jpg]]<br />
<br />
Then restart the computer, if you don't restart the computer you will have issues with the service GUI appearing correctly.<br />
<br />
===== Quiet Installation =====<br />
<br />
As of version 0.29 and higher, the FOG client now supports a quiet installation mode. This can help automate deployments, by allowing the command to be run without user interaction from batch files. To do this the setup.exe file must be run from the command line with the arguments '''fog-defaults=true /qb'''.<br />
<br />
So the full command would be:<br />
<br />
setup.exe fog-defaults=true /qb<br />
<br />
==== Functions and Operation ====<br />
<br />
=====Auto Log Out=====<br />
<br />
Added in Version 0.16<br />
<br />
This module of the FOG Service will log a user off of a client pc after X minutes of inactivity. This module will display a screen saver-like GUI after 3/4 of the inactive time is up. So if the time out value is 40 minutes, the GUI will be displayed at 30 minutes of inactivity. When the time is up, the client computer will reboot. This service module can be configured via the management portal via:<br />
<br />
FOG Service Configuration -> Auto Log Out<br />
<br />
To enable the module globally, place a check in the box next to '''Auto Log Out Enabled?'''. The time to auto log off can changed globally via '''Default log out time:''' The minimum recommended value for this setting is 4 minutes. <br />
<br />
The background image for the auto log off module can be modified via:<br />
<br />
Other Information -> FOG Settings<br />
<br />
The settings can be changed by modifying the value for '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE'''. This settings will accept a jpg file that is local to the client computer like: <br />
<br />
c:\images\image.jpg<br />
<br />
This setting will also accept files located on a web server such as:<br />
<br />
http://www.somedomain.com/image.jpg<br />
<br />
Provided with FOG is a simple php script that will display a random images that is located on the FOG server. To use this option set '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE''' to <br />
<br />
http://x.x.x.x/fog/public/randomimage.php<br />
<br />
Then simply put the images you would like to use in the following directory on the fog server:<br />
<br />
/var/www/html/fog/public/imagepool<br />
<br />
Images used for the auto log off module must be in jpg format, and must be 300px by 300px.<br />
<br />
=====Hostname Changer=====<br />
<br />
This module of the FOG Service is used to change the hostname of the client computer and to allow the client to (optionally) join a Active Directory Domain after imaging. This process only runs shortly after service startup, which means typically only when you start your computer. The service communicates with the FOG server over port 80 and determines the hostname that is present in the FOG database for the host. The hosts are matched to the FOG database by their MAC addresses. If the hostnames are found to be different, the client changes the computers hostname and restart the computer.<br />
<br />
The config.ini file contains configuration options for this module. <br />
<br />
netdompath=<br />
<br />
Allows you to set the path to the netdom.exe file. In some cases the file does not exist on the system. It can be downloaded from: [http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=de Microsoft Download Center]<br />
<br />
=====Host Register=====<br />
<br />
As of version 0.29, this module will only add additional mac address to a host that is already registered, and add them to the pending mac address table, where they need to be approved in the FOG UI.<br />
<br />
=====Task Reboot=====<br />
<br />
This module periodically checks in with the FOG server to see if the client has an imaging task assigned to it. If a task is found AND no one is logged into the workstation, then the client will restart and join the task.<br />
<br />
The config.ini file contains configuration options for this module. As of version 0.13 of FOG you can change:<br />
<br />
forcerestart=0<br />
<br />
to<br />
<br />
forcerestart=1<br />
<br />
This will make the computer restart if a task is found, regardless of whether a user is logged into the computer.<br />
<br />
You can change how often the service will check in with the server by changing:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins.<br />
<br />
=====Directory Cleaner=====<br />
<br />
Added in version 0.16<br />
<br />
This module will clean out (delete) the contents of a directory on user log off. This useful when you don't want any settings cached between users. This module will only delete the contents of a directory and not the root directory itself, so if you specify '''c:\trash''', the service will remove all files and folders located within c:\trash but leave the folder c:\trash.<br />
<br />
=====Display Manager=====<br />
<br />
Added in version 0.16<br />
<br />
This module is used to restore screen resolution between clients. This will restore a fixed resolution and refresh rate when a user logs into a computer.<br />
<br />
=====Green FOG=====<br />
<br />
Added in version 0.16<br />
<br />
This module will simply shutdown/restart the client computer at a fixed schedule if no user is logged in. The schedule can be defined via the management portal. <br />
<br />
=====Snapin Client=====<br />
<br />
This module periodically checks in with the FOG server to see is the client has an snapin set to be deployed to it. If a snapin is found AND no imaging task is associated with the client, then the client will download the snapin and install it in the background.<br />
<br />
The configuration file contains settings for this module including:<br />
<br />
checkintime=xxx<br />
<br />
where xxx is the number of seconds the service will wait between check-ins. It is important to note that currently the fog client will wait 5 minutes when first connected / established before it starts checking and installing any snapins from the server.<br />
<br />
=====User Tracker=====<br />
<br />
This module attempts to track user access to the host computer by the Windows user name. It attempts to track logins and logoffs as well as well as the state of the computer at service startup. The service will even attempt to track users when they are not on the network by writing all entries to a journal file, then replying the journal the next time the client is on the network.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====User Cleanup=====<br />
<br />
This module will remove all users not white listed in management portal on log off. This module is useful when using services like dynamic local user. All entries in the management white list are treated as prefixes to usernames, which means that they will white list all users that start with whatever was entered in the management front end. For example, if you enter '''admin''' in the management white list, then users '''admin''', and '''administrator''' will NOT be removed from the computer.<br />
<br />
=====Printer Manager=====<br />
<br />
This module checks on service startup to see what printers should be installed/removed from the client PC.<br />
<br />
There are no configuration settings for this module.<br />
<br />
=====Client Updater=====<br />
<br />
This module waits (randomly) between 60 and 500 seconds after service startup to check the local fog server for client updates, and if any are found the service will download and install them. Updates will NOT take effect until after the service is restarted.<br />
<br />
There are no configuration settings for this module.<br />
<br />
==== Keeping Clients up to date ====<br />
<br />
===== Overview =====<br />
<br />
As of version 0.12 of FOG, we have included a client updater module. This module is no different from any of the other sub service modules. This service waits anywhere between 60 and 500 seconds after the FOG service starts up, and then attempts to check with the server for newer FOG service modules. If new modules are found the client will download them, and they will be active on the NEXT service startup. These modules are controlled from the FOG Management Console. <br />
<br />
Only certain modules can be updated, only those that are a sub class of AbstractFOGService. This means you should '''NEVER''' attempt to update the FOGService executable (FOGService.exe file), or the AbstractFOGService.dll file. It is recommended that you not update the ClientUpdater.dll, because if the ClientUpdater.dll file becomes corrupt or not functional, your clients will not be able to update from that point on. Below are a list of the .dll files that can be updated.<br />
<br />
<ul><br />
<li>UserTracker.dll</li><br />
<li>TaskReboot.dll</li><br />
<li>SnapinClient.dll</li><br />
<li>PrinterManager.dll</li><br />
<li>HostRegister.dll</li><br />
<li>HostnameChange.dll</li><br />
<li>GUIWatcher.dll</li><br />
<li>ClientUpdater.dll</li><br />
<li>config.ini</li><br />
</ul><br />
<br />
Care must also be taken when updating the config.ini file, if the IP address is incorrect or the syntax of the file is incorrect, it could leave the FOG service crippled on the client computers.<br />
<br />
===== Posting Updates =====<br />
<br />
To add new modules that can be pushed down to clients, first install a client with the new service or new module and confirm that it works as you would like. Log into the FOG management console, then go to the Infomation/Misc section (the little "i" icon). Click on '''Client Updater''' on the left-hand menu. Now click on the browse button to select the module (.dll) file you would like to post, then click on the capture button. After capturing the file should appear in the table above. If you are adding a new module, you will probably want to capture a new config.ini file to include new configuration settings required by that new module.<br />
<br />
==== FOG Tray ====<br />
<br />
The FOG Tray is a Windows application that runs on user login that docks in the system tray. The FOG Tray, like the FOG service, is very modular in nature. New modules can be dropped in the FOG tray directory and on next load they will be loaded. This tray icon has the ability to communicate with the FOG service, this allows FOG more interactivity with the end-user. <br />
<br />
What happens is that when the FOG service's printer manager module gets a request to set a default printer, the service attempts to contact the FOG Tray. If communication is established, then the service will ask the tray to set the default printer. On the other hand the end user can right click on the "F" icon in the system tray, then select printers, then update my printers. What this will do is attempt to send a request from the FOG Tray to the FOG Service and have the service check for printer updates (new printers or printers to be removed). If one is found the service will install any new printers assigned in the FOG Management portal.<br />
<br />
This application is in its very early stages and currently doesn't have a lot of functionality. It is currently only used to allow end users to update their printers and to allow the setting of default printers (from the FOG service). Our vision for the FOG Tray is to add modules that would allow users to install printers that are published as public (via the management portal) without the printer being directly assigned to their host. We would also like to do the same thing for snapins where some of your snapins could be defined as public where anyone could install them on their computer.<br />
<br />
==== Troubleshooting ====<br />
<br />
If you have problems with the FOG Service, please refer to the log file that is located at:<br />
<br />
c:\fog.log<br />
<br />
If the PXE boot does not work<br />
<br />
If booting from the fog server through pxe comes up with an error file not found, edit /etc/default/tftpd-hpa<br />
<br />
Change TFTP_DIRECTORY to<br />
<br />
TFTP_DIRECTORY="/tftpboot"<br />
Then<br />
<br />
/etc/init.d/tftpd-hpa restart<br />
<br />
=== Snap-ins ===<br />
<br />
==== Overview ====<br />
<br />
*The FOG Service has the ability to install snapins to the clients. Snapins can be anything from whole applications like Microsoft Office to registry keys or desktop icons. Snapins can even be used to uninstall applications or remove unwanted files. For the end use's point of view, they will not even noticed that a snapin is being installed until it is complete. At this point a message will notify them that a new application has been installed on their computer. Snapins can be in MSI (0.17) or EXE formats, and can be created with any snapin creation tool like InstallRite or already packaged MSI files (0.17). You can also push commands to the computer that include .vbs scripts / .cmd (commands) and .bat (batch scripts).<br />
<br />
*Snapin return codes are specified by the program that's being installed.<br />
<br />
<br />
==== Creating a Snapin / Overview ====<br />
<br />
FOG doesn't provide a tool to create snapins, but instead allows you to push files and execute them on the remote computers. It is highly recommended that you push the actual installer to the computer instead of using a program such as InstallRite. <br />
<br />
If you have never silently installed software to a computer, or created an answer file for a program please look at the website Appdeploy [http://www.appdeploy.com/articles/ Link] This website has an trove of information on how to push software to a computer remotely.<br />
<br />
===== Creating a Snapin for larger applications with SFX Maker =====<br />
<br />
Some larger applications such as Microsoft Office and Adobe Products (Acrobat / Creative Suite) require multiple files to install properly. If you have an application that is not a single .exe please use SFX Maker. This tool is free for non commercial use, and most programs fall under the GPL. [http://www.isoft-online.com/ SFX Maker's Website]<br />
<br />
For instructions on how to use this software please see the youtube videos below.<br />
<br />
[http://www.youtube.com/watch?v=ZSMJLnRjn94 Office 2003 Install]<br />
[http://www.youtube.com/watch?v=Qzc1Q9NW_cE Office 2007 Install]<br />
<br />
SFX Maker takes an entire folder and encapsulates it or "folds" it into a single .exe which then "unfolds" to its original state and launches a file or command.<br />
<br />
===== Creating a Snapin with InstallRite =====<br />
<br />
If for some reason you do wish to use Installrite please be aware it comes with issues and limitations (not compatible on all windows operating systems / can cause issues with the computer it is pushed to). Below is an example of how to build a package with that software<br />
<br />
In this example we will use Epsilon Squared's InstallRite which can be downloaded from http://www.epsilonsquared.com/installrite.htm. This application will package up your snapin as an exe file which will be uploaded to the FOG server. <br />
<br />
<ol><br />
<li>To run InstallRite navigate to c:\program files\Epsilon Squared\InstallRite\InstallRite.exe</li><br />
<li>Click on "Install new software and create an InstallKit"</li><br />
<li>On the Configure screen, click Next.</li><br />
<li>On the Snapshot screen click next to create a new system snapshot.</li><br />
<li>On the next screen,click the browse button to select the application you wish to install, then click next.</li><br />
<li>When installation is complete InstallRite will come into focus, click the next button. InstallRite will scan your system again.</li><br />
<li>Enter a name for your snapin.</li><br />
<li>Click "Build Install Kit"</li><br />
<li>Select "Quiet Installation Mode", Never reboot, even if needed, and "Never prompt the user and only overwrite older files"</li><br />
<li>Click OK and it will build your snapin.</li><br />
</ol><br />
<br />
==== Preparing the FOG Server ====<br />
<br />
If your snapin is larger than 2MB you will need to make two changes to the FOG server to allow uploads of larger than 2MB.<br />
<br />
See also: [[Troubleshoot Web Interface]]<br />
<br />
===== Fedora =====<br />
<br />
<br />
#On the FOG Server click on Applications -> Accessories -> Text Editor.<br />
#Select Open and navigate to "/etc/php.ini"<br />
#Change UPLOAD_MAX_FILESIZE to 1900MB (On a 32Bit OS don't set this value above 2GB)<br />
#Change POST_MAX_SIZE to the same value.<br />
#Save and close the text editor.<br />
#Click on Applications ->System Tools -> Terminal and type "service httpd restart"<br />
<br />
===== Ubuntu =====<br />
<br />
#sudo gedit /etc/php5/apache2/php.ini<br />
#Change <br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
#Save Changes<br />
#sudo /etc/init.d/apache2 restart<br />
<br />
<br />
===== VMWare =====<br />
<br />
#sudo vim /etc/php5/apache2/php.ini<br />
#Edit the following lines in the document (read below for assistance with working in VIM)<br />
##memory_limit = 1900M<br />
##post_max_size=1900M <br />
##upload_max_filesize=1900M <br />
<br />
<br />
*To edit content in vim you will need to press the '''"I"''' key on your keyboard to enter input mode.<br />
*Hitting the '''Escape''' key will bring you out of input mode.<br />
*Once out of input mode type ''':w''' and then '''enter''' to save the file<br />
*Restart FOG once the file has been saved<br />
<br />
==== Uploading the Snapin ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/CreateSnapin.swf.html Video Tutorial]<br />
<br />
<ol><br />
<li>In the FOG Management Portal click on the Snapin Icon (Puzzle Pieces).</li><br />
<li>On the left-hand menu click on the New Snapin Button.</li><br />
<li>Enter a Snapin Name and Description.</li><br />
<li>Browse to the snapin file you wish to upload.</li><br />
<li>If you want the computer to restart after the snapin is installed click on the "Reboot after install"</li><br />
<li>Click "Add"</li><br />
</ol><br />
<br />
<br />
<br />
As of version 0.17, fog supports using typical msi files as snapin files.<br />
<br />
If the snapin file is a msi file you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of msiexec.exe (ie: c:\windows\system32\msiexec.exe)</li><br />
<li>Set '''Snapin Run With Arguments:''' to '''/i'''</li><br />
<li>Set '''Snapin Arguments:''' to '''/qn'''</li><br />
</ol><br />
<br />
If the snapin file is a .vb script you must perform these additional steps:<br />
<br />
<ol><br />
<li>Set '''Snapin Run With:''' to the path of cscript.exe (ie: c:\windows\system32\cscript.exe)</li><br />
</ol><br />
<br />
<br />
<br />
'''Documentation on list of support snapin's and command line arguments''' [[http://www.fogproject.org/wiki/index.php?title=Supported_Snapin%27s_and_Command_Line_Switches]] There are MANY more supported applications that can be installed via command line arguments. You might have better luck installing them directly via .EXE / .MSI / or scripting them via .VBS . For more info on this consult the forums --[[User:Ssx4life|Ssx4life]] 09:04, 8 October 2009 (MST)<br />
<br />
==== Linking the Snapin to Hosts ====<br />
<br />
In order for a snapin to be deployed it must be linked with a host. To do this perform the following:<br />
<br />
<ol><br />
<li>In the FOG Management Portal, click on the Hosts Icon.</li><br />
<li>Search for and select a host and click on the edit button.</li><br />
<li>Scroll down to the snapin section.</li><br />
<li>Select the snapin you just created from the drop-down box and click the "Add Snapin" button.</li><br />
</ol><br />
<br />
The next time you image the computer the FOG Service will attempt to install that snapin. If you have problems, please see the fog log file located at c:\fog.log on the client PC.<br />
<br />
=== Client Side Tasks ===<br />
<br />
==== FOG Version ====<br />
<br />
Applies to version 0.12 or higher.<br />
<br />
==== Overview ====<br />
<br />
FOG attempts to keep management centralized, but in an attempt to make deploying machines as easy as possible FOG has added a few basic client side tasks. These tasks can be run from the client computer during the PXE boot process. When the client boots and the FOG banner is displayed the pxe client will display a prompt like '''boot:''' or something similar. At this point you have 3 seconds to start typing one of the following commands. <br />
<br />
<ul><br />
<li>fog.memtest</li><br />
<li>fog.reg</li><br />
<li>fog.reginput</li><br />
</ul><br />
<br />
==== fog.memtest ====<br />
<br />
This command will run the memtest86+ on the client computer. <br />
<br />
==== fog.reg ====<br />
<br />
This command will run the basic host registration and inventory process without any user input. It will register any new/unregistered hosts with the FOG server and pull a basic hardware inventory from them. The hostname of the computer will be the same as the MAC address without the ":".<br />
<br />
If a host is already registered, then only an inventory will be performed.<br />
<br />
==== fog.reginput ====<br />
<br />
[http://freeghost.sourceforge.net/videotutorials/RegImage.swf.html View Host Registration Video]<br />
<br />
This command will run the full host registration process with user input, inventory and give the option to push down an image, all at the same time. During this process the user registering the host will be prompted for the computer host name, ip address, operating system ID, image ID, Primary User of the computer, asset tag 1, and asset tag 2. <br />
<br />
If a valid hostname, os id, and image id are given and the option is selected to image the workstation after registration, the host will reboot and an imaging send will began. <br />
<br />
If a host is already registered, then only an inventory will be performed, this prevents end-users from re-registering a machine with a different hostname, etc.<br />
<br />
This tasks was designed for institutions that may get shipments of hundreds of computers that need to be deployed very quickly. They can be unboxed, inventoried, imported into FOG and imaged very quickly. <br />
<br />
===== Operating System ID =====<br />
<br />
As of Version 0.17 of fog, you can now enter '''?''' at the Operating System ID prompt to get a listing of the valid operating system id values. <br />
<br />
The following are valid values for operating system IDs:<br />
<br />
<ul><br />
<li><b>1</b> - Windows 2000 / Windows XP</li><br />
<li><b>2</b> - Windows Vista</li><br />
<li><b>3</b> - Windows 98</li><br />
<li><b>4</b> - Windows (Other)</li><br />
<li><b>5</b> - Windows 7</li><br />
<li><b>50</b> - Linux</li><br />
<li><b>99</b> - Other</li><br />
</ul><br />
<br />
===== Image ID =====<br />
<br />
Image IDs can be found in the management console, in the Images section. Search for the image, and click on the edit button associated with the image, <br />
the image id will be in the Address/url bar in the format of <b>&imageid=xx</b>.<br />
<br />
As of version 0.17, you can enter '''?''' at the Image ID prompt to get a listing of all your images and their ID numbers.<br />
<br />
=== Active Directory Integration ===<br />
<br />
==== Setup ====<br />
<br />
===== Overview =====<br />
<br />
FOG has the ability to register a host with Active Directory, in a limited sense. Versions of FOG up to and including 0.28 rely on the netdom.exe executable that is provided as part the support tools on the Windows installation media. In order for Active Directory integration to function, your image will need to have the FOG service installed, along with the Windows Support Tools.<br />
<br />
Versions of FOG from (and including) 0.29 have this functionality built in and do NOT require netdom.exe or the support tools to be installed.<br />
<br />
It is also very important that before capturing your image that the computer is NOT a member of any domain.<br />
<br />
===== Security =====<br />
<br />
<font color="red">Note: The below statement applies to older FOG versions (1.2.0 and below). When using FOG 1.3.0 and above in conjunction with the NEW fog client, this step is not needed. See [https://wiki.fogproject.org/wiki/index.php?title=FOG_Client here] for more information.</font><br />
<br />
<br />
'''Important - Please read!'''<br />
<br />
In order to add a computer to a domain, FOG requires a username and password of an account that has rights to the OU where the computer objects are stored in the domain tree. This user account should have rights to join computers to the Domain, as well as sufficient rights to create/manage computer objects. FOG attempts to keep your password secure by encrypting it, but since FOG is open source, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and only need to be done one time. Please see the documentation below.<br />
<br />
===== Preparing the Image =====<br />
<br />
Before capturing an image to FOG that you would like to use with Active Directory, please ensure that the image:<br />
<br />
<ul><br />
<li>is NOT a member of the domain, change the computer membership to workgroup instead.</li><br />
<li>has support tools installed (Not required for FOG versions from 0.29).</li><br />
<li>has the FOG service installed.</li><br />
</ul><br />
<br />
===== FOG Setup =====<br />
<br />
To setup a host to use AD, navigate to the hosts section of the FOG management portal. <br />
<br />
<ol><br />
<li>Search for, and select a host. </li><br />
<li>Click on the Edit button</li><br />
<li>Scroll down to the Active Directory section.</li><br />
<li>Check the box next to Join Domain after image task</li><br />
<li>Enter the domain NETBIOS name (i.e. MYDOMAIN, not mydomain.com).</li><br />
<li>Enter the Organizational Unit where you would like to have the computer stored in AD. Leave if blank for the default. (Must be in LDAP format).</li><br />
<li>Enter the user name that has access to the computer objects. Do not include the domain name if you are running version 1.2 (your mileage may vary with earlier versions). Development version of FOG will accept a name with or without domain ('''username ''OR'' mydomain/username''').</li><br />
<li>Enter the encrypted password. This password must be encrypted with the [[FOGCrypt]] utility. This utility is located in the FOGCrypt folder of the FOG download package. It is a Windows (.NET) command line application.</li><br />
<li>Click Update.</li><br />
</ol><br />
<br />
The next time you image that computer the service will attempt to register the host with the domain information provided. If you have problems please refer to the FOG Service log file located in c:\fog.log<br />
<br />
===== Making AD Integration Easier =====<br />
<br />
As of version 0.20 of FOG, we have made it a bit easier to manage AD settings in FOG, by allowing for default settings for AD. This will allow the easy population of the domain, OU, username, and password. To set this feature up perform the following:<br />
<br />
# Go to '''Other Information''' -> '''FOG Settings'''<br />
# Set your default values for the following:<br />
## FOG_AD_DEFAULT_DOMAINNAME<br />
## FOG_AD_DEFAULT_OU<br />
## FOG_AD_DEFAULT_USER<br />
## FOG_AD_DEFAULT_PASSWORD (MUST BE ENCRYPTED!)<br />
<br />
To test everything out, go to a host that doesn't have anything setup for AD, and click on the edit button for that host. Go to the host menu, and select Active Directory. Click on the '''Join Domain after image task:''' button and all your default values should be populated.<br />
<br />
==== Securing Active Directory Integration ====<br />
<br />
===== Overview =====<br />
<br />
In order to add a computer to a domain, FOG requires a username and password that has rights to the OU where the computer objects are stored in the domain tree. FOG attempts to keep your password secure by encrypting it, but since FOG is open source and the methods used to encrypt the password are open for all to see, it is possible for someone to decrypt your password if you don't change the FOG "Passkey." It is highly recommended that you change this Passkey before implementing the AD integration in a production environment. Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and it only needs to be done one time. <br />
<br />
===== The Development Environment =====<br />
<br />
The hostname change module is written in c#, so in order to recompile it you will need to download Microsoft's Visual Studio Express Edition for C#. This can be downloaded from: <br />
<br />
http://www.microsoft.com/express/vcsharp/<br />
<br />
Install Visual Studio with the standard options.<br />
<br />
===== Getting the Source =====<br />
<br />
After Visual Studio Express is installed now we need to get the source code for the hostname change module. This is part of FOG download/installation package. This package can be downloaded from:<br />
<br />
http://sourceforge.net/project/showfiles.php?group_id=201099 <br />
<br />
Extract this package, then navigate to "FOG Service\src\FOG_HostNameChanger\"<br />
<br />
Double-click on HostNameChange.sln to open the project. <br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > hostnamechanger properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Once the project has opened, on the right-hand panel, in the "Solution Explorer", double-click on MOD_HostNameChanger.cs.<br />
<br />
After do so, you should get the source code to display in the main panel, scroll down to the line:<br />
<br />
private const String PASSKEY = "FOG-OpenSource-Imaging"; <br />
<br />
Change '''FOG-OpenSource-Imaging''' to anything you like, just remember what you change it to, as you will need it later.<br />
<br />
Then click File -> Save All.<br />
<br />
Then click Build -> Build Solution.<br />
<br />
This will recompile the hostname change module with your unique key.<br />
<br />
Now navigate to "FOG Service\src\FOG_HostNameChanger\bin\Release"<br />
<br />
Copy only the file HostnameChange.dll to "FOG Service\src\FOG Service\bin\Release" (overwrite existing file).<br />
<br />
Navigate to "FOG Service\src\FOG Service\"<br />
<br />
Open the solution by double-clicking "FogService.sln"<br />
<br />
If you are asked to convert the project to the latest version, click the Finish button.<br />
<br />
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project > FOGService properties. On the Application tab, change the Target Framework to .NET 2.0 <br />
<br />
Change the build configuration from debug to release<br />
<br />
Right click on "FOG Service Install" and click "Build"<br />
<br />
Navigate to "FOG Service\src\FOG Service Installer\Release"<br />
<br />
Select the 2 files, right-click -> Send To -> Compressed Folder<br />
<br />
Copy the .zip file to your FOG Server "/var/www/html/fog/client". Overwrite the existing file.<br />
<br />
===== Encrypting Your Password =====<br />
<br />
Now that we have changed the passkey, we need you update the FOGCrypt ini file to use this new passkey. <br />
<br />
Navigate to the FOGCrypt\etc directory from the FOG download package.<br />
<br />
Open the config.ini file and change the passkey value to your new passkey, then save the file.<br />
<br />
Now open a command window and navigate using the cd command to the FOGCrypt directory.<br />
<br />
Type:<br />
<br />
FOGCrypt [password]<br />
<br />
Where [password] is the AD user's password that has rights to the Computers section of the AD tree.<br />
<br />
The output from this command is what you will enter in the FOG management portal.<br />
<br />
<br />
=== FOG Reports ===<br />
<br />
==== FOG Version ====<br />
<br />
Relates to FOG Version 0.12 or higher. <br />
<br />
==== Overview ====<br />
<br />
FOG Reports allow you to export data from FOG in two major formats including CSV, and PDF.<br />
<br />
#'''Snapin Log''' - This report will report on snapin installation history. <br />
#'''Imaging Log''' - This report will report on images deployed to hosts.<br />
#'''Virus History''' - This report lists any viruses that were found on locate computers. <br />
#'''Inventory''' - This report will report on the inventory information collect for network clients. <br />
#'''Equipment Loan''' - This report can be used for equipment loaned to staff members. <br />
#'''User Login History''' - This report contains information about user logins.<br />
<br />
==== Running Reports ====<br />
<br />
Running a report can be done from the Reports section of FOG, then by picking a report from the left-hand menu.<br />
<br />
==== Importing User Created Reports ====<br />
<br />
The reporting section of FOG allows for the end user to create and upload custom reports into FOG. A FOG report is a simple php script that is processed by the server. To import a report simply click on the '''Upload a Report''' button in the reports section, select the report then click on the upload button. The report will then show up on the left-hand menu. <br />
<br />
Please be cautious when uploading reports from an unknown source as the writer of the report has full access to the FOG system and database! Make sure your sources are trustworthy before importing a report!<br />
<br />
==== Creating Custom Report ====<br />
<br />
Custom reports are simple php scripts in FOG. Custom reports can be created based on the following template:<br />
<br />
[http://freeghost.sf.net/other/ReportTemplate.tar.gz Report Template]<br />
<br />
<br />
<br />
=== Plugins ===<br />
*[[Plugins]] give FOG extra functionality wanted for some users but not all.<br />
<br />
=== Other Settings ===<br />
<br />
==== [[Boot Image Key Map]] ====<br />
<br />
==== FOG Client Kernel ====<br />
<br />
===== Overview =====<br />
<br />
In FOG, there aren't really drivers you need to find and download for your clients to work, this is because we ship a Linux kernel that has the majority of hardware device built into it. What this means is if you have a device that doesn't work with FOG you need to either build a new kernel yourself or try a newer kernel that has been released via our kernel updater.<br />
<br />
<br />
===== Kernel Types =====<br />
<br />
We currently build two "lines" of kernels, one called KS or KitchenSink. This kernel tries to include drivers for as many devices as possible, sometimes as the cost of performance, and this is the kernel that we ship with FOG by default. The other "line" is the PS kernel or the Peter Sykes kernel, which is a based on a config submitted by a user. This kernel line tries to be faster, but may not include as many drivers as the KS kernel. <br />
<br />
===== Updating the Kernel =====<br />
<br />
It is possible to update your client kernel from within the UI of FOG. To do this perform the following steps:<br />
<br />
#Log into the FOG Management UI.<br />
#Go to '''Other Information'''<br />
#Select '''Kernel Updates'''<br />
#Select the Kernel you would like to download, typically the newest kernels are on the top of the list.<br />
#Click the download icon<br />
#Select a file name for your kernel, to make it the default kernel leave the name as '''bzImage'''<br />
#Click the '''Next''' Button<br />
<br />
=== Mobile Management Interface ===<br />
<br />
==== Overview ====<br />
<br />
The FOG Mobile web interface is a very basic, stripped down interface for FOG. It is designed to be given to lower level technicians using low powered, mobile devices such as iPod touches, iPhone, PDAs, and internet tablets. The idea behind this interface is to make it easy for techs to re-image a computer while making the rounds at a site.<br />
<br />
==== Using the mobile Interface ====<br />
<br />
The mobile interface can be access via:<br />
<br />
http://x.x.x.x/fog/mobile<br />
<br />
The portal requires a valid user name in password, which can be created via the FOG portal. <br />
<br />
[[Image:Ipod login.JPG]]<br />
<br />
Once logged into the portal, users can search for hosts and image them, and view/cancel active tasks. <br />
<br />
[[Image:Ipod results.JPG]]<br />
<br />
[[Image:Ipod active.JPG]]<br />
<br />
They can not change image associations, nor modify any properties of a host.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=Deploying_your_Image_a_single_client&diff=12074Deploying your Image a single client2016-07-09T00:37:56Z<p>Tom-elliott.7271: /* Start the Task */</p>
<hr />
<div>Below is a brief overview of how to send an image to a single client<br />
<br />
== Set client to PXE boot in BIOS ==<br />
<br />
First of all make sure you are connected to the network in which your FOG server resides. Then boot up the client computer, and go into BIOS, this step may be a little different for every computer. In most cases this involves pressing either '''F2''', '''F10''', or '''DEL'''. Then you may need to enable PXE/Network booting if the option exists. <br />
<br />
[[Image:Bios.png]]<br />
<br />
After that you want to change your boot order, so the first boot device is PXE boot. After making those changes, save your changes and restart the client.<br />
<br />
<br />
Start the client up again and you should see a menu that looks like the image below:<br />
<br />
[[Image:Bootmenu.png]]<br />
<br />
This is the FOG boot menu.<br />
<br />
== Register the Client with the FOG Server ==<br />
<br />
Now that the client is pxe booting, we can register it with the FOG server. To do so, select "Perform Full Host Registration and Inventory." During this process you will be asked to answer a few questions like the client's hostname etc. After filling out all questions, the client will go through a quick hardware inventory and restart, at which point the client will be registered with the FOG server.<br />
<br />
== Associate the Image and OS with the new client ==<br />
<br />
#Login to the web UI.<br />
#Click on the '''Image Management Section''' (picture icon).<br />
#Click on '''List All Images''' and locate the image object you wish to associate with the client. For more information on how to create an image object see [[Booting into FOG and Uploading your first Image]].<br />
#Click the '''Edit''' button next to the image.<br />
#Select the appropriate operating system from the drop-down menu, if you have not done so already.<br />
#Click '''Update'''<br />
#Click on '''Host''' from the left hand column.<br />
#From the menu in the center, select the client you are working with and click '''Add Image to Host(s)'''<br />
[[File:AddHostsImage.png]]<br />
<br />
== Start the Task ==<br />
<br />
#Navigate to the Host Management area by clicking on '''Host Management''' from the top of the screen (the icon looks like a computer monitor) and then '''List All Hosts''' from the left hand menu.<br />
#Find the entry for the client you are working with and click on its name to view the host object<br />
#Click on '''Basic Tasks''' from the left hand menu<br />
#Select '''Deploy'''<br />
#Select '''Create Deploy Task for Host'''<br />
#Reboot the machine client PC.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=CentOS_7&diff=11994CentOS 72016-06-20T10:34:35Z<p>Tom-elliott.7271: /* Setup FOG Trunk */</p>
<hr />
<div><br />
= Installing CentOS 7 =<br />
<br />
== Configuring partitions for FOG ==<br />
<br />
The one thing with using CentOS 7 (or any red-hat based distro) is that the default partitioning isn't optimal for FOG. The default is that "root" only gets 50 GiB and the rest goes to /home. This is not optimal.<br />
<br />
You should delete any existing partitions, and then select "create partitions automatically". This is the easiest. Then you can manipulate and delete unneeded partitions. The most simple partitioning setup for FOG is below:<br />
<br />
*Give the <font color="red">swap</font> partition the same amount as the amount of RAM the system has. <br />
<br />
*Optionally delete the <font color="red">/home</font> partition or limit it's size to something very small (perhaps 10GB).<br />
<br />
*Limit <font color="red">/</font> (root) to 20GB instead of 50 (optional but recommended). Please keep in mind that this is also the partition where the snapins are stored. If you plan to use a lot of snapins and don't think that (roughly) 15GB is enough, then leave this at 50.<br />
<br />
*Increase the size of <font color="red">/boot</font> from 500MB to 1GB for breathing room in the future (optional but recommended).<br />
<br />
*Finally, create a <font color="red">/images</font> partition with all remaining space.<br />
<br />
CentOS (and most Red-Hat based distributions) auto-adjust partition sizes for you if you go over what is available... meaning.. if you are unsure about how much space is left on the drive to assign to <font color="red">/images</font>, you can leave the size field blank and hit "update" and the installer will auto adjust to what is available.<br />
<br />
Another thing to keep in mind is when you install on UEFI enabled hardware, there will be an EFI boot partition made automatically - leave that partition alone.<br />
<br />
(Note: Video plays in Chrome or Firefox with html5 plugin)<br />
<br />
External Video Link:<br />
<br />
[https://youtu.be/sI2AuA5jdYA CentOS 7 FOG Optimal Partitioning]<br />
<br />
Video:<br />
<embedvideo service="youtube">https://youtu.be/sI2AuA5jdYA</embedvideo><br />
<br />
== Continue installation ==<br />
<br />
*Under network settings, set a static IP with Subnet & router info and a name. DNS entries are comma delimited (no spaces).<br />
<br />
*Set the timezone (and any preferred NTP servers).<br />
<br />
*Start installing.<br />
<br />
*Set a root password.<br />
<br />
= CentOS 7 pre-config =<br />
<br />
<br />
== Update CentOS 7 ==<br />
<br />
Update everything installed with this line:<br />
<br />
<pre>yum update -y</pre><br />
<br />
<br />
<br />
== Continue pre-config ==<br />
<br />
After installation is complete and reboot is done, you can work through putty from this point forward. You can get a copy [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here].<br />
<br />
*Log in as root with the password you set earlier.<br />
<br />
*Configure firewalld:<br />
<br />
<pre><br />
yum install firewalld -y<br />
systemctl start firewalld<br />
systemctl enable firewalld<br />
for service in http https tftp ftp mysql nfs mountd rpc-bind proxy-dhcp samba; do firewall-cmd --permanent --zone=public --add-service=$service; <br />
done<br />
<br />
echo "Open UDP port 9000 and 9001, these are the default ports of udp-sender." <br />
firewall-cmd --permanent --add-port=9000-9001/udp<br />
echo "Allow IGMP traffic for multicast"<br />
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT<br />
systemctl restart firewalld.service<br />
echo "Done."<br />
</pre><br />
<br />
<br />
*Add firewalld exceptions for DHCP and DNS (if you plan to run DHCP on your FOG server):<br />
<br />
<pre><br />
for service in dhcp dns; do firewall-cmd --permanent --zone=public --add-service=$service; done<br />
firewall-cmd --reload<br />
echo Additional firewalld config done.<br />
</pre><br />
<br />
<br />
*Set SELinux to permissive on boot by editing /etc/selinux/config<br />
<br />
<pre>vi /etc/selinux/config</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
Change the line <pre>SELINUX=enforcing</pre><br />
<br />
to <br />
<br />
<pre>SELINUX=permissive</pre><br />
<br />
*Set SELinux to permissive on the fly (this is not persistent, the above config must be set to be persistent):<br />
<br />
<pre>setenforce 0</pre><br />
<br />
= Setup FOG Trunk =<br />
<br />
This will install the latest developmental version of FOG using the Git method found here: [[Upgrade to trunk]]<br />
<br />
We need to use FOG Trunk with CentOS 7 and later because the latest stable release of FOG (currently 1.2.0) does not support any recent versions of CentOS 7.<br />
<br />
<br />
<pre><br />
yum install git -y<br />
cd ~<br />
mkdir git<br />
cd git<br />
git clone --depth 1 https://github.com/FOGProject/fogproject.git<br />
cd fogproject/bin<br />
./installfog.sh<br />
echo Now you should have fog installed.<br />
</pre><br />
<br />
*Follow the on-screen instructions to setup fog for your environment. If you are unsure about anything, choose the default option.<br />
<br />
= Post Config =<br />
<br />
<br />
== Set the FOG services to start 30 seconds after boot ==<br />
<br />
Necessary with CentOS 7 & r6551 and above (FOG 1.3.0 is above r6551). There's an issue with the FOGMulticastManager after a reboot; it's timing related.<br />
<br />
There are also steps included to delay NFS and RPC for 30 seconds as well, It's timing related also and is needed for very fast servers - doing it on all servers won't hurt.<br />
<br />
<br />
*Disable FOG services with:<br />
<br />
<pre>systemctl disable FOG{MulticastManager,Scheduler,SnapinReplicator,ImageReplicator}<br />
systemctl disable nfs-server<br />
systemctl disable rpcbind<br />
echo FOG Services are now disabled.</pre><br />
<br />
Create a startup script with:<br />
<br />
<pre>vi /etc/rc.d/rc.local</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
*Make that file look like below, exactly. This creates a 30 second delay for starting these services at boot.<br />
<br />
<pre>#!/bin/bash<br />
sleep 30<br />
touch /var/lock/subsys/local<br />
systemctl start nfs-server<br />
systemctl start rpcbind<br />
systemctl start FOGMulticastManager<br />
systemctl start FOGScheduler<br />
systemctl start FOGSnapinReplicator<br />
systemctl start FOGImageReplicator<br />
exit 0</pre><br />
<br />
*save the file<br />
<br />
*Then Run this command to make that file executable: <br />
<br />
<pre>chmod +x /etc/rc.d/rc.local</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=CentOS_7&diff=11993CentOS 72016-06-20T10:33:22Z<p>Tom-elliott.7271: /* Setup FOG Trunk */</p>
<hr />
<div><br />
= Installing CentOS 7 =<br />
<br />
== Configuring partitions for FOG ==<br />
<br />
The one thing with using CentOS 7 (or any red-hat based distro) is that the default partitioning isn't optimal for FOG. The default is that "root" only gets 50 GiB and the rest goes to /home. This is not optimal.<br />
<br />
You should delete any existing partitions, and then select "create partitions automatically". This is the easiest. Then you can manipulate and delete unneeded partitions. The most simple partitioning setup for FOG is below:<br />
<br />
*Give the <font color="red">swap</font> partition the same amount as the amount of RAM the system has. <br />
<br />
*Optionally delete the <font color="red">/home</font> partition or limit it's size to something very small (perhaps 10GB).<br />
<br />
*Limit <font color="red">/</font> (root) to 20GB instead of 50 (optional but recommended). Please keep in mind that this is also the partition where the snapins are stored. If you plan to use a lot of snapins and don't think that (roughly) 15GB is enough, then leave this at 50.<br />
<br />
*Increase the size of <font color="red">/boot</font> from 500MB to 1GB for breathing room in the future (optional but recommended).<br />
<br />
*Finally, create a <font color="red">/images</font> partition with all remaining space.<br />
<br />
CentOS (and most Red-Hat based distributions) auto-adjust partition sizes for you if you go over what is available... meaning.. if you are unsure about how much space is left on the drive to assign to <font color="red">/images</font>, you can leave the size field blank and hit "update" and the installer will auto adjust to what is available.<br />
<br />
Another thing to keep in mind is when you install on UEFI enabled hardware, there will be an EFI boot partition made automatically - leave that partition alone.<br />
<br />
(Note: Video plays in Chrome or Firefox with html5 plugin)<br />
<br />
External Video Link:<br />
<br />
[https://youtu.be/sI2AuA5jdYA CentOS 7 FOG Optimal Partitioning]<br />
<br />
Video:<br />
<embedvideo service="youtube">https://youtu.be/sI2AuA5jdYA</embedvideo><br />
<br />
== Continue installation ==<br />
<br />
*Under network settings, set a static IP with Subnet & router info and a name. DNS entries are comma delimited (no spaces).<br />
<br />
*Set the timezone (and any preferred NTP servers).<br />
<br />
*Start installing.<br />
<br />
*Set a root password.<br />
<br />
= CentOS 7 pre-config =<br />
<br />
<br />
== Update CentOS 7 ==<br />
<br />
Update everything installed with this line:<br />
<br />
<pre>yum update -y</pre><br />
<br />
<br />
<br />
== Continue pre-config ==<br />
<br />
After installation is complete and reboot is done, you can work through putty from this point forward. You can get a copy [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here].<br />
<br />
*Log in as root with the password you set earlier.<br />
<br />
*Configure firewalld:<br />
<br />
<pre><br />
yum install firewalld -y<br />
systemctl start firewalld<br />
systemctl enable firewalld<br />
for service in http https tftp ftp mysql nfs mountd rpc-bind proxy-dhcp samba; do firewall-cmd --permanent --zone=public --add-service=$service; <br />
done<br />
<br />
echo "Open UDP port 9000 and 9001, these are the default ports of udp-sender." <br />
firewall-cmd --permanent --add-port=9000-9001/udp<br />
echo "Allow IGMP traffic for multicast"<br />
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT<br />
systemctl restart firewalld.service<br />
echo "Done."<br />
</pre><br />
<br />
<br />
*Add firewalld exceptions for DHCP and DNS (if you plan to run DHCP on your FOG server):<br />
<br />
<pre><br />
for service in dhcp dns; do firewall-cmd --permanent --zone=public --add-service=$service; done<br />
firewall-cmd --reload<br />
echo Additional firewalld config done.<br />
</pre><br />
<br />
<br />
*Set SELinux to permissive on boot by editing /etc/selinux/config<br />
<br />
<pre>vi /etc/selinux/config</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
Change the line <pre>SELINUX=enforcing</pre><br />
<br />
to <br />
<br />
<pre>SELINUX=permissive</pre><br />
<br />
*Set SELinux to permissive on the fly (this is not persistent, the above config must be set to be persistent):<br />
<br />
<pre>setenforce 0</pre><br />
<br />
= Setup FOG Trunk =<br />
<br />
This will install the latest developmental version of FOG using the Git method found here: [[Upgrade to trunk]]<br />
<br />
We need to use FOG Trunk with CentOS 7 and later because the latest stable release of FOG (currently 1.2.0) does not support any recent versions of CentOS 7.<br />
<br />
<br />
<code><br />
yum install git -y;cd ~;mkdir git;cd git;git clone --depth 1 https://github.com/FOGProject/fogproject.git;cd fogproject/bin;./installfog.sh;echo Now you should have fog installed.<br />
</code><br />
<br />
*Follow the on-screen instructions to setup fog for your environment. If you are unsure about anything, choose the default option.<br />
<br />
= Post Config =<br />
<br />
<br />
== Set the FOG services to start 30 seconds after boot ==<br />
<br />
Necessary with CentOS 7 & r6551 and above (FOG 1.3.0 is above r6551). There's an issue with the FOGMulticastManager after a reboot; it's timing related.<br />
<br />
There are also steps included to delay NFS and RPC for 30 seconds as well, It's timing related also and is needed for very fast servers - doing it on all servers won't hurt.<br />
<br />
<br />
*Disable FOG services with:<br />
<br />
<pre>systemctl disable FOG{MulticastManager,Scheduler,SnapinReplicator,ImageReplicator}<br />
systemctl disable nfs-server<br />
systemctl disable rpcbind<br />
echo FOG Services are now disabled.</pre><br />
<br />
Create a startup script with:<br />
<br />
<pre>vi /etc/rc.d/rc.local</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
*Make that file look like below, exactly. This creates a 30 second delay for starting these services at boot.<br />
<br />
<pre>#!/bin/bash<br />
sleep 30<br />
touch /var/lock/subsys/local<br />
systemctl start nfs-server<br />
systemctl start rpcbind<br />
systemctl start FOGMulticastManager<br />
systemctl start FOGScheduler<br />
systemctl start FOGSnapinReplicator<br />
systemctl start FOGImageReplicator<br />
exit 0</pre><br />
<br />
*save the file<br />
<br />
*Then Run this command to make that file executable: <br />
<br />
<pre>chmod +x /etc/rc.d/rc.local</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=CentOS_7&diff=11992CentOS 72016-06-20T10:32:05Z<p>Tom-elliott.7271: /* Setup FOG Trunk */</p>
<hr />
<div><br />
= Installing CentOS 7 =<br />
<br />
== Configuring partitions for FOG ==<br />
<br />
The one thing with using CentOS 7 (or any red-hat based distro) is that the default partitioning isn't optimal for FOG. The default is that "root" only gets 50 GiB and the rest goes to /home. This is not optimal.<br />
<br />
You should delete any existing partitions, and then select "create partitions automatically". This is the easiest. Then you can manipulate and delete unneeded partitions. The most simple partitioning setup for FOG is below:<br />
<br />
*Give the <font color="red">swap</font> partition the same amount as the amount of RAM the system has. <br />
<br />
*Optionally delete the <font color="red">/home</font> partition or limit it's size to something very small (perhaps 10GB).<br />
<br />
*Limit <font color="red">/</font> (root) to 20GB instead of 50 (optional but recommended). Please keep in mind that this is also the partition where the snapins are stored. If you plan to use a lot of snapins and don't think that (roughly) 15GB is enough, then leave this at 50.<br />
<br />
*Increase the size of <font color="red">/boot</font> from 500MB to 1GB for breathing room in the future (optional but recommended).<br />
<br />
*Finally, create a <font color="red">/images</font> partition with all remaining space.<br />
<br />
CentOS (and most Red-Hat based distributions) auto-adjust partition sizes for you if you go over what is available... meaning.. if you are unsure about how much space is left on the drive to assign to <font color="red">/images</font>, you can leave the size field blank and hit "update" and the installer will auto adjust to what is available.<br />
<br />
Another thing to keep in mind is when you install on UEFI enabled hardware, there will be an EFI boot partition made automatically - leave that partition alone.<br />
<br />
(Note: Video plays in Chrome or Firefox with html5 plugin)<br />
<br />
External Video Link:<br />
<br />
[https://youtu.be/sI2AuA5jdYA CentOS 7 FOG Optimal Partitioning]<br />
<br />
Video:<br />
<embedvideo service="youtube">https://youtu.be/sI2AuA5jdYA</embedvideo><br />
<br />
== Continue installation ==<br />
<br />
*Under network settings, set a static IP with Subnet & router info and a name. DNS entries are comma delimited (no spaces).<br />
<br />
*Set the timezone (and any preferred NTP servers).<br />
<br />
*Start installing.<br />
<br />
*Set a root password.<br />
<br />
= CentOS 7 pre-config =<br />
<br />
<br />
== Update CentOS 7 ==<br />
<br />
Update everything installed with this line:<br />
<br />
<pre>yum update -y</pre><br />
<br />
<br />
<br />
== Continue pre-config ==<br />
<br />
After installation is complete and reboot is done, you can work through putty from this point forward. You can get a copy [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here].<br />
<br />
*Log in as root with the password you set earlier.<br />
<br />
*Configure firewalld:<br />
<br />
<pre><br />
yum install firewalld -y<br />
systemctl start firewalld<br />
systemctl enable firewalld<br />
for service in http https tftp ftp mysql nfs mountd rpc-bind proxy-dhcp samba; do firewall-cmd --permanent --zone=public --add-service=$service; <br />
done<br />
<br />
echo "Open UDP port 9000 and 9001, these are the default ports of udp-sender." <br />
firewall-cmd --permanent --add-port=9000-9001/udp<br />
echo "Allow IGMP traffic for multicast"<br />
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT<br />
systemctl restart firewalld.service<br />
echo "Done."<br />
</pre><br />
<br />
<br />
*Add firewalld exceptions for DHCP and DNS (if you plan to run DHCP on your FOG server):<br />
<br />
<pre><br />
for service in dhcp dns; do firewall-cmd --permanent --zone=public --add-service=$service; done<br />
firewall-cmd --reload<br />
echo Additional firewalld config done.<br />
</pre><br />
<br />
<br />
*Set SELinux to permissive on boot by editing /etc/selinux/config<br />
<br />
<pre>vi /etc/selinux/config</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
Change the line <pre>SELINUX=enforcing</pre><br />
<br />
to <br />
<br />
<pre>SELINUX=permissive</pre><br />
<br />
*Set SELinux to permissive on the fly (this is not persistent, the above config must be set to be persistent):<br />
<br />
<pre>setenforce 0</pre><br />
<br />
= Setup FOG Trunk =<br />
<br />
This will install the latest developmental version of FOG using the Git method found here: [[Upgrade to trunk]]<br />
<br />
We need to use FOG Trunk with CentOS 7 and later because the latest stable release of FOG (currently 1.2.0) does not support any recent versions of CentOS 7.<br />
<br />
<br />
<code><br />
yum install git -y<br/><br />
cd ~<br/><br />
mkdir git<br/><br />
cd git<br/><br />
git clone --depth 1 https://github.com/FOGProject/fogproject.git<br/><br />
cd fogproject/bin<br/><br />
./installfog.sh<br/><br />
echo Now you should have fog installed.<br />
</code><br />
<br />
*Follow the on-screen instructions to setup fog for your environment. If you are unsure about anything, choose the default option.<br />
<br />
= Post Config =<br />
<br />
<br />
== Set the FOG services to start 30 seconds after boot ==<br />
<br />
Necessary with CentOS 7 & r6551 and above (FOG 1.3.0 is above r6551). There's an issue with the FOGMulticastManager after a reboot; it's timing related.<br />
<br />
There are also steps included to delay NFS and RPC for 30 seconds as well, It's timing related also and is needed for very fast servers - doing it on all servers won't hurt.<br />
<br />
<br />
*Disable FOG services with:<br />
<br />
<pre>systemctl disable FOG{MulticastManager,Scheduler,SnapinReplicator,ImageReplicator}<br />
systemctl disable nfs-server<br />
systemctl disable rpcbind<br />
echo FOG Services are now disabled.</pre><br />
<br />
Create a startup script with:<br />
<br />
<pre>vi /etc/rc.d/rc.local</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
*Make that file look like below, exactly. This creates a 30 second delay for starting these services at boot.<br />
<br />
<pre>#!/bin/bash<br />
sleep 30<br />
touch /var/lock/subsys/local<br />
systemctl start nfs-server<br />
systemctl start rpcbind<br />
systemctl start FOGMulticastManager<br />
systemctl start FOGScheduler<br />
systemctl start FOGSnapinReplicator<br />
systemctl start FOGImageReplicator<br />
exit 0</pre><br />
<br />
*save the file<br />
<br />
*Then Run this command to make that file executable: <br />
<br />
<pre>chmod +x /etc/rc.d/rc.local</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=CentOS_7&diff=11991CentOS 72016-06-20T10:28:48Z<p>Tom-elliott.7271: /* Setup FOG Trunk */</p>
<hr />
<div><br />
= Installing CentOS 7 =<br />
<br />
== Configuring partitions for FOG ==<br />
<br />
The one thing with using CentOS 7 (or any red-hat based distro) is that the default partitioning isn't optimal for FOG. The default is that "root" only gets 50 GiB and the rest goes to /home. This is not optimal.<br />
<br />
You should delete any existing partitions, and then select "create partitions automatically". This is the easiest. Then you can manipulate and delete unneeded partitions. The most simple partitioning setup for FOG is below:<br />
<br />
*Give the <font color="red">swap</font> partition the same amount as the amount of RAM the system has. <br />
<br />
*Optionally delete the <font color="red">/home</font> partition or limit it's size to something very small (perhaps 10GB).<br />
<br />
*Limit <font color="red">/</font> (root) to 20GB instead of 50 (optional but recommended). Please keep in mind that this is also the partition where the snapins are stored. If you plan to use a lot of snapins and don't think that (roughly) 15GB is enough, then leave this at 50.<br />
<br />
*Increase the size of <font color="red">/boot</font> from 500MB to 1GB for breathing room in the future (optional but recommended).<br />
<br />
*Finally, create a <font color="red">/images</font> partition with all remaining space.<br />
<br />
CentOS (and most Red-Hat based distributions) auto-adjust partition sizes for you if you go over what is available... meaning.. if you are unsure about how much space is left on the drive to assign to <font color="red">/images</font>, you can leave the size field blank and hit "update" and the installer will auto adjust to what is available.<br />
<br />
Another thing to keep in mind is when you install on UEFI enabled hardware, there will be an EFI boot partition made automatically - leave that partition alone.<br />
<br />
(Note: Video plays in Chrome or Firefox with html5 plugin)<br />
<br />
External Video Link:<br />
<br />
[https://youtu.be/sI2AuA5jdYA CentOS 7 FOG Optimal Partitioning]<br />
<br />
Video:<br />
<embedvideo service="youtube">https://youtu.be/sI2AuA5jdYA</embedvideo><br />
<br />
== Continue installation ==<br />
<br />
*Under network settings, set a static IP with Subnet & router info and a name. DNS entries are comma delimited (no spaces).<br />
<br />
*Set the timezone (and any preferred NTP servers).<br />
<br />
*Start installing.<br />
<br />
*Set a root password.<br />
<br />
= CentOS 7 pre-config =<br />
<br />
<br />
== Update CentOS 7 ==<br />
<br />
Update everything installed with this line:<br />
<br />
<pre>yum update -y</pre><br />
<br />
<br />
<br />
== Continue pre-config ==<br />
<br />
After installation is complete and reboot is done, you can work through putty from this point forward. You can get a copy [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here].<br />
<br />
*Log in as root with the password you set earlier.<br />
<br />
*Configure firewalld:<br />
<br />
<pre><br />
yum install firewalld -y<br />
systemctl start firewalld<br />
systemctl enable firewalld<br />
for service in http https tftp ftp mysql nfs mountd rpc-bind proxy-dhcp samba; do firewall-cmd --permanent --zone=public --add-service=$service; <br />
done<br />
<br />
echo "Open UDP port 9000 and 9001, these are the default ports of udp-sender." <br />
firewall-cmd --permanent --add-port=9000-9001/udp<br />
echo "Allow IGMP traffic for multicast"<br />
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT<br />
systemctl restart firewalld.service<br />
echo "Done."<br />
</pre><br />
<br />
<br />
*Add firewalld exceptions for DHCP and DNS (if you plan to run DHCP on your FOG server):<br />
<br />
<pre><br />
for service in dhcp dns; do firewall-cmd --permanent --zone=public --add-service=$service; done<br />
firewall-cmd --reload<br />
echo Additional firewalld config done.<br />
</pre><br />
<br />
<br />
*Set SELinux to permissive on boot by editing /etc/selinux/config<br />
<br />
<pre>vi /etc/selinux/config</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
Change the line <pre>SELINUX=enforcing</pre><br />
<br />
to <br />
<br />
<pre>SELINUX=permissive</pre><br />
<br />
*Set SELinux to permissive on the fly (this is not persistent, the above config must be set to be persistent):<br />
<br />
<pre>setenforce 0</pre><br />
<br />
= Setup FOG Trunk =<br />
<br />
This will install the latest developmental version of FOG using the Git method found here: [[Upgrade to trunk]]<br />
<br />
We need to use FOG Trunk with CentOS 7 and later because the latest stable release of FOG (currently 1.2.0) does not support any recent versions of CentOS 7.<br />
<br />
<br />
<pre><br />
yum install git -y<br />
cd ~<br />
mkdir git<br />
cd git<br />
git clone --depth 1 https://github.com/FOGProject/fogproject.git<br />
cd fogproject/bin<br />
./installfog.sh<br />
echo Now you should have fog installed.<br />
</pre><br />
<br />
*Follow the on-screen instructions to setup fog for your environment. If you are unsure about anything, choose the default option.<br />
<br />
= Post Config =<br />
<br />
<br />
== Set the FOG services to start 30 seconds after boot ==<br />
<br />
Necessary with CentOS 7 & r6551 and above (FOG 1.3.0 is above r6551). There's an issue with the FOGMulticastManager after a reboot; it's timing related.<br />
<br />
There are also steps included to delay NFS and RPC for 30 seconds as well, It's timing related also and is needed for very fast servers - doing it on all servers won't hurt.<br />
<br />
<br />
*Disable FOG services with:<br />
<br />
<pre>systemctl disable FOG{MulticastManager,Scheduler,SnapinReplicator,ImageReplicator}<br />
systemctl disable nfs-server<br />
systemctl disable rpcbind<br />
echo FOG Services are now disabled.</pre><br />
<br />
Create a startup script with:<br />
<br />
<pre>vi /etc/rc.d/rc.local</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
*Make that file look like below, exactly. This creates a 30 second delay for starting these services at boot.<br />
<br />
<pre>#!/bin/bash<br />
sleep 30<br />
touch /var/lock/subsys/local<br />
systemctl start nfs-server<br />
systemctl start rpcbind<br />
systemctl start FOGMulticastManager<br />
systemctl start FOGScheduler<br />
systemctl start FOGSnapinReplicator<br />
systemctl start FOGImageReplicator<br />
exit 0</pre><br />
<br />
*save the file<br />
<br />
*Then Run this command to make that file executable: <br />
<br />
<pre>chmod +x /etc/rc.d/rc.local</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=CentOS_7&diff=11990CentOS 72016-06-20T10:28:35Z<p>Tom-elliott.7271: /* Setup FOG Trunk */</p>
<hr />
<div><br />
= Installing CentOS 7 =<br />
<br />
== Configuring partitions for FOG ==<br />
<br />
The one thing with using CentOS 7 (or any red-hat based distro) is that the default partitioning isn't optimal for FOG. The default is that "root" only gets 50 GiB and the rest goes to /home. This is not optimal.<br />
<br />
You should delete any existing partitions, and then select "create partitions automatically". This is the easiest. Then you can manipulate and delete unneeded partitions. The most simple partitioning setup for FOG is below:<br />
<br />
*Give the <font color="red">swap</font> partition the same amount as the amount of RAM the system has. <br />
<br />
*Optionally delete the <font color="red">/home</font> partition or limit it's size to something very small (perhaps 10GB).<br />
<br />
*Limit <font color="red">/</font> (root) to 20GB instead of 50 (optional but recommended). Please keep in mind that this is also the partition where the snapins are stored. If you plan to use a lot of snapins and don't think that (roughly) 15GB is enough, then leave this at 50.<br />
<br />
*Increase the size of <font color="red">/boot</font> from 500MB to 1GB for breathing room in the future (optional but recommended).<br />
<br />
*Finally, create a <font color="red">/images</font> partition with all remaining space.<br />
<br />
CentOS (and most Red-Hat based distributions) auto-adjust partition sizes for you if you go over what is available... meaning.. if you are unsure about how much space is left on the drive to assign to <font color="red">/images</font>, you can leave the size field blank and hit "update" and the installer will auto adjust to what is available.<br />
<br />
Another thing to keep in mind is when you install on UEFI enabled hardware, there will be an EFI boot partition made automatically - leave that partition alone.<br />
<br />
(Note: Video plays in Chrome or Firefox with html5 plugin)<br />
<br />
External Video Link:<br />
<br />
[https://youtu.be/sI2AuA5jdYA CentOS 7 FOG Optimal Partitioning]<br />
<br />
Video:<br />
<embedvideo service="youtube">https://youtu.be/sI2AuA5jdYA</embedvideo><br />
<br />
== Continue installation ==<br />
<br />
*Under network settings, set a static IP with Subnet & router info and a name. DNS entries are comma delimited (no spaces).<br />
<br />
*Set the timezone (and any preferred NTP servers).<br />
<br />
*Start installing.<br />
<br />
*Set a root password.<br />
<br />
= CentOS 7 pre-config =<br />
<br />
<br />
== Update CentOS 7 ==<br />
<br />
Update everything installed with this line:<br />
<br />
<pre>yum update -y</pre><br />
<br />
<br />
<br />
== Continue pre-config ==<br />
<br />
After installation is complete and reboot is done, you can work through putty from this point forward. You can get a copy [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here].<br />
<br />
*Log in as root with the password you set earlier.<br />
<br />
*Configure firewalld:<br />
<br />
<pre><br />
yum install firewalld -y<br />
systemctl start firewalld<br />
systemctl enable firewalld<br />
for service in http https tftp ftp mysql nfs mountd rpc-bind proxy-dhcp samba; do firewall-cmd --permanent --zone=public --add-service=$service; <br />
done<br />
<br />
echo "Open UDP port 9000 and 9001, these are the default ports of udp-sender." <br />
firewall-cmd --permanent --add-port=9000-9001/udp<br />
echo "Allow IGMP traffic for multicast"<br />
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT<br />
systemctl restart firewalld.service<br />
echo "Done."<br />
</pre><br />
<br />
<br />
*Add firewalld exceptions for DHCP and DNS (if you plan to run DHCP on your FOG server):<br />
<br />
<pre><br />
for service in dhcp dns; do firewall-cmd --permanent --zone=public --add-service=$service; done<br />
firewall-cmd --reload<br />
echo Additional firewalld config done.<br />
</pre><br />
<br />
<br />
*Set SELinux to permissive on boot by editing /etc/selinux/config<br />
<br />
<pre>vi /etc/selinux/config</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
Change the line <pre>SELINUX=enforcing</pre><br />
<br />
to <br />
<br />
<pre>SELINUX=permissive</pre><br />
<br />
*Set SELinux to permissive on the fly (this is not persistent, the above config must be set to be persistent):<br />
<br />
<pre>setenforce 0</pre><br />
<br />
= Setup FOG Trunk =<br />
<br />
This will install the latest developmental version of FOG using the Git method found here: [[Upgrade to trunk]]<br />
<br />
We need to use FOG Trunk with CentOS 7 and later because the latest stable release of FOG (currently 1.2.0) does not support any recent versions of CentOS 7.<br />
<br />
<br />
<pre><code><br />
yum install git -y<br />
cd ~<br />
mkdir git<br />
cd git<br />
git clone --depth 1 https://github.com/FOGProject/fogproject.git<br />
cd fogproject/bin<br />
./installfog.sh<br />
echo Now you should have fog installed.<br />
</code></pre><br />
<br />
*Follow the on-screen instructions to setup fog for your environment. If you are unsure about anything, choose the default option.<br />
<br />
= Post Config =<br />
<br />
<br />
== Set the FOG services to start 30 seconds after boot ==<br />
<br />
Necessary with CentOS 7 & r6551 and above (FOG 1.3.0 is above r6551). There's an issue with the FOGMulticastManager after a reboot; it's timing related.<br />
<br />
There are also steps included to delay NFS and RPC for 30 seconds as well, It's timing related also and is needed for very fast servers - doing it on all servers won't hurt.<br />
<br />
<br />
*Disable FOG services with:<br />
<br />
<pre>systemctl disable FOG{MulticastManager,Scheduler,SnapinReplicator,ImageReplicator}<br />
systemctl disable nfs-server<br />
systemctl disable rpcbind<br />
echo FOG Services are now disabled.</pre><br />
<br />
Create a startup script with:<br />
<br />
<pre>vi /etc/rc.d/rc.local</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
*Make that file look like below, exactly. This creates a 30 second delay for starting these services at boot.<br />
<br />
<pre>#!/bin/bash<br />
sleep 30<br />
touch /var/lock/subsys/local<br />
systemctl start nfs-server<br />
systemctl start rpcbind<br />
systemctl start FOGMulticastManager<br />
systemctl start FOGScheduler<br />
systemctl start FOGSnapinReplicator<br />
systemctl start FOGImageReplicator<br />
exit 0</pre><br />
<br />
*save the file<br />
<br />
*Then Run this command to make that file executable: <br />
<br />
<pre>chmod +x /etc/rc.d/rc.local</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=CentOS_7&diff=11989CentOS 72016-06-20T10:28:11Z<p>Tom-elliott.7271: /* Setup FOG Trunk */</p>
<hr />
<div><br />
= Installing CentOS 7 =<br />
<br />
== Configuring partitions for FOG ==<br />
<br />
The one thing with using CentOS 7 (or any red-hat based distro) is that the default partitioning isn't optimal for FOG. The default is that "root" only gets 50 GiB and the rest goes to /home. This is not optimal.<br />
<br />
You should delete any existing partitions, and then select "create partitions automatically". This is the easiest. Then you can manipulate and delete unneeded partitions. The most simple partitioning setup for FOG is below:<br />
<br />
*Give the <font color="red">swap</font> partition the same amount as the amount of RAM the system has. <br />
<br />
*Optionally delete the <font color="red">/home</font> partition or limit it's size to something very small (perhaps 10GB).<br />
<br />
*Limit <font color="red">/</font> (root) to 20GB instead of 50 (optional but recommended). Please keep in mind that this is also the partition where the snapins are stored. If you plan to use a lot of snapins and don't think that (roughly) 15GB is enough, then leave this at 50.<br />
<br />
*Increase the size of <font color="red">/boot</font> from 500MB to 1GB for breathing room in the future (optional but recommended).<br />
<br />
*Finally, create a <font color="red">/images</font> partition with all remaining space.<br />
<br />
CentOS (and most Red-Hat based distributions) auto-adjust partition sizes for you if you go over what is available... meaning.. if you are unsure about how much space is left on the drive to assign to <font color="red">/images</font>, you can leave the size field blank and hit "update" and the installer will auto adjust to what is available.<br />
<br />
Another thing to keep in mind is when you install on UEFI enabled hardware, there will be an EFI boot partition made automatically - leave that partition alone.<br />
<br />
(Note: Video plays in Chrome or Firefox with html5 plugin)<br />
<br />
External Video Link:<br />
<br />
[https://youtu.be/sI2AuA5jdYA CentOS 7 FOG Optimal Partitioning]<br />
<br />
Video:<br />
<embedvideo service="youtube">https://youtu.be/sI2AuA5jdYA</embedvideo><br />
<br />
== Continue installation ==<br />
<br />
*Under network settings, set a static IP with Subnet & router info and a name. DNS entries are comma delimited (no spaces).<br />
<br />
*Set the timezone (and any preferred NTP servers).<br />
<br />
*Start installing.<br />
<br />
*Set a root password.<br />
<br />
= CentOS 7 pre-config =<br />
<br />
<br />
== Update CentOS 7 ==<br />
<br />
Update everything installed with this line:<br />
<br />
<pre>yum update -y</pre><br />
<br />
<br />
<br />
== Continue pre-config ==<br />
<br />
After installation is complete and reboot is done, you can work through putty from this point forward. You can get a copy [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html here].<br />
<br />
*Log in as root with the password you set earlier.<br />
<br />
*Configure firewalld:<br />
<br />
<pre><br />
yum install firewalld -y<br />
systemctl start firewalld<br />
systemctl enable firewalld<br />
for service in http https tftp ftp mysql nfs mountd rpc-bind proxy-dhcp samba; do firewall-cmd --permanent --zone=public --add-service=$service; <br />
done<br />
<br />
echo "Open UDP port 9000 and 9001, these are the default ports of udp-sender." <br />
firewall-cmd --permanent --add-port=9000-9001/udp<br />
echo "Allow IGMP traffic for multicast"<br />
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p igmp -j ACCEPT<br />
systemctl restart firewalld.service<br />
echo "Done."<br />
</pre><br />
<br />
<br />
*Add firewalld exceptions for DHCP and DNS (if you plan to run DHCP on your FOG server):<br />
<br />
<pre><br />
for service in dhcp dns; do firewall-cmd --permanent --zone=public --add-service=$service; done<br />
firewall-cmd --reload<br />
echo Additional firewalld config done.<br />
</pre><br />
<br />
<br />
*Set SELinux to permissive on boot by editing /etc/selinux/config<br />
<br />
<pre>vi /etc/selinux/config</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
Change the line <pre>SELINUX=enforcing</pre><br />
<br />
to <br />
<br />
<pre>SELINUX=permissive</pre><br />
<br />
*Set SELinux to permissive on the fly (this is not persistent, the above config must be set to be persistent):<br />
<br />
<pre>setenforce 0</pre><br />
<br />
= Setup FOG Trunk =<br />
<br />
This will install the latest developmental version of FOG using the Git method found here: [[Upgrade to trunk]]<br />
<br />
We need to use FOG Trunk with CentOS 7 and later because the latest stable release of FOG (currently 1.2.0) does not support any recent versions of CentOS 7.<br />
<br />
<br />
<code><br />
yum install git -y<br />
cd ~<br />
mkdir git<br />
cd git<br />
git clone --depth 1 https://github.com/FOGProject/fogproject.git<br />
cd fogproject/bin<br />
./installfog.sh<br />
echo Now you should have fog installed.<br />
</code><br />
<br />
*Follow the on-screen instructions to setup fog for your environment. If you are unsure about anything, choose the default option.<br />
<br />
= Post Config =<br />
<br />
<br />
== Set the FOG services to start 30 seconds after boot ==<br />
<br />
Necessary with CentOS 7 & r6551 and above (FOG 1.3.0 is above r6551). There's an issue with the FOGMulticastManager after a reboot; it's timing related.<br />
<br />
There are also steps included to delay NFS and RPC for 30 seconds as well, It's timing related also and is needed for very fast servers - doing it on all servers won't hurt.<br />
<br />
<br />
*Disable FOG services with:<br />
<br />
<pre>systemctl disable FOG{MulticastManager,Scheduler,SnapinReplicator,ImageReplicator}<br />
systemctl disable nfs-server<br />
systemctl disable rpcbind<br />
echo FOG Services are now disabled.</pre><br />
<br />
Create a startup script with:<br />
<br />
<pre>vi /etc/rc.d/rc.local</pre><br />
<br />
Instructions on using Vi: [[Vi]]<br />
<br />
*Make that file look like below, exactly. This creates a 30 second delay for starting these services at boot.<br />
<br />
<pre>#!/bin/bash<br />
sleep 30<br />
touch /var/lock/subsys/local<br />
systemctl start nfs-server<br />
systemctl start rpcbind<br />
systemctl start FOGMulticastManager<br />
systemctl start FOGScheduler<br />
systemctl start FOGSnapinReplicator<br />
systemctl start FOGImageReplicator<br />
exit 0</pre><br />
<br />
*save the file<br />
<br />
*Then Run this command to make that file executable: <br />
<br />
<pre>chmod +x /etc/rc.d/rc.local</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=FOG_Client&diff=11891FOG Client2016-05-18T22:15:02Z<p>Tom-elliott.7271: /* Additional Details */</p>
<hr />
<div>This article applies to the new FOG Client, version 0.10+<br />
<br />
== The Different Installers ==<br />
<br />
The different installers are located in your FOG server's web interface. The link is always at the very bottom of every page and are even available to you if you're not logged into the fog server.<br />
<br />
[[File:Fog client link.png]]<br />
<br />
[[File:New FOGClient download link.png]]<br />
<br />
'''FOGService.msi''' - Windows only, and is ideal for network deployment.<br />
<br />
'''SmartInstaller.exe''' - This is the new default installer. It will work on all platforms.<br />
<br />
'''Debugger.exe''' - This is not listed in the web interface but is available from github [https://github.com/FOGProject/fog-client/releases here]. Only use this when the above two are not working. This build has more detailed logs that you can use for troubleshooting or a bug report.<br />
<br />
== Installing - Windows ==<br />
<br />
'''Prerequisites'''<br />
* .NET Framework version 4.0+ (Note: .NET 4 client profile will NOT work)<br />
You can download the framework from here: <br />
<br />
[https://www.microsoft.com/en-us/download/details.aspx?id=40779 Microsoft .NET Framework 4.5.1 (Offline Installer) for Windows Vista SP2, Windows 7 SP1, Windows 8, Windows Server 2008 SP2 Windows Server 2008 R2 SP1 and Windows Server 2012]<br />
<br />
Windows 10 comes with a version of .Net that will work.<br />
<br />
'''Installation'''<br />
* May use SmartInstaller or msi. Simply download either one of them and run.<br />
* Reboot to complete installation.<br />
<br />
'''Limitations'''<br />
* CUPS printers are not yet supported<br />
<br />
== Installing - Linux ==<br />
<br />
Installation instructions derived from [http://www.mono-project.com/docs/getting-started/install/linux/ http://www.mono-project.com/docs/getting-started/install/linux/]<br />
<br />
'''Prerequisites'''<br />
* Mono (latest stable build)<br />
* xprintidle - This dependency is optional. If not installed AutoLogOut will not run. xprintidle basically just returns the idle time of an x window, therefore on a system without a GUI it is not needed and should not be installed. It should be available in standard package managers. E.G. apt-get, yum, or dnf<br />
<br />
'''Installing Mono'''<br />
Many distributions come with an out of date version of mono in their package manager. Therefore, do not attempt to install via your package manager without the below modifications<br />
<br />
=== Debian 8+, Ubuntu 13.10+, and derivatives ===<br />
<br />
To install:<br />
<br />
<pre><br />
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF<br />
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list<br />
sudo apt-get update<br />
sudo apt-get install mono-complete<br />
sudo apt-get install xprintidle<br />
</pre><br />
<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
<br />
<br />
The service is automatically configured to run on startup. To manually start and stop the service:<br />
<br />
<pre><br />
sudo service FOGService start<br />
</pre><br />
<pre><br />
sudo service FOGService stop<br />
</pre><br />
<br />
To uninstall:<br />
<br />
<pre><br />
sudo service FOGService stop<br />
sudo mono SmartInstaller.exe uninstall<br />
</pre><br />
<br />
=== CentOS 7, Fedora 19 (and later), and derivatives ===<br />
<br />
To install:<br />
<br />
<pre><br />
yum install yum-utils<br />
rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"<br />
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/<br />
yum install mono-complete<br />
yum install xprintidle<br />
</pre><br />
<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
<br />
The service is automatically configured to run on startup. To manually start and stop the service:<br />
<br />
<pre><br />
sudo systemctl start FOGService<br />
</pre><br />
<pre><br />
sudo systemctl stop FOGService<br />
</pre><br />
<br />
To uninstall:<br />
<br />
<pre><br />
sudo systemctl stop FOGService<br />
sudo mono SmartInstaller.exe uninstall<br />
</pre><br />
<br />
=== openSUSE and SLES ===<br />
<br />
You can install mono using SUSE One-Click files: [http://download.mono-project.com/repo/mono-complete.ymp http://download.mono-project.com/repo/mono-complete.ymp]<br />
<br />
=== Other ===<br />
<br />
The FOG Client can be installed on any platform that can run the latest stable build of mono.<br />
<br />
To install:<br />
<br />
* Check your package manager for <font color="red">mono-complete</font>. After installing it run <font color="red">mono --version</font>. Ensure the version is at least 4.2._ . If it not, remove the package.<br />
* If your package manager had an old version of mono, see [http://www.mono-project.com/docs/compiling-mono/linux/ here] for how to compile mono<br />
<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
<br />
If your system either has systemd or initd the client will be automatically configured to run on startup. If your system does not have either, you will need to configure your system to run the manual start command below on startup.<br />
<br />
To manually start and stop the service:<br />
<br />
<pre><br />
sudo /opt/fog-service/control.sh start<br />
</pre><br />
<pre><br />
sudo /opt/fog-service/control.sh stop<br />
</pre><br />
<br />
===Limitations===<br />
* The FOG Tray is currently incompatible on all non-windows systems. Regardless of what you set during installation, it will not run.<br />
* The follow modules / features are not yet supported<br />
** Active Directory joining<br />
** PrinterManager<br />
** GreenFOG<br />
<br />
== Installing - OSX ==<br />
<br />
Installation instructions derived from [http://www.mono-project.com/docs/getting-started/install/linux/ http://www.mono-project.com/docs/getting-started/install/linux/]<br />
<br />
'''Prerequisites'''<br />
* Mono (latest stable build)<br />
<br />
'''Installing Mono'''<br />
* If you are running El Capitan, navigate to [http://www.mono-project.com/download/#download-mac http://www.mono-project.com/download/#download-mac] and download <font color=”red”>Mono Universal Installer</font> <br />
* Otherwise, navigate to [http://www.mono-project.com/download/#download-mac http://www.mono-project.com/download/#download-mac] and download <font color=”red”>Mono 32-bit</font> <br />
<br />
'''Installation'''<br />
* Download SmartInstaller.exe from your FOG server and run the installer with mono.<br />
** <font color="red">sudo mono SmartInstaller.exe</font><br />
* The client will install to /opt/fog-service , and fog.log will be located at /opt/fog-service/fog.log<br />
* Reboot the system to complete the installation.<br />
<br />
The service is automatically configured to run on startup. To manually start and stop the service:<br />
<br />
<pre><br />
sudo launchctl load -w /Library/LaunchDaemons/org.freeghost.daemon.plist<br />
</pre><br />
<pre><br />
sudo launchctl unload -w /Library/LaunchDaemons/org.freeghost.daemon.plist<br />
</pre><br />
<br />
To uninstall:<br />
<br />
<pre><br />
sudo launchctl unload -w /Library/LaunchDaemons/org.freeghost.daemon.plist<br />
sudo mono SmartInstaller.exe uninstall<br />
</pre><br />
<br />
'''Limitations'''<br />
* When running snapins on Yosemite, it is not guaranteed that it will have PATH set.<br />
* The FOG Tray is currently incompatible on all non-windows systems. Regardless of what you set during installation, it will not run.<br />
* The follow modules / features are not yet supported<br />
** PrinterManager<br />
** GreenFOG<br />
<br />
'''Logging'''<br />
<br />
You can find the client log file in /opt/fog-service/fog.log<br />
<br />
== Additional Details ==<br />
<br />
=== Security Design ===<br />
<br />
Communications between the FOG Client (0.9.9+) and the FOG Server (1.3.0+) are secured using public key infrastructure.<br />
<br />
A Certificate Authority and private key is generated on the FOG server during first installation in this location:<br />
<br />
<pre>/opt/fog/snapins/ssl</pre><br />
<br />
The public certificate is generally located here:<br />
<pre>/var/www/html/fog/management/other/ssl</pre><br />
<br />
The client installs your servers’ certificate and the FOG Project certificate.<br />
<br />
The “FOG Project” CA (made by the FOG Project) serves two purposes:<br />
<br />
*SYSTEM level services need to be digitally signed otherwise windows will throw security errors. This can also be used to ensure no tampering was done with the client files<br />
<br />
*That certificate is used to “verify” upgrades. Lets say we release a patch for the client, the client will download the MSI from your server and check if it was signed by us. If the MSI was somehow tampered, the digital signature would no longer be valid.<br />
<br />
Using HTTP over HTTPS has no security benefit to the client. Why? Because all traffic is already encrypted. Here’s a very basic overview of how the new client communicates<br />
<br />
*Each client has a security token. This is used to prove to the server that the client is the actual host and not an impersonator. This token gets cycled constantly. When the client first makes contact, it encrypts its token and a proposed AES 256 key using RSA 4096 using your server’s public key. This public key is verified against the pinned server CA certificate by checking the x509 chain and fingerprints.<br />
<br />
*If the server accepts the security token and the new AES key, all traffic from that point on is AES 256 encrypted using that securely transmitted key.<br />
<br />
The whole point of our security model is to allow for secure communication over insecure medians.<br />
Even then, the client installation has an HTTPS option, but it serves no real security benefit.<br />
<br />
==== Reset encryption data ====<br />
This pertains to the new fog client available in FOG 1.3.0 and above, and does not apply to the legacy fog client that was available in 1.2.0 and below.<br />
<br />
The “Reset encryption data” is mainly doing one thing: Clearing the security token for a host.<br />
<br />
Each host has a security token used by the client. This token is private; only the client knows it and is protected. It is used to prove the identity of the host, ensuring no one ‘fakes’ being a certain host. So when you 'Reset Encryption Data", you are essentially telling the server that the first host to say that they are the host in question gets ‘locked’ in (pinned is the technical term).<br />
<br />
In order to have encrypted traffic, the handshake must occur. During the handshake the server proves its identity to the client, and the client proves its identity to the server (using the security token). If the handshake fails (due to a bad security token), encryption cannot occur.<br />
<br />
The most common scenario where the security tokens for a client will be incorrect is if you manually uninstall a client, and then install it.<br />
<br />
References: <br />
<br />
[https://forums.fogproject.org/topic/6325/invalid-security-token-without-any-security-tokens-being-set-also-ca-ssl-security-concerns/6 CA SSL security concerns]<br />
<br />
[https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning Certificate and Public Key Pinning]<br />
<br />
[https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Certificate_and_Public_Key_Pinning Transport_Layer_Protection_Cheat_Sheet]<br />
<br />
=== Maintain Control Of Hosts When Building New Server ===<br />
<br />
Because of the security model of FOG 1.3.0 and the new client, without the proper CA and ssl certificates present on a new fog server, any currently deployed hosts with the new fog client installed will ignore the new server and not accept commands from it. This is by design.<br />
<br />
In order to maintain control of existing hosts with existing new fog client deployments, you must copy this directory from the old server to the new server:<br />
<br />
* <font color="red">/opt/fog/snapins/ssl</font><br />
<br />
Copy the directory to a temporary location first. I would suggest <font color="red">/root</font><br />
<br />
<pre>cp -R /opt/fog/snapins/ssl /root</pre><br />
<br />
Then you can use scp to copy the directory (or some other method) to your new fog server. Run the below command from the '''old''' server, Where x.x.x.x is the new fog server's address:<br />
<br />
<pre>scp -rp /opt/fog/snapins/ssl root@x.x.x.x:/root</pre><br />
<br />
Or, the reverse. Run the below command from the '''new''' server, where x.x.x.x is the old fog server's address.<br />
<br />
<pre>scp -rp root@x.x.x.x:/opt/fog/snapins/ssl /root</pre><br />
<br />
Next, install fog. After the installation is complete, delete the ssl folder the installer made, and place your old ssl (from /root that you copied) in there. The ownership should be fog:apache on Red-Hat variants, should be fog:www-data on Debian variants. Then '''re-run the installer.''' Instructions for the folder manipulation are below, assuming you followed the above instructions. On the '''new''' server:<br />
<br />
<pre><br />
rm -rf /opt/fog/snapins/ssl<br />
cp -R /root/ssl /opt/fog/snapins/ssl<br />
chown -R fog:apache /opt/fog/snapins/ssl #or fog:www-data for ubuntu and debian<br />
</pre><br />
<br />
If you do not care about maintaining control of existing hosts with existing new fog client deployments (because there is only 1 or 2), you can recreate your CA with the -C argument during installation: <br />
<br />
<pre>./installfog.sh -C</pre><br />
<br />
<font color="red">Note:</font> Recreating the CA (<font color="red">--recreate-CA</font>) is '''very strongly advised against''' if you have many clients deployed already, because it resets the identity of the FOG Server. This causes all fog clients to distrust the server, and will require total reinstallation of all fog clients in an environment. However, you may recreate the keys (<font color="red">--recreate-keys</font>) safely.<br />
<br />
=== FOG Client 0.10.0+ Installation Options ===<br />
<br />
<pre>msiexec /i FOGService.msi /quiet USETRAY="0" HTTPS="0" WEBADDRESS="192.168.1.X" WEBROOT="/fog" ROOTLOG="0"</pre><br />
<br />
Firstly, all options are optional. Here’s what they all do:<br />
<br />
*USETRAY: defaults to "1", if "0" the tray will be hidden<br />
<br />
*HTTPS: defaults to "0", if "1" the client will use HTTPS (not recommended)<br />
<br />
*WEBADDRESS: defaults to "fog-server", this is the ip/dns name of your server<br />
<br />
*WEBROOT: defaults to "/fog"<br />
<br />
*ROOTLOG defaults to "0", if "1" the fog.log will be at C:\fog.log, otherwise %PROGRAMFILES%\FOG\fog.log<br />
<br />
Reference: [https://forums.fogproject.org/topic/6222/msi-silent-install-without-tray-icon/2 MSI Silent Install without Tray Icon]<br />
<br />
=== Manually Reset Encryption On ALL Hosts ===<br />
<br />
This applies to FOG 1.3.0 where the New Client is in use and for some reason you need to manually reset the encryption for all hosts.<br />
<pre><br />
mysql<br />
use fog<br />
UPDATE hosts SET hostPubKey="", hostSecToken="", hostSecTime="0000-00-00 00:00:00";</pre><br />
<br />
<br />
=== FOG Client with Sysprep ===<br />
<br />
If you plan to use Sysprep before image capture and are also planning to use the FOG Client, You '''must''' disable the <font color="red">FOGService</font> service from running at boot before you Sysprep to take your image, and then re-enable it within your <font color="red">SetupComplete.cmd</font> so that it is re-enabled '''after''' the image deployment is complete. Failing to do so will break the Sysprep post-deployment process with an error message that says "Windows Setup could not configure Windows to run on this computer’s hardware.”<br />
<br />
* To disable the FOGService, navigate through Windows Control Pannel -> View by Small Icons -> Administrative Tools -> Services -> Locate the <font color="red">FOGService</font> -> Right click -> Properties -> Startup Type -> Disabled.<br />
<br />
* To re-enable it post-deployment and post-sysprep operations, in your <font color="red">SetupComplete.cmd</font> you must have these two lines at the end:<br />
<br />
<pre>sc config FOGService start= auto<br />
net start FOGService</pre><br />
<br />
setupcomlete.cmd has to be placed under <font color="red">C:\Windows\Setup\scripts</font> in the master system. As the name indicates, the script is called by windows just after setup has finished.<br />
<br />
After setting up these two things, sysprep can successfully complete post-deployment setup and start the FOGService. The FOGService can then rename/join/deploy/setup printers/setup snapins/etc for you as normal.</div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11887.fogsettings2016-05-15T01:34:03Z<p>Tom-elliott.7271: /* Database Information */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre><br />
== Language ==<br />
Language packs for the OS can be installed. This enables more appropriate translations of information.<br />
<pre><br />
installlang='0'<br />
</pre><br />
== Donate ==<br />
Donate seems a bit strange a name for this. What it does, however, is not pass money. It's a different method that tells the server if it's going to allow mining of bitcoins during the imaging phases. Donation can be disabled later and this value will have no more effect during updates. It only operates to define setting during fresh installs.<br />
<pre><br />
donate='0'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11886.fogsettings2016-05-15T01:23:38Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre><br />
== Type of installation ==<br />
Just tells the installer if this is going to be a full server, or a node. If it's a node, the value will be S. If it's a full server, the value will be N.<br />
<pre><br />
installtype='N'<br />
</pre><br />
== Database Information ==<br />
=== MySQL User ===<br />
This is the username to connect to the database as. Blank will default to connecting as user root.<br />
<pre><br />
snmysqluser=''<br />
</pre><br />
=== MySQL Password ===<br />
This is the password to connect to the database.<br />
<pre><br />
snmysqlpass=''<br />
</pre><br />
=== MySQL Host ===<br />
This is the host to connect to the database. Blank will default to localhost/127.0.0.1.<br />
<pre><br />
snmysqlhost=''<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11885.fogsettings2016-05-15T01:17:26Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre><br />
== NFS ==<br />
Defines if the installer should rebuild the exports every time. Setting to 0 will ensure the exports file for nfs does not get rebuilt. Setting to 1 will update the exports file.<br />
<pre><br />
blexports='1'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11884.fogsettings2016-05-15T01:14:54Z<p>Tom-elliott.7271: /* DHCP Enabled */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11883.fogsettings2016-05-15T01:14:18Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre><br />
== DHCP Enabled ==<br />
=== dodhcp ===<br />
Just tells if we want fog to install dhcp.<br />
<pre><br />
dodhcp='N'<br />
</pre><br />
=== bldhcp ===<br />
Same, more or less, as dodhcp<br />
<pre><br />
bldhcp='0'<br />
</pre><br />
=== dhcpd ===<br />
Defines what package to install for dhcp server.<br />
<pre><br />
dhcpd='isc-dhcp-server'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11882.fogsettings2016-05-15T01:11:40Z<p>Tom-elliott.7271: /* OS Identifier */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Information ==<br />
=== OS Identifier ===<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre><br />
=== OS Name ===<br />
This is the name of the OS as it's being installed.<br />
<pre><br />
osname='Debian'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11881.fogsettings2016-05-15T01:08:22Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre><br />
== OS Identifier ==<br />
This is the OS identifier used during the installation. The value is numeric.<br />
<br />
Valid Values are:<br />
# Redhat based.<br />
# Debian based.<br />
# Arch<br />
<br />
<pre><br />
osid='2'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11880.fogsettings2016-05-15T01:01:43Z<p>Tom-elliott.7271: /* Linux Login/FTP */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre><br />
=== Password ===<br />
This is the linux fog user password. It is randomly generated if the value is not already defined. Every update will reset the password to what is in this field. You should, if you predefined a fog user and the installation is the first time, create the /opt/fog/.fogsettings file. Only add the password field to ensure your password doesn't get changed accidentally.<br />
<pre><br />
password='Some!random_Password\here0918358'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11879.fogsettings2016-05-15T00:51:25Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP ==<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11878.fogsettings2016-05-15T00:51:08Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre><br />
== Linux Login/FTP<br />
=== Username ===<br />
This variable is the user setup for the linux user on the server. This allows a user to login to the server/node under this username through linux. The purpose of this is more specifically setup for FTP usage.<br />
<pre><br />
username='fog'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11877.fogsettings2016-05-15T00:48:41Z<p>Tom-elliott.7271: /* dnsbootimage */</p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from DHCP as dhcp was not called.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11876.fogsettings2016-05-15T00:47:59Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
=== dnsaddress ===<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
=== dnsbootimage ===<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from the DHCP.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11875.fogsettings2016-05-15T00:47:19Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre><br />
== DNS Address ==<br />
Used, again, for DHCP setup.<br />
<pre><br />
dnsaddress='192.168.1.5'<br />
</pre><br />
== dnsbootimage ==<br />
No longer used. It's purpose was originally because the FOS (Fog Operating System -- init.xz/init_32.xz/init.gz) did not dynamically get the dns address from the DHCP.<br />
<pre><br />
dnsbootimage='192.168.1.5'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11874.fogsettings2016-05-15T00:42:04Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
= Definitions =<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre></div>Tom-elliott.7271https://wiki.fogproject.org/wiki/index.php?title=.fogsettings&diff=11873.fogsettings2016-05-15T00:35:28Z<p>Tom-elliott.7271: </p>
<hr />
<div>In most versions of FOG (including 1.2.0 and 1.3.0), the low-level settings that are used during installation and some settings that simply cannot be stored in the database are contained in the /opt/fog/.fogsettings file.<br />
<br />
This file contains the setup of variables used within the installer during upgrades/installs.<br />
<br />
An example .fogsettings file<br />
= Example .fogsettings file =<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
ipaddress='192.168.1.5'<br />
interface='eth0'<br />
submask='255.255.255.0'<br />
routeraddress='192.168.1.1'<br />
plainrouter='192.168.1.1'<br />
dnsaddress='192.168.1.1'<br />
dnsbootimage='192.168.1.1'<br />
username='fog'<br />
password='Some!random_Password\here0918358'<br />
osid='2'<br />
osname='Debian'<br />
dodhcp='N'<br />
bldhcp='0'<br />
dhcpd='isc-dhcp-server'<br />
blexports='1'<br />
installtype='N'<br />
snmysqluser=''<br />
snmysqlpass=''<br />
snmysqlhost=''<br />
installlang='0'<br />
donate='0'<br />
storageLocation='/images'<br />
fogupdateloaded=1<br />
docroot='/var/www/html/'<br />
webroot='fog/'<br />
caCreated='yes'<br />
startrange=''<br />
endrange=''<br />
bootfilename='undionly.kpxe'<br />
packages='apache2 php7.0 php7.0-json php7.0-gd php7.0-cli php7.0-curl mysql-server mysql-client tftpd-hpa tftp-hpa nfs-kernel-server vsftpd net-tools wget xinetd sysv-rc-conf tar gzip build-essential cpp gcc g++ m4 htmldoc lftp openssh-server php-gettext php7.0-mcrypt php7.0-mysql curl libc6 libcurl3 zlib1g php7.0-fpm libapache2-mod-php7.0 php7.0-mbstring'<br />
noTftpBuild=''<br />
notpxedefaultfile=''<br />
sslpath='/opt/fog/snapins/ssl/'<br />
backupPath='/home/'<br />
## End of FOG Settings<br />
</pre><br />
Here are what the settings in this file mean:<br />
== Header/Footer ==<br />
=== Header ===<br />
Only gives some simplistic information to help users.<br />
Does no actions just gives some information.<br />
<pre><br />
## Start of FOG Settings<br />
## Created by the FOG Installer<br />
## Version: 7625<br />
## Install time: Sat 14 May 2016 08:05:18 PM EDT<br />
</pre><br />
=== Footer ===<br />
Does no actions, just tells where FOG's default variables are setup<br />
Any new items will go below this, and you can add your own variables.<br />
You can add variables wherever you want.<br />
<pre><br />
## End of FOG Settings<br />
</pre><br />
== IP Address ==<br />
Defines the IP address of the node/server.<br />
This is also used on servers to setup the default.ipxe file.<br />
<pre><br />
ipaddress='192.168.1.5'<br />
</pre><br />
== Interface ==<br />
This just sets the storage nodes/server interface as it will be stored in the Database. This used to be used for multicast setups and for the bandwidth graph. This is now setup so it is only used on the bandwidth graph as we already know the ip address anyway. Multicast tasks can get their own interface instead of relying on user entry.<br />
<pre><br />
interface='eth0'<br />
</pre><br />
== Subnet Mask ==<br />
This defines the subnet mask to use if the system is to be used as a DHCP server. It will assume the subnet mask of the interface being used, but can be changed later if you see fit.<br />
<pre><br />
submask='255.255.255.0'<br />
</pre><br />
== Router Address ==<br />
This will setup the router address to use if the system is to be used as a DHCP server. It currently only sets as an ip address, but in the past contained the whole dhcp configuration string. The config string was removed as it would only work on isc-dhcp-server, when some might be using dnsmasq or another dhcp server.<br />
<pre><br />
routeraddress='192.168.1.1'<br />
</pre><br />
== Plain Router ==<br />
Very similar to the Router Address elements above, but can be used to redirect to maybe another router/switch other than the main.<br />
<pre><br />
plainrouter='192.168.1.1'<br />
</pre></div>Tom-elliott.7271