@jumpgroup/trellis-tools

2.9.1 • Public • Published

Trellis Tools

This is a Node.js package that includes a set of functions related to Trellis deploy and provision using Docker Image, where provision refers to an initialization process where an environment is set up with a specific set of configurations powered by Ansible, and deploy refers to deploying updates to an environment.

This package also inclue some tolls to setup the local environment and work with Trellis projects.

Installation

To install this package, run the following command:

npm install @jumpgroup/trellis-tools

Usage

To use this package you can import the:

  • 'deploy',
  • 'provision'
  • 'setupLocal'

functions from the package and call it with the necessary parameters or you can use this functions like a command.

Include as a functions

If you want to use this like a functions has the following signature:

Deploy

deploy({ pathKey, environment, groupKey, groupSecret, input, output, addVariables = {} })

Provision

provision({ pathKey, environment, groupKey, groupSecret, input, output, addVariables = {} })
  • pathKey: The path to the ssh private key (default: ~/.ssh/id_rsa).
  • environment: The environment of the project. It can be "staging" or "production".
  • groupKey: The key of the group of variables to fetch from the remote server.
  • groupSecret: The secret key of the group of variables to fetch from the remote server.
  • input: The input file or directory where the configuration files to replace secrets are located.
  • output: The output directory where the resulting files will be saved.
  • addVariables: (Optional) Additional variables to merge with the fetched variables. This parameter should be an object containing the additional variables. If the additional variables are provided as a string, they will be parsed as JSON.

Setup Local

setupLocal()

Include as a command

If you want to use this like a command you can use the following commands:

Deploy

To deploy website, use the following command:

trellis-tools deploy --pathKey ~/.ssh/id_rsa --environment staging --groupKey myGroup --groupSecret mySecret --input config/**/* --output .config

Provision

To provision website, use the following command:

trellis-tools provision --pathKey ~/.ssh/id_rsa --environment staging --groupKey myGroup --groupSecret mySecret --input config/**/* --output .config

The following options are available:

  • -p, --pathKey [pathKey]: path to the ssh key (default: ~/.ssh/id_rsa).
  • -e, --environment [environment]: environment to deploy to (default: "staging").
  • -g, --groupKey [groupKey]: group key.
  • -s, --secretKey [secretKey]: secret token for the group.
  • -i, --input [input]: input file or directory (default: "trellis/**").
  • -o, --output [output]: output directory (default: ".trellis").
  • -v, --addVariables [addVariables]: variables to be replaced.

-e, --environment : environment to deploy to (default: "staging"). -g, --groupKey : group key. -s, --secretKey : secret token for the group. -i, --input [input]: input file or directory (default: "trellis/**"). -o, --output [output]: output directory (default: ".trellis"). -v, --addVariables [addVariables]: variables to be replaced.

Setup Local

trellis-tools setup-local

Example Usage

const { deploy, provision } = require('@jumpgroup/trellis-tools');

// Deploy the updates
await deploy({
  environment: 'production',
  groupKey: 'jumpgroup',
  groupSecret: '******************',
  input: 'trellis/**',
  output: '.trellis',
  addVariables: {
    "trellis": {
      "admin_user": "{{ admin_user }}"
    }
  },
});

// Setup the environment
await provision({
  environment: 'production',
  groupKey: 'jumpgroup',
  groupSecret: '******************',
  input: 'trellis/**',
  output: '.trellis',
  addVariables: {
    "trellis": {
      "admin_user": "{{ admin_user }}"
    }
  },
});

await setupLocal();

This example will deploy the sites updates to the production environment or setup the environment if it is the first time.

License

This package is licensed under the MIT License.

Readme

Keywords

none

Package Sidebar

Install

npm i @jumpgroup/trellis-tools

Weekly Downloads

56

Version

2.9.1

License

ISC

Unpacked Size

194 kB

Total Files

28

Last publish

Collaborators

  • lovejade
  • cristiano-f
  • sinsimon19
  • mellinmeg
  • jericam
  • sinsimon
  • fabio.p