Create appliance repository

From berofix - professional SIP gateway
Jump to: navigation, search

introduction

The new beroNet appliance features a Hypervisor which allows it users to download ready installed Virtual Machines and ISO Installation Media from the beroNet Market. The beroNet Market features a list of trusted repositories.These repositories are hosted by beroNet Technology Partners.

Each Appliance in the field donwloads the list of beroNet apps and the list of trusted repositories from the beroNet Webserver. When the User clicks on one of the trusted repositories, the appliances downloads the market definition file from this webspace and presents the Apps and ISO of this repository.

This Wiki Page helps beroNet Technology Partners in building a repository on their webserver.

Minimal Setup

An appliance repository needs to be accessible via http or ftp. The repository should have a folder containing the items:

* app.lst  -  file which describes the repository and contains the list of VM apps and iso files
* apps/    -  folder containing the actual VM apps
* isos/    -  folder containing the actual iso files


Apps and Isos

An App is a already installed Virtual Machine Container. To create an app, a beroNet Appliance with the beroNet Hypervisor can be used. Simply create a VM there, install the software needed, prepare the VM for the initial start at the customer site. Finaly backup the VM to a USB stick/ hard disk. You can use the backup file as the "App" in the app repository.

An ISO is a virtual CD/DVD Image. It can be inserted into a virtual machine on the beroNet appliance. The virtual machine can boot from this ISO and install the software that is shipped in the ISO. Many beroNet Technology partners do provide ISOs on their website already. For them it is quite easy to create their own repository.

market definition file

the app.lst file is a json encoded file and should look like:

app.lst definition:

{"repository":"$NAME OF REPOSITORY","url":"$URL OF REPOSITORY","provider":"$NAME OF REPOSITORY PROVIDER","support":"$CONTACT EMAIL$","web":"$PROVIDERS WEBSITE$",
 "apps":{
         "$APP-NAME-1$":{"description":"$APP-1 DESCRIPTION$","version":"$VERSION-1$","size":"$FILE SIZE IN G$","disk":"$DISK SIZE IN G$","ram":"$MEM SIZE IN G$","cpu":"$AMOUNT OF CPU$","compression":"{gz|bz2|xz}"},
         "$APP-NAME-2$":{"description":"$APP-2 DESCRIPTION$","version":"$VERSION-2$","size":"$FILE SIZE IN G$","disk":"$DISK SIZE IN G$","ram":"$MEM SIZE IN G$","cpu":"$AMOUNT OF CPU$"}
  },
 "isos":{
          "$ISO-FILE-1$":{"description":"$DESCRIPTION$","version":"$VERSOIN$","size":"$FILESIZE IN MB$"},
          "$ISO-FILE-2$":{"description":"$DESCRIPTION$","version":"$VERSOIN$","size":"$FILESIZE IN MB$"}
 }
}


The first entry "repository" contains parameters describing the provider of the trusted repository. The most important parameter is the "url" which defines where the apps and iso files are located. The apps section contains a list of apps including meta information. The compression parameter defines the type of compression which is used by app installation file. The filename of the appn needs to end with that compression type in linux style, like:

"compression":"gz"   - example app: "test.tar.gz"
"compression":"bz2"   - example app: "test.tar.bz2"
"compression":"xz"   - example app: "test.tar.xz"
"compression":NULL or omitted   - example app: "test.tar"

The iso section contains a list of iso installation files including meta information.

Example

sample app.lst file

{"repository":"beroNet","url":"ftp://appliance.beronet.com/appliance_apps","provider":"beroNet GmbH","support":"support@beronet.com","web":"http://www.beronet.com", 
   "apps":{
    "test":{"description":"test app","version":"1.0","size":"2G","disk":"20G","ram":"4G","cpu":"2","compression":"bz2"}
    },
   "isos":{
   "mikrotik-6.31.iso":{"description":"Firewall/Router","version":"6.31","size":"26 MB"}
}
}

corresponding folders and files:

apps/
apps/test.tar
isos/
isos/mikrotik-6.31.iso


In the ftp URL:

ftp://appliance.beronet.com/appliance_apps

you can see how the beroNet market is built and download the beroNet apps.lst and the trusted repositories list.