Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this


  1. 1. Customizing FreeNAS 8.3 Using the Plugins JailDru LavigneDocumentation Lead, iXsystemsSCALE, February 23, 2013
  2. 2. OutlineBrief Introduction to FreeNAS 8.3Introduction to Jails, PBIs, and PluginsInstalling the Plugins JailInstalling and Configuring PBIsInstalling non-PBI SoftwareCreating Custom PBIs
  3. 3. Intro to FreeNAS 8.3Open source NAS (network attached storage)based on an embedded version of FreeBSD(nanoBSD) and released under 2-clause BSDlicenseModular design: core NAS features can beextended using a plugins architectureDesigned to be installed on flash device andadministered from a web browser
  4. 4. Core NAS Features IncludeAbility to create AFP, CIFS, NFS sharesSupport for iSCSI, SSH, FTP/SFTP, TFTPActive Directory and OpenLDAP integrationAutomated, secure replication via rsync/sshAutomated ZFS snapshots and scrubsLink aggregation and failover
  5. 5. Limitations of Core NASDue to its embedded nature, there is no room toinstall additional softwareNAS does not include built-in UPnP, iTunes, orBitTorrent supportUsers have all kinds of edge use cases for theirNASIt is possible, but inconvenient, to compile acustom version of FreeNAS
  6. 6. Plugins ArchitectureProvides the administrator the flexibility to installadditional software from the FreeNAS GUI tomeet the requirements of the NASComprised of three components:- FreeBSD Jail- PBI (Push Button Installer) files- Plugins
  7. 7. What is a Jail?A FreeBSD feature for providing light-weight,operating system-level virtualizationA jail has its own hostname, IP address, users,and is separated from the host operating systemFreeNAS implementation includes vimage whichgives the jail its own networking stack and IPbroadcasting
  8. 8. What is a PBI/Plugin?Originally created by the PC-BSD project (adesktop version of FreeBSD)Provides a graphical installation wrapper forsoftware ported to FreeBSDFreeNAS implementation extends thisfunctionality by incorporating the applicationsconfiguration file into the FreeNAS graphicaladministrative interface—the result is known as aPlugin
  9. 9. Installing the Plugins JailBefore any plugins can be installed, the PluginsJail must be installed and startedRecommended that Plugins Jail is installed into itsown ZFS dataset and that a second dataset isused to store the installed softwareThe Plugins Jail and supported Plugins can bedownloaded from plugins folder for architecture
  10. 10. Installing the Plugins Jail
  11. 11. Starting the Plugins Jail
  12. 12. Installing a PBIOnce the Plugins Jail is installed and the Pluginsservice started, you can install FreeNAS PBIs(Plugins)As each Plugin is installed, an icon will be addedto the FreeNAS menu (used to configure theapplication) and its service will be added to thePlugins tab of the Control Services menu so it canbe started
  13. 13. Installing a PBI
  14. 14. Configuring a PBI
  15. 15. Installing Non-PBI SoftwareIf a PBI is not available, you can still installpackages or compile ports within the Plugins JailSoftware installed this way will not be integratedinto the administrative interface but can beconfigured and started from the command lineUse to search for software thathas been ported to FreeBSD
  16. 16. Installing PackagesA FreeBSD package is a pre-compiled binary thatincludes the dependencies required by theapplicationInstalled using the pkg_add -r will tell you the exact command tousepkg_info -Lx will tell you what gets installedTypically, conf files are in /usr/local/etc/ andstartup scripts are in /usr/local/etc/rc.d/
  17. 17. Compiling PortsPackages are recommended unless a package isnot available or you need to change a compileoption as compiling takes time and will list the available compileoptionsUse the make install command to compileOnce compiled and installed, the software can beconfigured like any other package
  18. 18. Creating Custom PBIsFreeNAS PBIs are still new (only available sinceJuly 2012)3 official PBIs: Firefly, MiniDLNA, TransmissionList of PBI requests: of user-created PBIs:
  19. 19. Creating Custom PBIsA PBI is created from a PBI module: a set of filesand directories containing the installationinstructions for an applicationThese files are trivial to edit, except for the controlfile which contains the instructions for integratingthe installed PBI into the FreeNAS GUIThe control file requires development experiencewith a programming language supported by theFastCGI API (typically Python or PHP)
  20. 20. Creating Custom PBIsIn theory, the Plugins Jail has all of the toolsneeded to create a custom PBI; this needs toimprove in practiceThe documentation for creating PBIs is mostlycomplete but needs programmatic examples forthe control fileFor now, use packages, help test upcoming PBIs,and interact with other PBI creators on the forumsor IRC
  21. 21. ResourcesWebsite: http://www.freenas.orgForums: http://forums.freenas.orgBug tracker: http://support.freenas.orgDocumentation: #freenas on Freenode
  22. 22. Questions? Contact: URL to Slides: