Installing FiFo
The steps involved in getting FiFo up and running
Make life easier!
Starting with 0.8.0 Project FiFo releases pre-made datasets. See "Installing via FiFo AIO Dataset" for instructions. This is the quickest and easiest way to get FiFo running.
Please see the Requirements section for details on the requirements.
1: Dataset Import
From the GZ (Global Zone) import the base dataset which we will use as the foundation for our FiFo Zone. Once imported we then confirm it is installed.
Please consult Zone requirements for details.
2: Zone Creation
JSON Payload file used for zone creation
{
"autoboot": true,
"brand": "joyent",
"image_uuid": "<zone uuid>",
"delegate_dataset": true,
"indestructible_delegated": true,
"max_physical_memory": 3072,
"cpu_cap": 100,
"alias": "fifo",
"quota": "40",
"resolvers": [
"8.8.8.8",
"8.8.4.4"
],
"nics": [
{
"interface": "net0",
"nic_tag": "admin",
"ip": "10.1.1.240",
"gateway": "10.1.1.1",
"netmask": "255.255.255.0"
}
]
}
Next we create our FiFo JSON payload file and save it in case we need to re-install at a later stage.
cd /opt
vi setupfifo.json
vmadm create -f setupfifo.json
3: FiFo Packages Install
We now zlogin to our newly created FiFo Zone and proceed with adding the FiFo package repository. Then we install the required FiFo packages.
zlogin <fifo-vm-uuid>
First we do need to configure the delegate dataset to be mounted to /data
we can do this from within the zone with the following command:
zfs set mountpoint=/data zones/$(zonename)/data
Starting with 14.4.0 Datasets, Joyent introduced signed packages. Starting with Version 0.7.0 - FiFo has now also started signing it's packages. To properly install FiFo packages, the FiFo public key is required and can be installed with the following command.
cd /data
curl -O https://project-fifo.net/fifo.gpg
gpg --primary-keyring /opt/local/etc/gnupg/pkgsrc.gpg --import < fifo.gpg
gpg --keyring /opt/local/etc/gnupg/pkgsrc.gpg --fingerprint
The key id is BB975564
and the fingerprint CE62 C662 67D5 9129 B291 62A0 ADDF 278A BB97 5564
should be returned respectively.
Now we can install the packages.
echo "http://release.project-fifo.net/pkg/17.2.0/rel" >> /opt/local/etc/pkgin/repositories.conf
pkgin -fy up
pkgin install fifo-snarl fifo-sniffle fifo-howl fifo-cerberus
4: Configuring FiFo Services
If this is a fresh installation the installer will create default configuration files for each service. When updating the configuration files do not get overwritten, but new *.conf.example
files will be added.
The generated files contain some defaults. However is it advised to take some time to configure Sniffle , Snarl and Howl.
Datasets origin
By default, the FiFo UI Cerberus, will list and download available datasets (VM images) from datasets.at. If you have a local mirror, you can point to it changing the file /opt/local/fifo-cerberus/config/config.js
Service Startup
svcadm enable epmd
svcadm enable snarl
svcadm enable sniffle
svcadm enable howl
svcs epmd snarl sniffle howl
Initial administrative tasks
The last step is to create an admin user and organisation, this can be done with one simple command:
# snarl-admin init <realm> <org> <role> <user> <pass>
snarl-admin init default MyOrg Users admin admin
5: LeoFS initialization
LeoFS Storage should be working before proceeding
A working and fully functional two Zone LeoFS setup MUST be up and running before you proceed with the below step.
If you have not previously setup your LeoFS Storage Zones, you should pause now at this point and proceed with the LeoFS Install Guide before continuing with the last step below. The guide can be found here:
Once LeoFS is configured and up and running, the init-leofs
command can be used from sniffle-admin
to set up the required, users, buckets and endpoints. You can use the xip.io service or your own domain name, if you setup your DNS with wildcard:
sniffle-admin init-leofs 10.1.1.21.xip.io
That's it. You can now log out of your FiFo Zone and back into the Global Zone and continue with installing the Chunter service.
6: Configure FiFo
Now that you have FiFo installed and chunter running, you can now start managing and create virtual machines.
We got to add some dataset servers:
# Official and community images
sniffle-admin datasets servers add https://datasets.at/images
# For FiFo custom images
sniffle-admin datasets servers add https://datasets.project-fifo.net/images
# for free bsd images
sniffle-admin datasets servers add https://bsd.project-fifo.net/images
You can login to the web console and use the Configuration menu to setup the following:
- Create an IP Range
- Associate it with a Network
- Create some Packages
- Import some Datasets
- Setup an SSH key to your user be able to login to the VMs
At the point you should be able to create some VMs
7: Historical Data with Tachyon & DalmatinerDB
The ability to monitor your cloud data in real-time (cerberus metric graphs) or over time (historical data) is of fundamental importance to most cloud operators.
FiFo has some ultra-performant, purpose built services that have been designed specifically for this task. Excelling at both efficiently storing huge volumes of data as well as performing extremely fast queries that can scale to handle very large cloud installations.
Although an optional service, we do encourage this to be setup for all FiFo installations to truly complete your cloud offering.
First you need to setup the metric storage database called "DalmatinerDB"
Then the "tachyon-meter" service is installed in each hypervisor's Global Zone and the aggregation service called "Tachyon" is installed within its own separate Zone.
Note: The DalmatinerDB and the Tachyon aggregation service can be installed together on the same zone.
A detailed setup is covered in the comprehensive setup guide below:
Updated about 7 years ago