Introduction
In the JS7 - Deployment process a Deployment Descriptor specifies
- which JS7 products of JOC Cockpit, Controller instances and Agents should be installed,
- where to install each JS7 product,
- which installation options to use, for example the installation directory,
- which configuration options to use, for example port usage.
Deployment Descriptors are specified from files in JSON format and include instructions, for example to deploy a larger number of Agents on target hosts.
The JS7 - Deployment Packaging makes use of the Deployment Descriptor to install and to package JS7 products.
Deployment Descriptor
Deployment Descriptors are specified from .json files.
- Users are strongly encouraged to validate their .json files against the Deployment Descriptor Schema, see JS7 - Deployment Descriptor JSON Schema.
- A Deployment Descriptor can include elements for Agents, Controllers and JOC Cockpit instances individually or as a combination.
Example for an Agent Deployment Descriptor:
Example for Deployment Descriptor
{
"descriptor": {
"descriptorId": "agent-http-2022-12-04",
"title": "Install or update Agent for HTTP connections",
"account": "sos",
"scheduled": "2022-12-02T06:19:12+01:00",
"created": "2022-11-30T23:19:12+01:00"
},
"version": "1.5.3",
"agents": {
"controllerRefs": [
{
"controllerId": "controller",
"members": [
{
"agentId": "agent_001",
"target": {
"connection": {
"host": "centostest-primary",
"port": 22
},
"authentication": {
"method": "publickey",
"user": "sos",
"keyFile": "/home/sos/.ssh/sos_rsa"
},
"packageLocation": "/tmp"
},
"media": {
"release": "2.5.3",
"tarball": "2.5.3/js7_agent_unix.2.5.3.tar.gz"
},
"installation": {
"home": "/opt/sos-berlin.com/js7/agent-primary",
"data": "/var/sos-berlin.com/js7/agent-primary",
"httpPort": "31445"
}
}
]
}
]
}
}
Explanation:
- Section
descriptor- This section includes metadata about the Deployment Descriptor.
- The
descriptorIdspecifies the unique identifier of the Deployment Descriptor and is determines the Deployment Package.
- Section
agents- This section can hold any number of Agents that should be deployed.
- Section
agents.controllerRefs[].<controller-id>- This section specifies the list of Controllers to which related Agents are assigned. The Controller ID identifies the respective Controller.
- Section
agents.controllerRefs[].members[]- This section specifies the related Agents that are identified by their respective Agent ID from the
agentIdproperty. The Agent ID will be used when registering the Agent to a Controller with JOC Cockpit. The Agent ID can be specified from mixed lowercase and uppercase letters including - minus and _ underscore characters. - Section
agents.controllerRefs[].members[].target- The information in this section is used to connect to the target host and to transfer the Deployment Package that holds the Agent installation..
- The Agent Deployment Package will be deployed to host
centostest-primaryusing SSH with thesosaccount and a private key file for authentication. The Deployment Package will be stored to the/tmpdirectory on the target host. - Before extraction of the Deployment Package the Agent's systemd service will be stopped and after extraction it will be started using JS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems. The
makeServiceproperty specifies that the systemd service will be created automatically.
- Section
agents.controllerRefs[].members[].media- The Agent will be installed or updated to the indicated release using a copy of the tarball as offered from the JS7 - Download page.
- If a relative path is used - as in the example - then the path is prepended the
js7.deploy/releasedirectory. - If an absolute path is specified, for example a path to a mount point, then it will be used without changes.
- Section
agents.controllerRefs[].members[].installation- The Agent's
- installation directory is
/opt/sos-berlin.com/js7/agent-primary. - configuration directory is
/var/sos-berlin.com/js7/agent-primary.
- installation directory is
- The Agent will use HTTP connections and will listen to port
31445.
- The Agent's
- This section specifies the related Agents that are identified by their respective Agent ID from the
Resources
Links
Overview
Content Tools