Welcome to the FreeNAC installation Guide. There are several methods to install FreeNAC, this section explains what they are and how to get started.
A list of hardware requirements is also provided, to help with server dimensioning/ planning.
FreeNAC is available as a Virtual Machine, a 'tarball'', from Subversion (SVN) and a Ubuntu/Debian package. There are also 'stable' and development versions.
This page explains each of these options below. If you are in a hurry and don't want to read the whole page, we recommend:
Next step:
FreeNAC runs on Linux, this installation guides explains how to get it up and running on Linux. It could also run on UNIX systems, for example earlier versions ran on Solaris, but this Installation Guide does not cover these.
FreeNAC does not run under windows. In theory it is possible since PHP and Apache also run on Windows, but for example "vmpsd" would have to be ported.
FreeNAC is quite complex, and needs a machine with GNU/Linux and many OpenSource source tools installed.
To get you started quickly with FreeNAC, we have built a Virtual Appliance (also called a Virtual Machine, VM) with Linux, the modules needed, and FreeNAC installed in a 'demo mode'.
The VM is ideal if you just want to test FreeNAC, or feel daunted by the length installation documentation for FreeNAC.
On the other hand, the VM is only updated every few months, and its slow to download.
A tarball is a slang name for a compressed archive (see also wikipedia) containing source code, that is typically compiled and can be installed on many platforms.
Analysis: Tarballs require more knowledge, are not subject to version control (its difficult to see what you have changed, or to update to new bug fix releases) and are not integrated into the Linux package management. No internet access is required on the target server either. But for the same reasons its an ideal format for advanced system admisistrators.
Tarballs are also easy to generate, so the FreeNAC team often announce new releases in this format first.
The FreeNAC team use SVN (see also wikipedia) to manage the source code. Work on the source code usually takes place in parallel in two copies:
Analysis: Subversion can be difficult to learn at first, it is not integrated into the Linux packagement and required internet access (direct or via a proxy). The advantages are significant though: it allows the source code to be pulled directly from the FreeNAC respository and allows easy, regular updates to the latest version of a branch (via the svn update command).
It is recommended that you use the latest 'stable' release, unless you are involved in testing or development.
Much production software is usually provided as a package, that is easy to install or deinstall and pre-destined for an exact operating system. Tthe operating system 'knows' what packages have been installed, on what other packages it depends, and how to remove those packages.
Packages are a very good way to distribute software since installation time is quicker (easier for the user), and dependancies between packages is taken care of. The difficulties lie in the generation of packages (the many different vriants of Linux/UNIX methods, the dependancies between versions), and the necessity to make appropriate installation/deinstallation scripts.
For resource reasons, the FreeNAC team has not generated packages until recently (Oct'07). The initial focus has been on creating Ubuntu (debian compatible) packages, since this is the preferred platform used by many of the FreeNAC core team.
Packages take time to generate and test, and so will often be behind Subversion and tarball software. However its a good choice for Ubtunu system administrators running production servers.
We welcome community contributions for other distrubutions (RedHhat or Suse rpm, gentoo sources etc. :-)
To run FreeNAC, you'll need
Example: a site running with ~2'000 active end-devices. The server is rarely loaded (CPU or I/O). The slowest part is the Windows GUI with its complex SQL queries - not the VMPS back-end.
Its recommended to have at least 2, and perhaps 3 servers. If you are used to Virtual Machines, do the Master as a VM, and one or more replicas as 'real' machines. Point the switches at the replicas, and use the master for serving GUI requests, scanning and polling switches/routers and processing syslogs.
By doing the master as a VM, snapshots can be used before system upgrades, and roll backs are easier.