Skip to main content

Content Installation

The sections below provide details on mechanisms for creating bundles and deploying content created with the L7|ESP SDK. After reading this documentation, you’ll understand how production bundles of L7|ESP are built and how to install a production bundle in either an existing Linux server or inside of a container.

Deployment Bundle

For deploying the application in production, L7 provides an application bundle that contains specific versions of L7|ESP and related tools, along with all content that customers have defined in their L7|ESP SDK. These bundles must be generated on request by L7, and once created, can be used to install L7|ESP and custom content on a production system.

Deployment bundles are structured in a way that mirrors the L7|ESP SDK structure, since a lot of the commands for installing the bundle in production are the same as those that install the bundle in the development VM. Generally, the only differences between the L7|ESP SDK structure and the deployment bundle structure are a few boilerplate files (the README.md, Makefile, and the docs/ folder).

Installation

Requirements

The deployment bundle must be installed on one of the following Linux-based operating systems:

  • Ubuntu 20.04+

  • RHEL/CentOS 7+

Aside from the operating system, the only additional requirement is make, which comes by default on most Linux-based operating systems.

Install

After extracting this package, you can use the Makefile to install L7|ESP and all custom content created for this deployment:

~$ tar -zxvf <package-name>.tar.gz
~$ cd <package-name>
~$ make install

This command will prompt for several configuration settings (hit <enter> to use defaults) and then proceed to install L7|ESP and import all custom content.

You can check the status of the installation at any time by running:

~$ make status
L7|ESP web server      : Available
L7|ESP system services : Available
L7|ESP database        : Available

Update

To update an existing installation with a new L7|ESP bundle or related software/content, you can use a similar process as the install process. However, instead of make install, you’ll use make update to perform the update:

~$ tar -zxvf <package-name>.tar.gz
~$ cd <package-name>
~$ make update

This command will run through a lot of the same tasks as make install, but will preserve the database state and also perform any necessary database migrations for the update process.

Administration

Reload

If at any point you need to reload the application after install (i.e. if the application gets into a strange state or if you’ve rebooted the server), you can run:

~$ make reload

This command will take down the instance (if it’s running) and reload the L7|ESP service (including all related web, logging, and pipeline services).

Import

If at any point you’ve deleted your database and need to re-import content defined in the customer bundle, you can run:

~$ make import

All of the content that you’ve defined as part of your production configuration will be loaded.

Database

Reset

If at any point you need to reset the application after install (i.e. completely wipe the application database), you can run:

~$ make reset

This command will take down the instance (if it’s running), remove the database, re-run database migrations and setup, and reload the L7|ESP service (including all related web, logging, and pipeline services).

Note

Please be careful when resetting a production database. All data will be lost. If you set db_archive: true in your production playbook, the database will always be backed up in a folder called archive in the application install directory.

Archive

To create a backup of the application database (including all content and data created by the application), you can run:

~$ make archive

This command will create a .sql file (in a folder called archive inside of the application install directory) containing a database dump from the application.

Other Commands

Below are the list of available commands in the deployment bundle’s Makefile:

~$ make help
info                list info about package
init                install prerequisites
install             provision production instance
update              update existing esp installation with ansible
reset               reset database with ansible tasks
archive             backup/archive esp database
stop                stop running esp instance
reload              reload or start application
import              import bundled content with ansible
status              check status of running esp instance