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.
To install this package, run the following command:
npm install @jumpgroup/trellis-tools
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.
If you want to use this like a functions has the following signature:
deploy({ pathKey, environment, groupKey, groupSecret, input, output, addVariables = {} })
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.
setupLocal()
If you want to use this like a command you can use the following commands:
To deploy website, use the following command:
trellis-tools deploy --pathKey ~/.ssh/id_rsa --environment staging --groupKey myGroup --groupSecret mySecret --input config/**/* --output .config
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.
trellis-tools setup-local
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.
This package is licensed under the MIT License.