Infograb logo
Teleport을 데몬으로 실행하기

Linux 시스템의 비컨테이너화 환경에서는 teleport 바이너리를 systemd를 사용하여 데몬으로 실행하는 것을 권장합니다.
데몬을 사용하면 teleport 프로세스가 제어 터미널 세션이나 부모 프로세스와 상관없이 계속 실행되고 사용 가능하게 유지되며, 추가적인 구성을 통해 더 나은 최적화, uptime, 가용성을 보장할 수 있습니다.

이 가이드에서는 Linux 호스트에서 systemd를 사용하여 Teleport을 데몬으로 설치, 구성 및 시작하는 모범 사례를 설명합니다.

전제 조건

  • Teleport을 설치할 Linux 호스트. 호스트는 systemd를 사용하도록 구성되어야 합니다. 호스트가 systemd를 지원하는지 확인하려면 /sbin/init/lib/systemd/systemd 또는 유사한 경로에 기호 링크되어 있는지 확인하세요:
readlink /sbin/init
/lib/systemd/systemd

Teleport는 /var/lib/teleport 에 데이터를 저장합니다. Auth Service 호스트에서 일반/비관리자가 이 폴더에 접근할 수 없도록 하세요.

1/3단계. Teleport 설치 및 구성

환경에 맞는 적절한 설치 지침을 선택하고 완료하세요.

Linux 서버에 Teleport 설치하기:

  1. Teleport 에디션에 따라 edition를 다음 중 하나로 할당합니다:

    에디션
    Teleport Enterprise Cloudcloud
    Teleport Enterprise (자가 호스팅)enterprise
    Teleport Community Editionoss
  2. 설치할 Teleport 버전을 가져옵니다. 클러스터에서 자동 에이전트 업데이트가 활성화된 경우, 최신 Teleport 버전을 쿼리하여 업데이트된 내용과의 호환성을 확인합니다:

    TELEPORT_DOMAIN=example.teleport.com
    TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/default/version | sed 's/v//')"

    그렇지 않으면, Teleport 클러스터의 버전을 가져옵니다:

    TELEPORT_DOMAIN=example.teleport.com
    TELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/ping | jq -r '.server_version')"
  3. Linux 서버에 Teleport를 설치합니다:

    curl https://cdn.teleport.dev/install-v15.4.11.sh | bash -s ${TELEPORT_VERSION} edition

    설치 스크립트는 Linux 서버에서 패키지 관리자를 감지하고 이를 사용하여 Teleport 바이너리를 설치합니다. 설치를 사용자 정의하려면 설치 가이드에서 Teleport 패키지 리포지토리에 대해 알아보세요.

Teleport을 실행하려면 구성 YAML 파일이 생성되고 구성되어야 합니다. 초기 설치 후에는 구성 파일이 존재하지 않으므로 이를 생성해야 합니다. 이 가이드에서는 기본값을 기반으로 최소한의 Teleport 구성을 사용할 것이며, 운영 환경에서는 요구 사항에 맞게 구성 파일 옵션을 검토하는 것을 권장합니다.

기본 Teleport 구성 파일을 생성하려면 다음 명령을 입력하세요:

sudo teleport configure -o file
Wrote config to file "/etc/teleport.yaml". Now you can start the server. Happy Teleporting!

2/3단계. systemd 서비스 생성 및 구성

teleport 바이너리를 설치하고 Teleport 구성 파일을 만든 후, Teleport 데몬을 생성하고 구성해 보겠습니다.

Systemd는 서비스 데몬을 정의하고 구성하는 데 사용되는 단위 파일을 사용하도록 설계되었습니다. 이 경우 teleport 서비스에 해당합니다. 이 가이드의 나머지 부분에서는 선호하는 설치 방법(패키지 관리자 또는 소스에 따라)으로 teleport 서비스 데몬을 생성하고 구성하는 데 중점을 두겠습니다.

DEM 또는 RPM 패키지 관리자를 사용하여 설치된 패키지에 대한 기본 teleport 데몬 구성을 포함했습니다. 이 데몬이 올바르게 설치되었는지 확인하려면 다음 명령을 입력하세요:

sudo systemctl status teleport

출력은 다음과 유사하며, systemd 구성에 적용된 단위 파일 경로( /lib/systemd/system/teleport.service )가 포함됩니다:

● teleport.service - Teleport Service Loaded: loaded (/lib/systemd/system/teleport.service; disabled; vendor preset: enabled) Active: inactive (dead)

다음 명령을 입력하여 systemd teleport 데몬을 활성화합니다. systemctl 을 사용하여 데몬을 활성화하면 systemd가 데몬을 의존성 트리에 배치하여 Teleport 서비스가 잠재적인 재부팅 후 자동으로 재시작되도록 보장합니다:

sudo systemctl enable teleport

다음으로, 다음 명령을 입력하여 teleport 서비스 데몬을 시작하세요:

sudo systemctl start teleport

서비스 상태를 확인하여 Teleport 데몬이 올바르게 설치되었는지 확인합니다. 다음 명령은 Active: active (running) 상태를 출력합니다:

