Giter Site home page Giter Site logo

fogproject / fogproject Goto Github PK

View Code? Open in Web Editor NEW
1.1K 84.0 221.0 4.3 GB

An open source computer cloning & management system

Home Page: https://fogproject.org

License: GNU General Public License v3.0

Shell 5.58% Makefile 2.09% PHP 72.95% CSS 1.06% HTML 0.06% JavaScript 14.16% C 0.42% Less 1.82% SCSS 1.84% Awk 0.01%

fogproject's Introduction

FOGProject starting point

Introduction

FOG is a free open-source cloning/imaging/rescue suite/inventory management system. FOG can be used to image Windows XP, Vista, Windows 7, Window 8/8.1, and Windows 10, Windows 11 PCs using PXE, PartClone, and a Web GUI to tie it together. Includes features like memory and disk test, disk wipe, av scan, task scheduling, inventory management, remote deployment of OS's, and remote installation of software packages. Features can be triggered through the web GUI, once the client machine has been registered with FOG.

Versioning and branches

FOG uses a versioning schema that follows the general principles of semantic versioning with some adjustments to fit the development lifecycle. You can find the automatic release workflows in the fog-workflows repo Stable Release

  • The default branch of stable will always have the latest patch release, for most users this is where you want to install from.
  • The master branch has the baseline of the latest Minor release. You should not typically install from here as it won't include security patches released since the baseline was set.
  • dev-branch is where the latest patch release changes are staged and tested. You can install from dev-branch to help test bug-fixes, security-fixes, and minor feature enhancements on a more frequent cadence.
  • working-* and feature-named branches are where work on the next Major or Minor release take place. They can be used to install and test the current beta version or specific working features.

This gives us a Production, Staging, and Dev branches to follow standard devops practices.

Dev Cycle Stage Branches Version Property Associated
Production stable, master Minor and Patch
Staging dev-branch Patch
Dev working-*, {feature-name} Major, Minor

Version Format

Our versions are formatted in a x.x.x.x format like so:

{CodeBaseMajor}.{Major}.{Minor}.{Patch}

Version Property Description Example
CodeBaseMajor Major code baseline changes and API breaking changes, requires formal release 1.x.x.x
Major Major feature additions and UI changes, potential breaking changes within the same code base, requires formal release 1.5.x.x
Minor Non-breaking major feature enhancements, requires formal release 1.5.10.x
Patch On-going Bug and security fixes and feature enhancements, automated releases 1.5.10.41

Install stable version

  1. Install and update your linux server distro

  2. Download the installation file(s)

  • All that is needed to start installation is to download the files to perform the install. Choose one of the following methods you prefer;

    • ZIP archive wget https://github.com/FOGProject/fogproject/archive/stable.zip; unzip stable.zip

    • TAR/GZ archive wget https://github.com/FOGProject/fogproject/archive/stable.tar.gz; tar xzf stable.tar.gz

    • git git clone https://github.com/fogproject/fogproject.git fogproject-stable

  1. Run the install script as root and follow all prompts accordingly
sudo -i
cd /path/to/fogproject-stable/bin
./installfog.sh
  1. You should now be ready to use FOG

Install latest development version

  1. Install and update your linux server distro

  2. Download the installation file(s)

  • All that is needed to start the installation is to download the files to perform the install. Choose one of the following methods you prefer;

    • git git clone https://github.com/fogproject/fogproject.git fogproject-dev-branch; cd fogproject-dev-branch; git checkout dev-branch (recommended if you want to keep up with current developments!

    • ZIP archive wget https://github.com/FOGProject/fogproject/archive/dev-branch.zip; unzip dev-branch.zip

    • TAR/GZ archive wget https://github.com/FOGProject/fogproject/archive/dev-branch.tar.gz; tar xzf dev-branch.tar.gz

  1. Run the install script as root and follow all prompts accordingly
sudo -i
cd /path/to/fogproject-dev-branch/bin
./installfog.sh
  1. You should now be ready to use FOG

All should now be installed and you can start configuring and registering systems. Please see: http://fogproject.org/wiki/index.php/Managing_FOG to assist you in setting up further.

There are many resources for assistance.

Development

Download the source with git and checkout the branch dev-branch for the latest code or a more specific feature branch you would like to help work on.

