인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
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
(문자열의 맵) 레이블은 레이블 집합입니다.