sudo systemctl status teleport | grep Active
Active: active (running) since Mon 2022-04-18 18:33:41 UTC; 41s ago

Teleport이 필요한 시스템단위 파일을 stdout 으로 출력하여 검토하고 필요한 경우 적용하도록 아래 명령을 입력하세요:

teleport install systemd

출력이 환경에 적합한 구성을 설명하는 경우, 다음 명령을 다시 입력하고 -o 플래그를 사용하여 systemd의 허용된 단위 파일 로드 경로 중 하나에 출력 결과를 파일로 기록하세요. 대부분의 사용 사례에서는 경로 /etc/systemd/system/teleport.service 를 단위 파일에 사용하는 것을 권장합니다:

sudo teleport install systemd -o /etc/systemd/system/teleport.service

systemctl 을 사용하여 teleport 서비스 데몬을 활성화하여 systemd가 이를 의존성 트리에 배치하도록 합니다. 이는 또한 teleport 서비스가 잠재적인 재부팅 시 자동으로 재시작되도록 보장합니다:

sudo systemctl enable teleport

systemctl을 사용하여 teleport 서비스 데몬을 시작합니다:

sudo systemctl start teleport

마지막으로 서비스 데몬의 상태를 확인하여 Teleport 데몬이 올바르게 설치되었는지 확인합니다. 다음 명령은 구성이 올바르게 적용된 경우 Active: active (running) 상태를 출력합니다:

sudo systemctl status teleport | grep Active
Active: active (running) since Mon 2022-04-18 18:33:41 UTC; 41s ago

3/3단계. Teleport 데몬 재시작

Teleport는 우아한 재시작을 지원하여, Teleport 구성을 쉽게 변경하거나 teleport 이진 파일을 업그레이드할 수 있도록 하며 가용성을 희생하지 않습니다.

다음 명령을 실행하여 Teleport 데몬을 우아하게 재시작합니다:

sudo systemctl reload teleport

이것은 우아한 재시작을 수행합니다. 즉, Teleport 데몬은 새로운 들어오는 요청을 처리하기 위해 새로운 프로세스를 포크하며, 기존 클라이언트가 연결을 끊을 때까지 오래된 데몬 프로세스는 계속 실행됩니다(타임아웃은 30시간입니다).

업그레이드

호스트를 최신 버전의 Teleport로 업그레이드하려면 다음과 같이 해야 합니다:

  • 일반적으로 teleport tctl 바이너리를 교체합니다.
  • systemctl reload teleport 를 실행합니다.

Teleport 데몬 명령줄 옵션 이해하기 위한 유닛 파일 구성

teleport install systemd 명령은 생성된 유닛 파일의 매개변수를 엄격하게 정의하고 출력이 기록될 위치를 설정하는 데 사용할 수 있는 여러 선택적 플래그를 포함합니다. 다음 표는 teleport install systemd 명령에서 사용할 수 있는 모든 명령줄 옵션과 그들이 수행하는 작업에 대한 간략한 설명 및 기본 설정을 포함합니다:

플래그설명기본값
--fd-limit서비스에 의해 열 수 있는 최대 파일 설명자의 수, 유닛 파일의 LimitNOFILE 에 정의됩니다.--fd-limit=8192
--env-file구성에 사용될 수 있는 모든 잠재적 변수를 포함하는 시스템 유닛 파일에 의해 정의된 EnvironmentFile 의 경로입니다.--envfile=/etc/default/teleport
--pid-file프로세스 식별 번호를 포함하는 pid 파일의 경로입니다.--pid-file=/run/teleport.pid
--teleport-pathteleport 이진 파일의 전체 경로입니다.--teleport-path=/usr/local/bin/teleport
-o , --output시스템 유닛 파일을 생성하고 저장할 전체 유닛 파일 로드 경로입니다. 이 플래그는 출력을 지정된 파일에 작성하는 데 사용됩니다.--output=/etc/systemd/system/teleport.service

기본 구성을 항상 sudo teleport install systemd -o /etc/systemd/system/teleport.service 명령을 사용하여 생성할 수 있지만, 명령줄 옵션을 사용한 동일한 구성은 아래에 설명되어 있습니다:

sudo teleport install systemd \--fd-limit=8192 \--env-file=/etc/default/teleport \--pid-file=/run/teleport.pid \--teleport-path=/usr/local/bin/teleport \--output=/etc/systemd/system/teleport.service

다음 단계

이 가이드에서는 teleport start 를 systemd 서비스로 실행하는 방법을 보여주었습니다. teleport 이진 파일을 통해 실행할 수 있는 모든 명령은 Teleport CLI Reference를 참조하십시오.

이 가이드에서는 최소 구성을 사용했지만, 프로덕션 Teleport 클러스터의 경우, 우리의 Configuration Reference를 참조해야 합니다.

유닛 파일 구성과 유닛 파일 로드 경로에 대한 정보는 systemd의 systemd.unit 구성에 대한 문서를 참조하십시오.

Teleport 원문 보기