From 03d176fc355d330cacf800e90af3ea55c600c51f Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Thu, 10 Jun 2021 14:24:57 -0400 Subject: [PATCH] update script for cygwin-based install --- quickstart/docker/image/ziti-cli-functions.sh | 194 ++++++++++-------- 1 file changed, 110 insertions(+), 84 deletions(-) diff --git a/quickstart/docker/image/ziti-cli-functions.sh b/quickstart/docker/image/ziti-cli-functions.sh index b5fc7dac9..76755bcc7 100644 --- a/quickstart/docker/image/ziti-cli-functions.sh +++ b/quickstart/docker/image/ziti-cli-functions.sh @@ -45,7 +45,7 @@ function BLUE { } function zitiLogin { - unused=$("${ZITI_BIN_DIR-}/ziti" edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -c "${ZITI_PKI}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert") + unused=$("${ZITI_BIN_DIR-}/ziti${ZITI_EXE_SUFFIX}" edge login "${ZITI_EDGE_CONTROLLER_API}" -u "${ZITI_USER-}" -p "${ZITI_PWD}" -c "${ZITI_PKI_OS_SPECIFIC}/${ZITI_EDGE_CONTROLLER_ROOTCA_NAME}/certs/${ZITI_EDGE_CONTROLLER_INTERMEDIATE_NAME}.cert") } function cleanZitiController { ziti_home="${ZITI_HOME-}" @@ -58,12 +58,12 @@ function cleanZitiController { initializeController } function initializeController { - "${ZITI_BIN_DIR-}/ziti-controller" edge init "${ZITI_HOME-}/controller.yaml" -u "${ZITI_USER-}" -p "${ZITI_PWD}" &> "${ZITI_HOME-}/controller-init.log" + "${ZITI_BIN_DIR-}/ziti-controller${ZITI_EXE_SUFFIX}" edge init "${ZITI_HOME_OS_SPECIFIC}/controller.yaml" -u "${ZITI_USER-}" -p "${ZITI_PWD}" &> "${ZITI_HOME_OS_SPECIFIC}/controller-init.log" echo -e "ziti-controller initialized. see $(BLUE "${ZITI_HOME-}/controller-init.log") for details" } function startZitiController { # shellcheck disable=SC2034 - unused=$("${ZITI_BIN_DIR-}/ziti-controller" run "${ZITI_HOME-}/controller.yaml" > "${ZITI_HOME-}/ziti-edge-controller.log" 2>&1 &) + unused=$("${ZITI_BIN_DIR-}/ziti-controller${ZITI_EXE_SUFFIX}" run "${ZITI_HOME_OS_SPECIFIC}/controller.yaml" > "${ZITI_HOME_OS_SPECIFIC}/ziti-edge-controller.log" 2>&1 &) echo -e "ziti-controller started. log located at: $(BLUE "${ZITI_HOME-}/ziti-edge-controller.log")" } function stopZitiController { @@ -123,10 +123,11 @@ function getLatestZitiVersion { if [[ "${ZITI_BINARIES_VERSION-}" == "" ]]; then zitilatest=$(curl -s https://api.github.com/repos/openziti/ziti/releases/latest) # shellcheck disable=SC2155 - export ZITI_BINARIES_TARFILE=$(echo "${zitilatest}" | jq -r '.assets[] | select(.name | startswith("'"ziti-${ZITI_OSTYPE}-${ZITI_ARCH}"'")) | .name') + export ZITI_BINARIES_FILE=$(echo "${zitilatest}" | jq -r '.assets[] | select(.name | startswith("'"ziti-${ZITI_OSTYPE}-${ZITI_ARCH}"'")) | .name') # shellcheck disable=SC2155 export ZITI_BINARIES_VERSION=$(echo "${zitilatest}" | jq -r '.tag_name') fi + echo "ZITI_BINARIES_VERSION: ${ZITI_BINARIES_VERSION}" } function getLatestZiti { @@ -145,32 +146,37 @@ function getLatestZiti { mkdir -p "${ziti_bin_root}" if ! getLatestZitiVersion; then - echo -e 'ERROR: '"$(RED " xxx ")"' yyy '"$(GREEN "zzz")" - echo -e 'ERROR: '"$(RED " xxx ")"' yyy '"$(GREEN "zzz")" - tar -xf "${ZITI_BINARIES_TARFILE_ABSPATH}" --directory "${ziti_bin_root}" - tar -xf "${ZITI_BINARIES_TARFILE_ABSPATH}" --directory "${ziti_bin_root}" + return 1 fi ziti_bin_ver="${ZITI_BINARIES_VERSION-}" if [[ "${ziti_bin_ver}" == "" ]]; then - echo "ERROR: ZITI_HOME is not set!" + echo "ERROR: ZITI_BINARIES_VERSION is not set!" return 1 fi export ZITI_BIN_DIR="${ziti_bin_root}/ziti-${ziti_bin_ver}" - ZITI_BINARIES_TARFILE_ABSPATH="${ZITI_HOME-}/ziti-bin/${ZITI_BINARIES_TARFILE}" - if ! test -f "${ZITI_BINARIES_TARFILE_ABSPATH}"; then - zitidl="https://github.com/openziti/ziti/releases/download/${ZITI_BINARIES_VERSION-}/${ZITI_BINARIES_TARFILE}" - echo -e 'Downloading '"$(BLUE "${zitidl}")"' to '"$(BLUE "${ZITI_BINARIES_TARFILE_ABSPATH}")" - wget -q "${zitidl}" -O "${ZITI_BINARIES_TARFILE_ABSPATH}" + ZITI_BINARIES_FILE_ABSPATH="${ZITI_HOME-}/ziti-bin/${ZITI_BINARIES_FILE}" + if ! test -f "${ZITI_BINARIES_FILE_ABSPATH}"; then + zitidl="https://github.com/openziti/ziti/releases/download/${ZITI_BINARIES_VERSION-}/${ZITI_BINARIES_FILE}" + echo -e 'Downloading '"$(BLUE "${zitidl}")"' to '"$(BLUE "${ZITI_BINARIES_FILE_ABSPATH}")" + wget -q "${zitidl}" -O "${ZITI_BINARIES_FILE_ABSPATH}" else - echo -e "$(YELLOW 'Already Downloaded ')""$(BLUE "${ZITI_BINARIES_TARFILE}")"' at: '"${ZITI_BINARIES_TARFILE_ABSPATH}" + echo -e "$(YELLOW 'Already Downloaded ')""$(BLUE "${ZITI_BINARIES_FILE}")"' at: '"${ZITI_BINARIES_FILE_ABSPATH}" fi - echo -e 'UNZIPPING '"$(BLUE "${ZITI_BINARIES_TARFILE_ABSPATH}")"' into: '"$(GREEN "${ZITI_BIN_DIR}")" + echo -e 'UNZIPPING '"$(BLUE "${ZITI_BINARIES_FILE_ABSPATH}")"' into: '"$(GREEN "${ZITI_BIN_DIR}")" rm -rf "${ziti_bin_root}/ziti-${ZITI_BINARIES_VERSION-}" - tar -xf "${ZITI_BINARIES_TARFILE_ABSPATH}" --directory "${ziti_bin_root}" - mv "${ziti_bin_root}/ziti" "${ZITI_BIN_DIR}" + if [[ "${ZITI_OSTYPE}" == "windows" ]]; then + unzip "${ZITI_BINARIES_FILE_ABSPATH}" -d "${ZITI_BIN_DIR}" + mv "${ZITI_BIN_DIR}/ziti/"* "${ZITI_BIN_DIR}/" + rm -rf "${ZITI_BIN_DIR}/ziti/"* + rmdir "${ZITI_BIN_DIR}/ziti/" + chmod +x "${ZITI_BIN_DIR}/"* + else + tar -xf "${ZITI_BINARIES_FILE_ABSPATH}" --directory "${ziti_bin_root}" + mv "${ziti_bin_root}/ziti" "${ZITI_BIN_DIR}" + fi echo -e 'Marking executables at '"$(GREEN "${ZITI_BIN_DIR}")"' executable' chmod +x "${ZITI_BIN_DIR}/"* @@ -365,15 +371,15 @@ function ziti_expressConfiguration { echo "---------- Creating edge-router ${ZITI_EDGE_ROUTER_RAWNAME}...." unused=$("${ZITI_BIN_DIR-}/ziti" edge delete edge-router "${ZITI_EDGE_ROUTER_RAWNAME}") - unused=$("${ZITI_BIN_DIR-}/ziti" edge create edge-router "${ZITI_EDGE_ROUTER_RAWNAME}" -o "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.jwt" -t) + unused=$("${ZITI_BIN_DIR-}/ziti" edge create edge-router "${ZITI_EDGE_ROUTER_RAWNAME}" -o "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.jwt" -t) sleep 1 echo "---------- Enrolling edge-router ${ZITI_EDGE_ROUTER_RAWNAME}...." - unused=$("${ZITI_BIN_DIR-}/ziti-router" enroll "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" --jwt "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.jwt" &> "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.enrollment.log") + unused=$("${ZITI_BIN_DIR-}/ziti-router${ZITI_EXE_SUFFIX}" enroll "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" --jwt "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.jwt" &> "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.enrollment.log") echo "" sleep 1 # shellcheck disable=SC2034 - unused=$("${ZITI_BIN_DIR-}/ziti-router" run "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" > "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.log" 2>&1 &) + unused=$("${ZITI_BIN_DIR-}/ziti-router${ZITI_EXE_SUFFIX}" run "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" > "${ZITI_HOME_OS_SPECIFIC}/${ZITI_EDGE_ROUTER_RAWNAME}.log" 2>&1 &) echo "Express setup complete!" } @@ -464,7 +470,7 @@ function pki_client_server { if ! test -f "${ZITI_PKI}/${ZITI_CA_NAME_local}/keys/${name_local}-server.key"; then echo "Creating server cert from ca: ${ZITI_CA_NAME_local} for ${name_local}" - "${ZITI_BIN_DIR-}/ziti" pki create server --pki-root="${ZITI_PKI}" --ca-name "${ZITI_CA_NAME_local}" \ + "${ZITI_BIN_DIR-}/ziti${ZITI_EXE_SUFFIX}" pki create server --pki-root="${ZITI_PKI_OS_SPECIFIC}" --ca-name "${ZITI_CA_NAME_local}" \ --server-file "${name_local}-server" \ --dns "${name_local},localhost" --ip "${ip_local}" \ --server-name "${name_local} server certificate" @@ -475,7 +481,7 @@ function pki_client_server { if ! test -f "${ZITI_PKI}/${ZITI_CA_NAME_local}/keys/${name_local}-client.key"; then echo "Creating client cert from ca: ${ZITI_CA_NAME_local} for ${name_local}" - "${ZITI_BIN_DIR-}/ziti" pki create client --pki-root="${ZITI_PKI}" --ca-name "${ZITI_CA_NAME_local}" \ + "${ZITI_BIN_DIR-}/ziti${ZITI_EXE_SUFFIX}" pki create client --pki-root="${ZITI_PKI_OS_SPECIFIC}" --ca-name "${ZITI_CA_NAME_local}" \ --client-file "${name_local}-client" \ --key-file "${name_local}-server" \ --client-name "${name_local}" @@ -487,24 +493,24 @@ function pki_client_server { } function pki_create_ca { - if ! test -f "${ZITI_PKI}/${1}/keys/${1}.key"; then - echo "Creating CA: ${1}" - "${ZITI_BIN_DIR-}/ziti" pki create ca --pki-root="${ZITI_PKI}" --ca-file="${1}" --ca-name="${1} Root CA" + cert=$1 + + echo "Creating CA: ${cert}" + if ! test -f "${ZITI_PKI}/${cert}/keys/${cert}.key"; then + "${ZITI_BIN_DIR}/ziti${ZITI_EXE_SUFFIX}" pki create ca --pki-root="${ZITI_PKI_OS_SPECIFIC}" --ca-file="${cert}" --ca-name="${cert} Root CA" else - echo "Creating CA: ${1}" echo "key exists" fi echo " " } function pki_create_intermediate { + echo "Creating intermediate: ${1} ${2} ${3}" if ! test -f "${ZITI_PKI}/${2}/keys/${2}.key"; then - echo "Creating intermediate: ${1} ${2} ${3}" - "${ZITI_BIN_DIR-}/ziti" pki create intermediate --pki-root "${ZITI_PKI}" --ca-name "${1}" \ + "${ZITI_BIN_DIR}/ziti${ZITI_EXE_SUFFIX}" pki create intermediate --pki-root "${ZITI_PKI_OS_SPECIFIC}" --ca-name "${1}" \ --intermediate-name "${2}" \ --intermediate-file "${2}" --max-path-len "${3}" else - echo "Creating intermediate: ${1} ${2} ${3}" echo "key exists" fi echo " " @@ -560,10 +566,10 @@ cat > "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" < "${ZITI_HOME-}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" < "${ZITI_HOME}/${ZITI_EDGE_ROUTER_RAWNAME}.yaml" < "${ZITI_HOME-}/${router_name}.yaml" < "${ziti_home}/${router_name}.yaml" < "${ZITI_HOME-}/identities.yml" < "${ZITI_HOME}/identities.yml" < "${ziti_home}/controller.yaml" <