Infograb logo
teleport_installer Terraform 리소스에 대한 참조

사용 예시

# Teleport Installer 리소스

resource "teleport_installer" "example" {
  version = "v1"
  metadata = {
    name        = "example"
    description = "예제 Teleport Installer"
    labels = {
      example = "yes"
    }
  }

  spec = {
    # 이것은 기본 설치 스크립트입니다. Teleport Discovery Service가 가상 머신을 구성하여
    # Teleport를 시작할 때 실행하도록 설치하는 명령을 사용자 정의하려면 편집하십시오.
    script = <<EOF
#!/usr/bin/env sh
set -eu

cdnBaseURL='https://cdn.teleport.dev'
teleportVersion='v{{.MajorVersion}}'
teleportFlavor='teleport-ent' # teleport 또는 teleport-ent
successMessage='Teleport가 설치되어 실행 중입니다.'
teleportArgs='install autodiscover-node --public-proxy-addr={{.PublicProxyAddr}} --teleport-package={{.TeleportPackage}} --repo-channel={{.RepoChannel}} --auto-upgrade={{.AutomaticUpgrades}} --azure-client-id={{.AzureClientID}}'

# shellcheck disable=all
# $HOME 또는 /를 기준 디렉토리로 사용합니다.
tempDir=$(mktemp -d -p $${HOME:-}/)
OS=$(uname -s)
ARCH=$(uname -m)
# shellcheck enable=all

trap 'rm -rf -- "$tempDir"' EXIT

teleportTarballName() {
    if [ $${OS} = "Darwin" ]; then
        echo $${teleportFlavor}-$${teleportVersion}-darwin-universal-bin.tar.gz
        return 0
    fi;

    if [ $${OS} != "Linux" ]; then
        echo "MacOS와 Linux만 지원됩니다." >&2
        return 1
    fi;

    if [ $${ARCH} = "armv7l" ]; then echo "$${teleportFlavor}-$${teleportVersion}-linux-arm-bin.tar.gz"
    elif [ $${ARCH} = "aarch64" ]; then echo "$${teleportFlavor}-$${teleportVersion}-linux-arm64-bin.tar.gz"
    elif [ $${ARCH} = "x86_64" ]; then echo "$${teleportFlavor}-$${teleportVersion}-linux-amd64-bin.tar.gz"
    elif [ $${ARCH} = "i686" ]; then echo "$${teleportFlavor}-$${teleportVersion}-linux-386-bin.tar.gz"
    else
        echo "유효하지 않은 Linux 아키텍처 $${ARCH}입니다." >&2
        return 1
    fi;
}

main() {
    tarballName=$(teleportTarballName)
    echo "Downloading from $${cdnBaseURL}/$${tarballName} and extracting teleport to $${tempDir} ..."
    curl --show-error --fail --location $${cdnBaseURL}/$${tarballName} | tar xzf - -C $${tempDir} $${teleportFlavor}/teleport

    mkdir -p $${tempDir}/bin
    mv $${tempDir}/$${teleportFlavor}/teleport $${tempDir}/bin/teleport
    echo "> $${tempDir}/bin/teleport $${teleportArgs} $@"
    sudo $${tempDir}/bin/teleport $${teleportArgs} $@ && echo $successMessage
}

main $@
EOF
  }
}

스키마

필수

  • spec (속성) 스펙은 리소스 스펙입니다. (중첩 스키마에 대한 내용은 아래 참조)
  • version (문자열) 버전은 리소스 버전입니다.

선택적

  • metadata (속성) 메타데이터는 리소스 메타데이터입니다. (중첩 스키마에 대한 내용은 아래 참조)
  • sub_kind (문자열) SubKind는 선택적 리소스 서브 종류입니다. 현재 이 리소스에는 사용되지 않습니다.

spec 에 대한 중첩 스키마

필수:

  • script (문자열) 스크립트는 설치기 셸 스크립트의 내용을 나타냅니다.

metadata 에 대한 중첩 스키마

필수:

  • name (문자열) 이름은 객체 이름입니다.

선택적:

  • description (문자열) 설명은 객체 설명입니다.
  • expires (문자열) 만료는 시스템의 모든 리소스에 설정할 수 있는 전역 만료 시간 헤더입니다.
  • labels (문자열의 맵) 레이블은 레이블 집합입니다.
Teleport 원문 보기