SlideShare a Scribd company logo
Customizing FreeNAS 8.3
   Using the Plugins Jail

Dru Lavigne
Documentation Lead, iXsystems
SCALE, February 23, 2013
Outline

Brief Introduction to FreeNAS 8.3

Introduction to Jails, PBIs, and Plugins

Installing the Plugins Jail

Installing and Configuring PBIs

Installing non-PBI Software

Creating Custom PBIs
Intro to FreeNAS 8.3

Open source NAS (network attached storage)
based on an embedded version of FreeBSD
(nanoBSD) and released under 2-clause BSD
license

Modular design: core NAS features can be
extended using a plugins architecture

Designed to be installed on flash device and
administered from a web browser
Core NAS Features Include
Ability to create AFP, CIFS, NFS shares

Support for iSCSI, SSH, FTP/SFTP, TFTP

Active Directory and OpenLDAP integration

Automated, secure replication via rsync/ssh

Automated ZFS snapshots and scrubs

Link aggregation and failover
Limitations of Core NAS
Due to its embedded nature, there is no room to
install additional software

NAS does not include built-in UPnP, iTunes, or
BitTorrent support

Users have all kinds of edge use cases for their
NAS

It is possible, but inconvenient, to compile a
custom version of FreeNAS
Plugins Architecture
Provides the administrator the flexibility to install
additional software from the FreeNAS GUI to
meet the requirements of the NAS

Comprised of three components:

- FreeBSD Jail

- PBI (Push Button Installer) files

- Plugins
What is a Jail?

A FreeBSD feature for providing light-weight,
operating system-level virtualization

A jail has its own hostname, IP address, users,
and is separated from the host operating system

FreeNAS implementation includes vimage which
gives the jail its own networking stack and IP
broadcasting
What is a PBI/Plugin?
Originally created by the PC-BSD project (a
desktop version of FreeBSD)

Provides a graphical installation wrapper for
software ported to FreeBSD

FreeNAS implementation extends this
functionality by incorporating the application's
configuration file into the FreeNAS graphical
administrative interface—the result is known as a
Plugin
Installing the Plugins Jail
Before any plugins can be installed, the Plugins
Jail must be installed and started

Recommended that Plugins Jail is installed into its
own ZFS dataset and that a second dataset is
used to store the installed software

The Plugins Jail and supported Plugins can be
downloaded from plugins folder for architecture
http://sourceforge.net/projects/freenas/files/
FreeNAS-8.3.0/
Installing the Plugins Jail
Starting the Plugins Jail
Installing a PBI


Once the Plugins Jail is installed and the Plugins
service started, you can install FreeNAS PBIs
(Plugins)

As each Plugin is installed, an icon will be added
to the FreeNAS menu (used to configure the
application) and its service will be added to the
Plugins tab of the Control Services menu so it can
be started
Installing a PBI
Configuring a PBI
Installing Non-PBI Software

If a PBI is not available, you can still install
packages or compile ports within the Plugins Jail

Software installed this way will not be integrated
into the administrative interface but can be
configured and started from the command line

Use FreshPorts.org to search for software that
has been ported to FreeBSD
Installing Packages
A FreeBSD package is a pre-compiled binary that
includes the dependencies required by the
application

Installed using the pkg_add -r command:
FreshPorts.org will tell you the exact command to
use

pkg_info -Lx will tell you what gets installed

Typically, conf files are in /usr/local/etc/ and
startup scripts are in /usr/local/etc/rc.d/
Compiling Ports
Packages are recommended unless a package is
not available or you need to change a compile
option as compiling takes time and system
resources

FreshPorts.org will list the available compile
options

Use the make install command to compile

Once compiled and installed, the software can be
configured like any other package
Creating Custom PBIs
FreeNAS PBIs are still new (only available since
July 2012)

3 official PBIs: Firefly, MiniDLNA, Transmission

List of PBI requests:
http://doc.freenas.org/index.php/PBI_Requests

List of user-created PBIs:
http://forums.freenas.org/showthread.php?8470-
INDEX-Available-Plugins
Creating Custom PBIs

A PBI is created from a PBI module: a set of files
and directories containing the installation
instructions for an application

These files are trivial to edit, except for the control
file which contains the instructions for integrating
the installed PBI into the FreeNAS GUI

The control file requires development experience
with a programming language supported by the
FastCGI API (typically Python or PHP)
Creating Custom PBIs

In theory, the Plugins Jail has all of the tools
needed to create a custom PBI; this needs to
improve in practice

The documentation for creating PBIs is mostly
complete but needs programmatic examples for
the control file

For now, use packages, help test upcoming PBIs,
and interact with other PBI creators on the forums
or IRC
Resources

Website:     http://www.freenas.org

Forums:      http://forums.freenas.org

Bug tracker: http://support.freenas.org

