Published on

Presentation for Ohio LinuxFest 2012.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Customizing FreeNAS 8.3 Using Plugins JailDru LavigneDirector of Community Development, iXsystemsOLF, September 29, 2012
  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 plugin 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. Core NAS Does Not IncludeDue to its embedded nature, there is no room toinstall additional softwareNAS does not include UPnP, iTunes, or BitTorrentsupportUsers have all kinds of edge use cases for theirNAS
  6. 6. What is a Jail?A FreeBSD feature for providing light-weight,operating system-level virtualizationA jail has its own hostname, IP address, usersand is separated from the host operating systemFreeNAS implementation includes vimage whichgives the jail its own networking stack and IPbroadcasting
  7. 7. 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
  8. 8. Installing the Plugins JailRecommended that Plugins Jail is installed into itsown ZFS dataset and that a second dataset isused to store the installed softwareDownload Plugins Jail and supported Pluginsfrom plugins folder for architecturehttp://sourceforge.net/projects/freenas/files/FreeNAS-8.3.0/
  9. 9. Installing the Plugins Jail
  10. 10. 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 theControl Services menu so it can be started
  11. 11. Installing a PBI
  12. 12. Configuring a PBI
  13. 13. 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 FreshPorts.org to search for software thathas been ported to FreeBSD
  14. 14. Installing PackagesA FreeBSD package is a pre-compiled binary thatincludes the dependencies required by theapplicationInstalled using the pkg_add -r command:FreshPorts.org 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/
  15. 15. Compiling PortsPackages are recommended unless a package isnot available or you need to change a compileoption as compiling takes time and systemresourcesFreshPorts.org will list the available compileoptionsUse the make install command to compileOnce compiled and installed, the software can beconfigured like any other package
  16. 16. Creating Custom PBIsFreeNAS PBIs are still new (only available sinceJuly 2012)3 official PBIs: Firefly, MiniDLNA, TransmissionList of PBI requests:http://doc.freenas.org/index.php/PBI_RequestsSearch forums.freenas.org for PBIs currentlybeing worked on and tested
  17. 17. 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 experienceof a programming language supported by theFastCGI API (typically Python or PHP)
  18. 18. 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
  19. 19. ResourcesWebsite: http://www.freenas.orgForums: http://forums.freenas.orgBug tracker: http://support.freenas.orgDocumentation: http://doc.freenas.org/PluginsIRC: #freenas on Freenode
  20. 20. Questions? Contact: dru@freebsd.org URL to Slides:http://slideshare.net/dlavigne/olf2012