For further details please check out the information on contributing to the project.

fogproject's People

Contributors

0x41c avatar abulhol avatar blkeller avatar bristow avatar cavazquez avatar cspenceiv avatar csyperski avatar darksidemilk avatar fernandogietz avatar flagoda avatar fog-workflows[bot] avatar geotsot avatar gilou avatar github-actions[bot] avatar jackbennett avatar junkhacker avatar lucab85 avatar lukebarone avatar mastacontrola avatar medsouz avatar miszr avatar mjrider avatar parkerberb-nfv avatar rluzuriaga avatar rowlett avatar sebastian-roth avatar stevemoca avatar tomamplius avatar tristan3 avatar wayneworkman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fogproject's Issues

Ubuntu any version >= 12.04

msyql seems to have an issue with the inodb tables in linux.

After startup one can login to the FOG Interface just fine, but after a seemingly random amount of time, days or minutes or both, the mysql server seems to fail. This is not on every system, but enough of a problem to warrant a bug.

just saying

Just like to say keep up the good work 👍

I hope this project grows in popularity!

PHP 5 Compatibility

Group Management is broken as follows:
& preceding objects was used in PHP 4 to reference them directly instead of copying. As of PHP 5 this is the default behavior and any case where it is used causes issues. Please make corrections.

Printer Management

Printer management --> Add New (or edit) --> cannot select network printer, reverts to TCP/IP printer

[Enhancements] Automate IP change.

Hello FOG team,

I'm using FOG in a isolated network right now. And I'm performing some testing to before deploy it on my whole network. So, I have change the IP a couple of times.

I consider should be good have one script to do it.
Just like vicidial.

Steps towards to make it more automate.
Sound quite simple save the current IP in a variable, make the changes on the DB, and Update the dhcpd.conf and default.ipxe (I had twice headache to find out this) with bash.

Right now I save my changes on default.ipxe with the variable ${next-server}. and it works as rock!

Note: I'm not sure from where ${next-server} came, but should came from dhcpd.conf?

Hopefully this help. You're doing a great job with this.

Regards,
Kevin.

FOG Dev trunk fails install/upgrade when behind a proxy - PPA PUBKEY fail at install.

Hi folks,
I'm a long time FOG user and found an issue when using the SVN/GIT trunk release.
Installation on a system that had a raw (no proxy/firewall) connection is able to reach out during the installation and pull down all packages, without issue.
When testing the installation behind a corporate proxy, the first phase of "Adding needed repository" the process will fail out. I've also setup a clean Squid proxy as a test to see if there was anything mysterious about the 3rd party corporate proxy - same issue.
I've done a little tweeking and now have it making it through some of the installation, BUT as it goes through the list of packages, when it gets to the first package that needs to be pulled down from the internet via APT (on the Ubuntu server) it fails.
In this case, the first package that is not installed locally is php5-mcrypt.

I then try to install php5-mcrypt manually with the typical "apt-get install php5-mcrypt" and I get a warning that all of the dependencies can not be verified "WARNING: The following dependencies can not be authenticated!"

A quick "apt-get update" and I get an error that states:
W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4F4EA0AAES267A6C"

I've worked from a clean install and an upgrade type test and the trunks consistently fail in the same way.

What packages are in the ppa.launchpad.net that are not available in the public archives?

Is there a step missing in the install scripts to pull the public key?

For a while I though that there might be a non-APT function trying to reach out to the internet, but I setup APT, GIT and SVN to point to the proxy.
I've verified that APT, GIT and SVN all are able to reach through the proxy and in fact, I upgraded Ubuntu 12.04 to 14.04 LTS with all patches through the same proxy, without issue.

systems tested on:
Ubuntu 12.04 LTS, 14.04 LTS, 16.04 LTS
Virtual machines with 8 cores, 16GB Ram and 400GB of storage
Scripts all run as root via "sudo su"
VMware ESXi 6.0 and 5.5 in production networks
Proxmox 4.x in test lab

Regards,
Ubergeeken

libapache2-mod-php5 missing

I installed FOG on Ubuntu 14.04, but when I opened the fog/management page in the browser, there was a lot of PHP code showing up. So after googling I found I need to install libapache2-mod-php5, now it works fine.
Is this maybe missing in the installer?

Error \deprecated php code during install of latest v.1.3.x

Downloading kernels and inits...OK

  • Downloading New FOG Client file...PHP Warning: Module 'mcrypt' already loaded in Unknown on line 0
    Deprecated: Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0
    Deprecated: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0
    Failed

I suppose a minor fix, but I havent really had time to check out the framework enough to supply a fix -at the moment- , so if someone feels fast and handy! if not i will pop back with a solution later on.

Storage Node passwords not being corrected on install.

I've noticed at work that storage node passwords are not updating during normal or storage installation. To test, at home I've changed the password= field for both my main server and storage node to "Special", and updated both. Main first, and then the storage node after. The storage node's passwords were not updated in Storage Management.

Fog Master server with NAT (dev-branch)

Hello

My Fog master server is in my local network with a private IP address. I set Fog with the public IP address of my internet connection and does a NAT. I have a Fog storage node outside my local network with a public IP. Everything works fine except replication. I have this error message: "This is not the master node".
in fact comparing the server private IP address and public IP address of Fog in database does not match. of course! :-)
to correct the problem I changed the line 18 of the file "/var/www/fog/lib/service/fogservice.class.php" :

exec("/sbin/ip addr | awk -F'[ /]+' '/global/ {print $3}'",$IPs,$retVal);

replace by

exec("/usr/bin/dig dig +short myip.opendns.com @resolver1.opendns.com",$IPs,$retVal);

This gets the public IP address of my internet connection.

You can add an option to set this in future versions?

Thank you

Full registration bug

Ask for "another hostname" when entering the hostname. Works in quick registration then renaming it in the web interface.

Unable to set password in Storage managment

I was uploading my first image and after Partclone was done I have got an error message on the screen about bad FTP password when connecting to the client (non-resizeable whole disc).
I tried to change password at Storage management (I have only one node with storage & Fog web UI), but this password could not be changed.
The password could be changed at global FOG configuration - FOG Settings (FOG_TFTP_FTP_PASSWORD) and then Resizeable disc worked.
I made next try and it seems it does not work on Non-resizable-disc (wrong password again).
I recreated master node in Storage managment and the password could be set.
I wonder what both passwords are for...
I have latest trunk installed (2015-09-17).

latest git version seems to break PXE menu

