...
Code Block |
---|
title | Example for Environment File env.sh |
---|
linenumbers | true |
---|
|
#!/bin/sh
SCRIPT_HOME=${HOME}/js7.deploy
DEP_ARCHIVE="${DEP_ARCHIVE:-$SCRIPT_HOME/archive}"
DEP_BIN="${DEP_BIN:-$SCRIPT_HOME/bin}"
DEP_CA="${DEP_CA:-$SCRIPT_HOME/ca}"
DEP_CONFIG="${DEP_CONFIG:-$SCRIPT_HOME/config}"
DEP_DESC="${DEP_DESC:-$SCRIPT_HOME/desc}"
DEP_RELEASE="${DEP_RELEASE:-$SCRIPT_HOME/release}"
DEP_WORK="${DEP_WORK:-$SCRIPT_HOME/work}"
JAVA_HOME="/usr/lib/jvm/jdk-11.0.2"
PATH=${DEP_BIN}:${JAVA_HOME}/bin:${PATH}
export JAVA_HOME PATH DEP_ARCHIVE DEP_BIN DEP_CA DEP_CONFIG DEP_DESC DEP_RELEASE DEP_WORK |
...
Code Block |
---|
title | Example for Installer Wrapper Script run_install_agent.sh |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#!/bin/sh
set -e
DEP_CONFIG="/home/sos/js7.deploy/config"
DEP_BIN="/home/sos/js7.deploy/bin"
DEP_WORK_TEMP="/home/sos/js7.deploy/work/agents/agent_001"
mkdir -p "${DEP_WORK_TEMP}"
"${DEP_BIN}"/js7_install_agent.sh \
--real-path-prefix="${DEP_WORK_TEMP}" \
--release="2.5.0" \
--tarball="/mnt/releases/scheduler_setups/2.5.0/js7_agent_unix.2.5.0.tar.gz" \
--home="${DEP_WORK_TEMP}/opt/sos-berlin.com/js7/agent-primary" \
--data="${DEP_WORK_TEMP}/var/sos-berlin.com/js7/agent-primary" \
--http-port="localhost:31443" \
--https-port="centostest-primary.sos:31443" \
--controller-id="cluster" \
--controller-primary-cert="${DEP_CONFIG}/controllers/instances/cluster.primary/config/centostest-primary.crt" \
--controller-secondary-cert="${DEP_CONFIG}/controllers/instances/cluster.secondary/config/private/centostest-secondary.crt" \
--keystore="${DEP_CONFIG}/agents/instances/agent_001/config/private/https-keystore.p12" \
--keystore-password="jobscheduler" \
--truststore="${DEP_CONFIG}/agents/instances/agent_001/config/private/https-truststore.p12" \
--truststore-password="jobscheduler" \
--deploy-dir="${DEP_CONFIG}/agents/templates/https/config" \
--make-dirs |
...
Anchor |
---|
| deployment_scripts |
---|
| deployment_scripts |
---|
|
Deployment Scripts: run_deploy_agent.sh, run_deploy_controller.sh, run_deploy_joc.sh
The Deployment Scripts perform transfer of deployment tarballs to target machines and extracts are called by Rollout Scripts on target hosts to extract the respective tarballs. The parameterization is created from the Deployment Descriptor.
Code Block |
---|
title | Example for Deployment Script run_deploy_agent.sh |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#!/bin/sh
set -e
scp -i "/home/sos/.ssh/sos_rsa" -P 22 "/home/sos/js7.dep/archive/standalone-agent-http-2022-12-04/agents/agent_001/js7_deploy_agent_unix.agent_001.2.5.0.install.tar.gz" sos@centostest-primary:"/tmp"
ssh -i "/home/sos/.ssh/sos_rsa" -p 22 -t -t -o LogLevel=QUIET sos@centostest-primary << 'EOF'
if [ $(id -u) -eq 0 ]
then
use_sudo=""
else
use_sudo="sudo"
fi
systemd_service_dir="/usr/lib/systemd/system"
systemd_service_name="js7_agent_31445.service"
...
mkdir -pif [ $(id -u) -eq 0 ]
then
use_sudo=""
else
use_sudo="sudo"
fi
systemd_service_dir="/usr/lib/systemd/system"
systemd_service_name="js7_agent_31445.service"
...
Log ".. executing pre-extraction command: StopService"
StopService
if [ -d "/opt/sos-berlin.com/js7/agent-primary" ]
then
Log ".. removing home directory: /opt/sos-berlin.com/js7/agent-primary"
if [ -w "/opt/sos-berlin.com/js7/agent-primary" ]
then
rm -f -r "/opt/sos-berlin.com/js7/agent-primary"
else
${use_sudo} rm -f -r "/opt/sos-berlin.com/js7/agent-primary"
cd fi
fi
if [ ! -d "/opt/sos-berlin.com/js7" ]
then
> /dev/null
test -e "/tmp/js7_deploy_agent_unix.agent_001.2.5.0.install.tar.gz" && gzip -c -d < "/tmp/js7_deploy_agent_unix.agent_001.2.5.0.install.tar.gz" | tar -xf -
rc=$?
cd - > /dev/null
exit $rc
EOF
scp -i "/home/sos/.ssh/sos_rsa" -P 22 "/home/sos/js7.dep/archive/standalone-agent-http-2022-12-04/agents/agent_001/js7_deploy_agent_unix.agent_001.2.5.0.config.tar.gz" sos@centostest-primary:"/tmp"
ssh -i "/home/sos/.ssh/sos_rsa" -p 22 -t -t -o LogLevel=QUIET sos@centostest-primary << 'EOF'
if [ $(id -u) -eq 0 ]
then
use_sudo=""
else
use_sudo="sudo"
fi
mkdir -p "/var Log ".. creating parent home directory: /opt/sos-berlin.com/js7"
if [ -w "/opt/sos-berlin.com" ]
then
mkdir -p "/opt/sos-berlin.com/js7"
else
${use_sudo} mkdir -p "/opt/sos-berlin.com/js7"
fi
if [ ! -w "/opt/sos-berlin.com" ]
then
Log ".. owning parent home directory to: sos"
${use_sudo} chown -R sos "/opt/sos-berlin.com/js7"
cd "/var fi
fi
Log ".. extracting tarball in home directory: /opt/sos-berlin.com/js7"
cd "/opt/sos-berlin.com/js7" > /dev/null
test -e "/tmp/
Log ".. extracting tarball: js7_deploy_agent_unix.agent_001.2.5.01.configinstall.tar.gz"
test && gzip -ce -d < "/tmp/js7_deploy_agent_unix.agent_001.2.5.0.config1.install.tar.gz" && gzip -c -d < "/tmp/js7_deploy_agent_unix.agent_001.2.5.1.install.tar.gz" | tar -xf -
rc=$?
cd - > /dev/null
systemd_service_dir="/usr/lib/systemd/system"
systemd_service_name="js7_agent_31445.service"
...
if [ "${rc}" -eq 0 ]
then
MakeService "/optif [ ! -d "/var/sos-berlin.com/js7" ]
then
Log ".. creating parent data directory: /var/sos-berlin.com/js7/agent-standalone/bin/agent_31445.service"
rc=$?
fi
if [ "${rc}" -eq 0 ]
then
StartService
fi
exit $rc
EOF |
Explanation:
...
-w "/var/sos-berlin.com" ]
then
mkdir -p "/var/sos-berlin.com/js7"
else
${use_sudo} mkdir -p "/var/sos-berlin.com/js7"
fi
if [ ! -w "/var/sos-berlin.com" ]
then
Log ".. owning parent data directory to: sos"
${use_sudo} chown -R sos "/var/sos-berlin.com/js7"
fi
else
if [ -d "/var/sos-berlin.com/js7/agent-primary" ]
then
if [ ! -w "/var/sos-berlin.com/js7/agent-primary" ]
then
Log ".. owning data directory to: sos"
${use_sudo} chown -R sos "/var/sos-berlin.com/js7/agent-primary"
fi
fi
fi
Log ".. extracting tarball in data directory: /var/sos-berlin.com/js7"
cd "/var/sos-berlin.com/js7" > /dev/null
Log ".. extracting tarball: js7_deploy_agent_unix.agent_001.2.5.1.config.tar.gz"
test -e "/tmp/js7_deploy_agent_unix.agent_001.2.5.1.config.tar.gz" && gzip -c -d < "/tmp/js7_deploy_agent_unix.agent_001.2.5.1.config.tar.gz" | tar -xf -
rc=$?
cd - > /dev/null
if [ "${rc}" -eq 0 ]
then
Log ".. owning home directory to: sos1:sos1"
${use_sudo} chown -R sos1:sos1 "/opt/sos-berlin.com/js7/agent-primary"
rc=$?
fi
if [ "${rc}" -eq 0 ]
then
Log ".. owning data directory to: sos2:sos2"
${use_sudo} chown -R sos2:sos2 "/var/sos-berlin.com/js7/agent-primary"
rc=$?
fi
if [ "${rc}" -eq 0 ]
then
Log ".. creating systemd service: js7_agent_31445.service"
MakeService "/opt/sos-berlin.com/js7/agent-primary/bin/agent_31445.service"
rc=$?
fi
Log ".. executing post-extraction command: StartService"
StartService
Log ".. deployment completed, return code: ${rc}"
exit ${rc} |
Explanation:
- Authentication is performed by use of private/public key.
- For each deployed tarball transfer and extraction are individually applied.
- The example includes commands for pre- and post-processing to stop and to start an Agent from iJS7 - systemd Service Files for automated Startup and Shutdown with Unix Systems.
- The example leaves out (
...
) a number of shell functions that are created to implement the MakeService, StopService and StartService operations.
Anchor |
---|
| rollout_scripts |
---|
| rollout_scripts |
---|
|
Rollout Scripts: run_rollout_agent.sh, run_rollout_controller.sh, run_rollout_joc.shThe Rollout Scripts perform transfer of deployment tarballs to target hosts and extract the respective tarballs by invoking the Deployment Script. The parameterization is created from the Deployment Descriptor.
Code Block |
---|
title | Example for Rollout Script run_rollout_agent.sh |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#!/bin/sh
set -e
scp -i "/home/sos/.ssh/sos_rsa" -P 22 "/home/sos/js7.deploy/archive/user-joc-controller-agent-https-2022-12-04/agents/agent_001/js7_deploy_agent_unix.agent_001.2.5.1.install.tar.gz" sos@centostest-primary:"/tmp"
scp -i "/home/sos/.ssh/sos_rsa" -P 22 "/home/sos/js7.deploy/archive/user-joc-controller-agent-https-2022-12-04/agents/agent_001/js7_deploy_agent_unix.agent_001.2.5.1.config.tar.gz" sos@centostest-primary:"/tmp"
scp -i "/home/sos/.ssh/sos_rsa" -P 22 "/home/sos/js7.deploy/archive/user-joc-controller-agent-https-2022-12-04/agents/agent_001/run_deploy_agent.sh" sos@centostest-primary:"/tmp"
ssh -i "/home/sos/.ssh/sos_rsa" -p 22 -t -t -o LogLevel=QUIET sos@centostest-primary 'chmod u+x /tmp/run_deploy_agent.sh && /tmp/run_deploy_agent.sh' |
Resources
...