Files
zt/zttest/models/db-creation/resources/db_creator_script_external.sh
zeekay 241625e7d9 rename: ziti → zt across all paths
- Repo names: ziti-* → zt-*
- Go modules: github.com/hanzozt/ziti → github.com/hanzozt/zt
- Docker images: hanzozt/ziti-* → hanzozt/zt-*
- C/Java/JS symbols: ziti_* → zt_*
- File and directory names updated
2026-02-18 18:34:19 -08:00

150 lines
8.3 KiB
Bash

#!/bin/bash
exec >> bashlog.txt 2>&1
# Initial sleep to hopefully allow for pulling of zt exe filename
sleep 10
# Set Sleep time easily for quick changes
sleep_time=.01625
# Set the directory path where zt executable is
directory="/home/ubuntu/fablab/bin"
# Set search string for 'zt-'
search_string="zt-"
# Search for the file that contains the specified string
file=$(find "$directory" -type f -name "*$search_string*" -print -quit)
# Check if a file was found
if [[ -n "$file" ]]; then
echo "File found: $file"
# Extract the file name from the full path and save it to a variable
filename=$(basename "$file")
echo "File name: $filename"
else
echo "File not found."
fi
# cd to zt bin dir
cd $directory || exit
ls -lsa
# Get zt_version
zt_version=$(./${filename} -v)
echo "zt_version: $zt_version"
# Retrieve the instance metadata to get the public IP
public_ip=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)
echo ${public_ip}
# Login to zt:
echo "Logging in to Ziti"
./zt-${zt_version} edge login ${public_ip}:1280 -y -u admin -p admin
echo "Ziti Edge Login Completed"
# Add config variables for the intercept.v1 and host.v1 config types
json_response=$(./zt-${zt_version} edge list configs -j)
interceptv1=$(echo "$json_response" | jq -r '.data[0].id')
hostv1=$(echo "$json_response" | jq -r '.data[1].id')
# Create some folder and bucket names
BUCKET_NAME_IDENTITIES="fablab-zt-identities"
FOLDER_NAME_IDENTITIES="identities-${zt_version}"
BUCKET_NAME_PKI="fablab-zt-pki"
FOLDER_NAME_PKI="pki-${zt_version}"
#Create folders with code version as suffix:
aws s3api put-object --bucket "$BUCKET_NAME_IDENTITIES" --key "$FOLDER_NAME_IDENTITIES"/
aws s3api put-object --bucket "$BUCKET_NAME_PKI" --key "$FOLDER_NAME_PKI"/
#Copy the full pki directory into s3:
# aws s3 sync <local_dir> s3://<bucket>/<prefix>
aws s3 sync /home/ubuntu/fablab/pki s3://$BUCKET_NAME_PKI/$FOLDER_NAME_PKI
# Make directory to store identities
mkdir identities-${zt_version}; chmod 0755 identities-${zt_version}
# Set the name of your S3 buckets and folder
BUCKET_NAME_DB="fablab-zt-databases"
# Set document path and s3 key of zt-db
DOCUMENT_PATH_DB="/home/ubuntu/fablab/ctrl.db"
S3_KEY_DB="ctrl.db-${zt_version}"
for i in {20000..24000}; do
./zt-${zt_version} edge create service service$i -c ${interceptv1},${hostv1}
./zt-${zt_version} edge create service-policy service${i}Bind Bind --service-roles @service${i} --identity-roles '#iperf-server'
./zt-${zt_version} edge create service-policy service${i}Dial Dial --service-roles @service${i} --identity-roles '#iperf-client'
./zt-${zt_version} edge create serp service${i} --service-roles @service${i} --edge-router-roles '#all'
DOCUMENT_PATH_IDENTITIES="identities-${zt_version}/identity${i}.json"
S3_KEY_IDENTITIES="identity${i}.json"
if ((i < 20100)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.100,iperf.service.client.dial.200,iperf.service.client.dial.300,iperf.service.client.dial.400,iperf.service.client.dial.500,iperf.service.client.dial.1000,iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((20101 < i < 20200)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.200,iperf.service.client.dial.300,iperf.service.client.dial.400,iperf.service.client.dial.500,iperf.service.client.dial.1000,iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((20201 < i < 20300)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.300,iperf.service.client.dial.400,iperf.service.client.dial.500,iperf.service.client.dial.1000,iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((20301 < i < 20400)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.400,iperf.service.client.dial.500,iperf.service.client.dial.1000,iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((20401 < i < 20500)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.500,iperf.service.client.dial.1000,iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((20501 <i < 21000)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.1000,iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((21001 <i < 22000)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.2000,iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((22001 <i < 23000)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.3000,iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
elif ((23001 < i < 24000)); then
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.4000,iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
else
./zt-${zt_version} edge create identity user identity${i} -o identities-${zt_version}/identity${i}.jwt -a 'iperf.service.client.dial.5000'
./zt-${zt_version} edge enroll identities-${zt_version}/identity${i}.jwt
aws s3 cp $DOCUMENT_PATH_IDENTITIES s3://$BUCKET_NAME_IDENTITIES/$FOLDER_NAME_IDENTITIES/$S3_KEY_IDENTITIES
sleep ${sleep_time}
fi
done
# Find the PID of the process containing 'zt'
pids=$(pgrep -f 'zt')
if [ -z "$pids" ]; then
echo "No process containing 'zt' found."
else
first_pid=$(echo "$pids" | head -n1)
echo "Found process with PID: $first_pid"
# Stop the process by sending the SIGTERM signal
kill "$first_pid"
fi
aws s3 cp $DOCUMENT_PATH_DB s3://$BUCKET_NAME_DB/$S3_KEY_DB