Documentation: http://doc.freenas.org/Plugins

IRC: #freenas on Freenode
Questions?


              Contact:

          dru@freebsd.org

           URL to Slides:

http://slideshare.net/dlavigne/scale13

More Related Content

PDF
Nelf2012
PDF
Fosscon2013
PDF
Introduction to FreeNAS development by John Hixson
PDF
Nycbsdcon14
PDF
Nelf2013
PDF
SELF 2014: PBI v10: Application Management Made Easy
PDF
Lavigne bsdmag may13
PDF
Sweden11
Nelf2012
Fosscon2013
Introduction to FreeNAS development by John Hixson
Nycbsdcon14
Nelf2013
SELF 2014: PBI v10: Application Management Made Easy
Lavigne bsdmag may13
Sweden11

What's hot (20)

PDF
Tlf2012
PDF
Fsoss12
PDF
PDF
Olf2012
PDF
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
PDF
Tlf2013
PDF
Asiabsdcon15
PDF
Olf2013
PDF
Posscon2013
PDF
Ilf2012
PDF
Lavigne bsdmag-jan13
PDF
Dru lavigne servers-tutorial
PDF
Oclug 2010
DOCX
ESXi PXE Server-Instructions/Documentation
PDF
Self2013
PDF
Fsoss2011
PDF
SELF 2010: BSD For Linux Users
PDF
Lavigne bsdmag sept12
PPT
BayLISA - FreeNAS 10 by Jordan Hubbard
PDF
Freenas Tutorial EuroBSDCon 2012
Tlf2012
Fsoss12
Olf2012
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
Tlf2013
Asiabsdcon15
Olf2013
Posscon2013
Ilf2012
Lavigne bsdmag-jan13
Dru lavigne servers-tutorial
Oclug 2010
ESXi PXE Server-Instructions/Documentation
Self2013
Fsoss2011
SELF 2010: BSD For Linux Users
Lavigne bsdmag sept12
BayLISA - FreeNAS 10 by Jordan Hubbard
Freenas Tutorial EuroBSDCon 2012
Ad

Similar to Scale13 (20)

PDF
Lavigne bsdmag apr13
PDF
Lavigne bsdmag june11
PDF
Ilf2013
PDF
Scale9x sun
PDF
Flourish11
PDF
2013 Indiana LinuxFest - Getting Started With PC-BSD
PDF
Ilf2011
PDF
2013 Ohio LinuxFest - Ports, Packages, and PBI's
PDF
PBI v10: Application Management Made Easy by Ken Moore
PDF
Lfnw15
DOCX
Documentation free nas
PDF
Documentation freenas
PDF
Scale2015
PPTX
The True Story of FreeNAS
PPT
FreeBSD - LinuxExpo
PDF
Asiabsdcon14 lavigne
PDF
Lavigne bsdmag-jan2012
PDF
Olf2014
PDF
Pc bsd-intro
PPT
Msu free bsd
Lavigne bsdmag apr13
Lavigne bsdmag june11
Ilf2013
Scale9x sun
Flourish11
2013 Indiana LinuxFest - Getting Started With PC-BSD
Ilf2011
2013 Ohio LinuxFest - Ports, Packages, and PBI's
PBI v10: Application Management Made Easy by Ken Moore
Lfnw15
Documentation free nas
Documentation freenas
Scale2015
The True Story of FreeNAS
FreeBSD - LinuxExpo
Asiabsdcon14 lavigne
Lavigne bsdmag-jan2012
Olf2014
Pc bsd-intro
Msu free bsd
Ad

More from Dru Lavigne (19)

