Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 19 additions & 14 deletions ssm-agent.sh
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
#!/bin/bash

if [ -z "${BASTION_ROLE_NAME}" ] || [ -z "${BASTION_INSTANCE_NAME}" ]; then
echo "ERROR: Some variables are not found. Please set BASTION_ROLE_NAME and BASTION_INSTANCE_NAME." >&2
echo "[ERROR] Some variables are not found. Please set BASTION_ROLE_NAME and BASTION_INSTANCE_NAME." >&2
exit 1
fi

function activate(){
echo "start activate process ..."
activation=$(aws ssm create-activation --default-instance-name "${BASTION_INSTANCE_NAME}" --iam-role "${BASTION_ROLE_NAME}" --output text)
SSM_AGENT_CODE=$(echo $activation | cut -f 1 -d ' ')
SSM_AGENT_ID=$(echo $activation | cut -f 2 -d ' ')
function activate() {
echo "[INFO] start activate process ..."
local activation=$(aws ssm create-activation --default-instance-name "${BASTION_INSTANCE_NAME}" --iam-role "${BASTION_ROLE_NAME}" --output text)
local activation_code=$(echo "$activation" | cut -f 1 -d ' ')
local activation_id=$(echo "$activation" | cut -f 2 -d ' ')
amazon-ssm-agent -register -code "$activation_code" -id "$activation_id" -region "ap-northeast-1"
aws ssm delete-activation --activation-id "$activation_id"
echo "[INFO] activate process completed."
}

function shutdown(){
echo "start shutdown process ..."
function shutdown() {
echo "[INFO] start shutdown process ..."
instance_id=$(cat /var/lib/amazon/ssm/registration | jq -r .ManagedInstanceID)
aws ssm deregister-managed-instance --instance-id $instance_id
aws ssm deregister-managed-instance --instance-id "$instance_id"
kill $(pgrep amazon-ssm)
echo "shutdown process completed."
echo "[INFO] shutdown process completed."
}

function start(){
amazon-ssm-agent -register -code "${SSM_AGENT_CODE}" -id "${SSM_AGENT_ID}" -region "ap-northeast-1"
aws ssm delete-activation --activation-id "${SSM_AGENT_ID}"
function start() {
local product=${DD_SERVICE:none}
local env=${DD_ENV:none}
instance_id=$(cat /var/lib/amazon/ssm/registration | jq -r .ManagedInstanceID)
aws ssm add-tags-to-resource --resource-type "ManagedInstance" --resource-id "$instance_id" --tags "Key=Product,Value=$product" "Key=Env,Value=$env"
amazon-ssm-agent start &
echo "activate process completed. ssm-agent has started."
echo "[INFO] ssm-agent has started."
}

## main process
Expand Down