Previously (47## git version) I had no issues with the latest 5217 the PXE menu never appears either my computers freeze or boot into windows. seems to stop at the features listing list word is PXEXT

Add IPXE Host Parameter

It would be nice to have a host parameter variable similar to how Arch is set that can be used in the Advanced menu. This can be implemented by adding the code below on line 20 of lib/fog/BootMenu.class.php

        if ( $Host && $Host->isValid() ) {
            $Send['booturl'][] = 'set hostname '.$Host->get('name');
        }

Limit fog user access

Currently the fog user is a normal user. Since it is only used for vstftpd access, we need to look at making it a system user and chroot it to the tftp directory. This will also keep fog from showing up on the user list when logging into a DM.

Virtualbox 5.0.14

I has used Virtualbox 5.0.14 and fog 1.20 to clone Windows Xp, but I has a trouble to register a host to server. I use the quick registeration, but when I boot the virtualbox xp pc by PXE, the client was crashed down at the window display /bzimage32... between 6% to 17%, I had tried many many many times ,but I can't figure it out. please tell my why!

Resizeable disk grows Win10 boot partition

I tried to use resizeable image with W10 & Linux.
It worked fine, but the very first partition for booting Windows 10 was grown from 500MB to over 700MB on a bigger disc.
The first partition has NTFS filesystem and I think it should not grow.
I have latest trunk installed (2015-09-17).

Wrong link to Capture Task

Fog Info:
Running Version 8405
SVN Revision: 5829

How to reproduce:

  1. Task Management
  2. List All Hosts
  3. Click the Capture icon of an host
    => The created task is "Quick Deploy" instead of "Capture"

gifrecord_2016-07-04_135741

Dashboard graph timeout

The nice graph on the dasboard stops receiving updates after password expires (page authentication expires). It works again after page reload (pass resend) but shows graph from the beginning since then.
I have latest trunk (2015-09-17).

minor - bandwidth graph

default is 2 minutes for polling, when selecting a new polling interval the graph updates multiple times in the normal 5sec polling interval. repeatedly changing the graph size results in polling several times a second.

website fix.

please add link to github project in main navigation on fog-project website.

FOG is unable to communicate with the database on Arch Linux

I'm getting the message:

Your database connection appears to be invalid. FOG is unable to communicate with the database. There are many reasons why this could be the case. Please check your credentials in /srv/http/fog/lib/fog/config.class.php. Also confirm that the database is indeed running. If credentials are correct, and the Database service is running, check to ensure your filesystem has enough space.

My file srv/http/fog/lib/fog/config.class.php contains:

    private static function db_settings() {
        define('DATABASE_TYPE','mysql'); // mysql or oracle
        define('DATABASE_HOST','127.0.0.1');
        define('DATABASE_NAME','fog');
        define('DATABASE_USERNAME','root');
        define('DATABASE_PASSWORD',"root");
    }

Also, the mysql service is running and I can access to the database successfully with the command:

mysql -u root -proot -h 127.0.0.1 -D fog  

What could be happening?

P.S: I'm using MariaDB, Server version: 10.1.14-MariaDB MariaDB Server

Installation on Arch linux creates invalid systemd service

Just did a clean install of fogproject to try out it's functionalities, but TFTP is not starting / working.
Here's the systemd service file that fog installs, /usr/lib/systemd/system/tftpd.service:

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

Systemd complains with:
Oct 26 23:18:25 deploy systemd[1]: [/usr/lib/systemd/system/tftpd.service:6] Missing '='.
Oct 26 23:18:25 deploy systemd[1]: [/usr/lib/systemd/system/tftpd.service:6] Assignment outside of section. Ignoring.
...
Oct 26 23:18:25 deploy systemd[1]: [/usr/lib/systemd/system/tftpd.service:18] Assignment outside of section. Ignoring.
Oct 26 23:18:25 deploy systemd[1]: tftpd.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.
Oct 26 23:18:25 deploy systemd[1]: [/usr/lib/systemd/system/tftpd.service:6] Missing '='.

Also, if xinetd is used, why would you need to start the tftp daemon anyway?
I think that would be xinetd's job then, since the xinetd tftp file will run the command on demand, right?

UDP-Cast not working for CentOS.

After installing FOG on CentOS 7, I wanted to try running a multicast session when I noticed that the multicast session was unable to start.

Following the multicasting guide on the wiki i get an error when running:

sudo udp-sender --file /opt/fog/.fogsettings --log /opt/fog/log/multicast.log --portbase 13123 --ttl 1 --nopointopoint

Error:

bind socket to $ip:13124 (Address already in use)

My first reaction was that it must be a program that uses that port for something, but after using netstat, lsof and fuser i was unable to find a program that was using that port.

So this problem seems to be related to that I am running CentOS on the server, because I have tested multicasting from a Ubuntu install earlier last week and was able to run it correctly.

After reading the UDP-Cast code I noticed that it was not using the SO_REUSEADDR option on the primary socket. After adding that option and recompiling it worked flawlessly.

Here is a patch of the changes I made to get UDP-Cast working under CentOS:

--- udpcast-20120424/console.c  2011-07-10 09:48:02.000000000 +0200
+++ udpcast-20150811/console.c  2015-08-11 19:44:30.431414882 +0200
@@ -3,6 +3,7 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
+#include <sys/select.h>

 #include "console.h"
 #include "util.h"
@@ -11,7 +12,6 @@
 #ifndef __MINGW32__

 #include <termios.h>
-#include <sys/select.h>

 struct console_t {
     int fd; /* Filedescriptor for console, or -1 if disabled */
--- udpcast-20120424/socklib.c  2011-07-10 09:40:37.000000000 +0200
+++ udpcast-20150811/socklib.c  2015-08-11 19:30:54.806886067 +0200
@@ -934,6 +934,13 @@ int makeSocket(addr_type_t addr_type,
       closesocket(s);
       return -1;
     }
+
+    int yes = 1;
+    if ( setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1 )
+    {
+       udpc_fatal(1, "setsockopt failed on socket with error (%s)\n", strerror(errno));
+    }
+
     ret = bind(s, (struct sockaddr *) &myaddr, sizeof(myaddr));
     if (ret < 0) {
        char buffer[16];

Add the option to restore an image without host registration.

Most of our work involves restoring to single machines so having the ability to restore without host registration will save us a lot of time.

The wiki shows that this is possible , but it is quote outdated so I am not sure if it still functional with the latest release.

https://wiki.fogproject.org/wiki/index.php/Bypass_Host_Registration

anyway I will probably try it in the next few days , but I was wondering if this something that might be added in the core functionality or fog ?

FOGCrypt

I may be misunderstanding something here, but there appears to be no documentation on the Passkey in FOGCrypt. Since there's a config file, and this certainly must be symmetric encryption, the Passkey must be meant to change so that the AD password can only be decrypted by the correct people. Doesn't that mean, though, that the Passkey would need to be changed in the FOG Client as well? I haven't found anywhere to set that.

Hangs on installation

new debian wheezy and latest git pull hangs on

Downloading New FOG Client file

I have traced it down to the mysql connect funciton.

Mysql class $this->connect() seems to hang and it doesn;t allow the script to continue

Ajax error in login page (dev-branch - build 6303)

error message with Firebug :

TypeError: $.tablesorter is undefined
$.tablesorter.addParser({
fog.js?ver=47 (ligne 303, col. 5)

TypeError: $(...).fogVariable is not a function
$('.fog-variable').fogVariable();

Add input statement durring install to get PROXY server information

SVN Rev 5661
Running Version 8064

As noted in another separate issue, installations behind a Proxy (which would be common) causes a bit of grief.
At the current trunk version there is a PPA that is being added (that fails for me due to proxy/key issues), APT-GET processes that require the use of a proxy to get out, and CURL processes for downloading the latest boot images bzImage and Hash checks.

I think it would be a good investment to as the installer/admin to optionally provide a proxy server IP, port and (optionally) ask for any credentials for an authenticated proxy server. This information could be fed into APT, CURL and any other internet grab functions.

As it stands at the moment I need to go into the scripts and comment out the (mysterious) PPA that fails, and all CURL statements for acquiring the images. I then pull down the images manually as it's easier then editing all of the CURL statements at the moment.

I would be glad to help with pulling the source and making a mockup of the changes to the installation scripts (with proxy) over the next week.

PHP white screen on Arch Linux (1.3.0-dev)

Hi, I'm getting a white death screen when installing the Development (1.3.0-dev) version on Arch Linux.

I've enabled the PHP error reporting and I get:
Fatal error: Uncaught Error: Call to undefined function _() in /srv/http/fog/commons/text.php:13 Stack trace: #0 /srv/http/fog/commons/base.inc.php(8): require() #1 /srv/http/fog/management/index.php(5): require('/srv/http/fog/c...') #2 {main} thrown in /srv/http/fog/commons/text.php on line 13

But I don't get to understand what's wrong with the file text.php.

MBR too big ... bug in backup mbr procedure (all versions i suppose)

Hi,

Reporting that MBR is normaly 512 bytes long but the MBR backup procedure save all before the first partition, so it results that if first partition begin at 32kb, d1.mbr is 32kb, if it begins a 50mb, d1.mbr will be 50mb, etc... it results problems restoring partitions. I'm agree that in normal conditions, partition does not have to start so far but in reality, it's sometime different...

Feature request - reboot with maximum time

Hi,

Thanks for a great product, there is one thing that would be great to have - the option to delay the reboot of windows but with a maximum time limit. The force reboot is a bit brutal.

Thanks,
M

problème with new host and active directory

Hello

I found problème with active directory and new host (no with edit host)

When I add a new pc, I do not have a choice of "OR". And the field is replaced by "$ {ad_ou}". (see picture). Thus, the auto complete does not.

capture du 2015-03-26 10 47 59

I don't have this problem with the groups, the auto complete feature works.

Sorry for my bad english (i'm french)

Simon

Image Change Log

We have been using a heavily modified fog version 0.32 and plan to move 1.3 as soon as soon as a stable release comes out. One thing I find myself wanting is an image change log within the fog UI. This would help us keep track of our image changes that take place (for us quarterly) and also inform our end users of "what's new/different". It would also be nice from the registration screen for the end user to print the change log to screen OR have a front end (non authenticated) section of the fog site show these change log for each image.

Just a suggestion if it's not already in there.

Great project guys, love FOG!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.