PDF
Olf2018
PDF
Olf2017
PDF
FreeBSD System Administration Using SysAdm
PDF
Asiabsdcon2017
PDF
Olf2016
PDF
Tlf2016
PDF
Knoxbug2016
PDF
Lfnw2016
PDF
Flourish16
PDF
Scale2016
PDF
Fossetcon15
PDF
PDF
Fossetcon14
PDF
Tlf2014
PDF
Asiabsdcon14
PDF
Scale2014
PDF
Dru lavigne oss-sysadmin
PDF
Dru lavigne oss-desktop_apps
PDF
Bsd ss
Olf2018
Olf2017
FreeBSD System Administration Using SysAdm
Asiabsdcon2017
Olf2016
Tlf2016
Knoxbug2016
Lfnw2016
Flourish16
Scale2016
Fossetcon15
Fossetcon14
Tlf2014
Asiabsdcon14
Scale2014
Dru lavigne oss-sysadmin
Dru lavigne oss-desktop_apps
Bsd ss

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Spectroscopy.pptx food analysis technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
Teaching material agriculture food technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
SOPHOS-XG Firewall Administrator PPT.pptx
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectroscopy.pptx food analysis technology
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Teaching material agriculture food technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
gpt5_lecture_notes_comprehensive_20250812015547.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Scale13

  • 1. Customizing FreeNAS 8.3 Using the Plugins Jail Dru Lavigne Documentation Lead, iXsystems SCALE, February 23, 2013
  • 2. Outline Brief Introduction to FreeNAS 8.3 Introduction to Jails, PBIs, and Plugins Installing the Plugins Jail Installing and Configuring PBIs Installing non-PBI Software Creating Custom PBIs
  • 3. Intro to FreeNAS 8.3 Open source NAS (network attached storage) based on an embedded version of FreeBSD (nanoBSD) and released under 2-clause BSD license Modular design: core NAS features can be extended using a plugins architecture Designed to be installed on flash device and administered from a web browser
  • 4. Core NAS Features Include Ability to create AFP, CIFS, NFS shares Support for iSCSI, SSH, FTP/SFTP, TFTP Active Directory and OpenLDAP integration Automated, secure replication via rsync/ssh Automated ZFS snapshots and scrubs Link aggregation and failover
  • 5. Limitations of Core NAS Due to its embedded nature, there is no room to install additional software NAS does not include built-in UPnP, iTunes, or BitTorrent support Users have all kinds of edge use cases for their NAS It is possible, but inconvenient, to compile a custom version of FreeNAS
  • 6. Plugins Architecture Provides the administrator the flexibility to install additional software from the FreeNAS GUI to meet the requirements of the NAS Comprised of three components: - FreeBSD Jail - PBI (Push Button Installer) files - Plugins
  • 7. What is a Jail? A FreeBSD feature for providing light-weight, operating system-level virtualization A jail has its own hostname, IP address, users, and is separated from the host operating system FreeNAS implementation includes vimage which gives the jail its own networking stack and IP broadcasting
  • 8. What is a PBI/Plugin? Originally created by the PC-BSD project (a desktop version of FreeBSD) Provides a graphical installation wrapper for software ported to FreeBSD FreeNAS implementation extends this functionality by incorporating the application's configuration file into the FreeNAS graphical administrative interface—the result is known as a Plugin
  • 9. Installing the Plugins Jail Before any plugins can be installed, the Plugins Jail must be installed and started Recommended that Plugins Jail is installed into its own ZFS dataset and that a second dataset is used to store the installed software The Plugins Jail and supported Plugins can be downloaded from plugins folder for architecture http://sourceforge.net/projects/freenas/files/ FreeNAS-8.3.0/
  • 12. Installing a PBI Once the Plugins Jail is installed and the Plugins service started, you can install FreeNAS PBIs (Plugins) As each Plugin is installed, an icon will be added to the FreeNAS menu (used to configure the application) and its service will be added to the Plugins tab of the Control Services menu so it can be started
  • 15. Installing Non-PBI Software If a PBI is not available, you can still install packages or compile ports within the Plugins Jail Software installed this way will not be integrated into the administrative interface but can be configured and started from the command line Use FreshPorts.org to search for software that has been ported to FreeBSD
  • 16. Installing Packages A FreeBSD package is a pre-compiled binary that includes the dependencies required by the application Installed using the pkg_add -r command: FreshPorts.org will tell you the exact command to use pkg_info -Lx will tell you what gets installed Typically, conf files are in /usr/local/etc/ and startup scripts are in /usr/local/etc/rc.d/
  • 17. Compiling Ports Packages are recommended unless a package is not available or you need to change a compile option as compiling takes time and system resources FreshPorts.org will list the available compile options Use the make install command to compile Once compiled and installed, the software can be configured like any other package
  • 18. Creating Custom PBIs FreeNAS PBIs are still new (only available since July 2012) 3 official PBIs: Firefly, MiniDLNA, Transmission List of PBI requests: http://doc.freenas.org/index.php/PBI_Requests List of user-created PBIs: http://forums.freenas.org/showthread.php?8470- INDEX-Available-Plugins
  • 19. Creating Custom PBIs A PBI is created from a PBI module: a set of files and directories containing the installation instructions for an application These files are trivial to edit, except for the control file which contains the instructions for integrating the installed PBI into the FreeNAS GUI The control file requires development experience with a programming language supported by the FastCGI API (typically Python or PHP)
  • 20. Creating Custom PBIs In theory, the Plugins Jail has all of the tools needed to create a custom PBI; this needs to improve in practice The documentation for creating PBIs is mostly complete but needs programmatic examples for the control file For now, use packages, help test upcoming PBIs, and interact with other PBI creators on the forums or IRC
  • 21. Resources Website: http://www.freenas.org Forums: http://forums.freenas.org Bug tracker: http://support.freenas.org Documentation: http://doc.freenas.org/Plugins IRC: #freenas on Freenode
  • 22. Questions? Contact: dru@freebsd.org URL to Slides: http://slideshare.net/dlavigne/scale13