Packer를 사용하여 스냅 샷 생성

패커 란?

Packer 는 HashiCorp가 개발 한 서버 이미징 도구입니다. 서버 이미징; 또는 대안 적으로 불변 인프라 스트럭처; Ansible 또는 Puppet과 같은 런타임 구성 도구의 일반적인 대안입니다. 서버가 일단 배치되면 절대로 서버를 변경하지 않는다는 아이디어를 기반으로합니다. 대신 변경 사항이 포함 된 서버 를 배포 한 다음 이전 서버를 해제하십시오. 따라서 서버 유지 관리가 쉬워지고 많은 컴퓨터에서보다 효율적으로 확장 할 수 있습니다.

Packer는 기본적으로 Vultr을 지원하지 않지만 해당 지원을 추가 하는 플러그인 이 있습니다. Vultr을 지원하는 Packer 설치 지침은 플러그인의 README에서 찾을 수 있습니다. 이 기사의 나머지 부분에서는 Vultr 플러그인뿐만 아니라 Packer가 설치되어 있다고 가정합니다.

작동 원리

Packer의 목적은 이미징 시간과 똑같이 새 서버를 만드는 데 사용할 수있는 서버 이미지 또는 아티팩트를 생성하는 것입니다. Vultr의 경우 이러한 아티팩트를 스냅 샷이라고합니다. 플러그인은 새 VPS를 배포하고 정의 된 프로비저닝을 실행하고 스냅 샷을 생성 한 다음 VPS를 분리하여 작동합니다. 이미지에서 새 서버를 만들려면 Vultr의 API를 호출하여 원하는 스냅 샷을 OS로 사용하여 새 VPS를 배포하면됩니다.

패커 사용

Packer는 입력으로 실행해야하는 빌드를 정의하는 JSON 파일을 사용합니다. 다음은 Vultr 빌드를 정의하는 샘플 파일입니다.

{
  "variables": {
    "vultr_api_key": "{{env `VULTR_API_KEY`}}"
  },
  "builders": [
    {
      "type": "vultr",
      "api_key": "{{user `vultr_api_key`}}",
      "snapshot_description": "My Awesome App",
      "region_id": "2",
      "plan_id": "201",
      "os_id": "167",
      "ssh_username": "root"
    }
  ]
}

이 파일은 두 개의 최상위 키를 가지고 variablesbuilders. 이 variables키는 사용자 정의 변수를 정의하는 데 사용되며,이 경우 VULTR_API_KEY나중에 사용할 수있는 방식으로 환경 변수 를 통합하는 데 사용됩니다. 이 builders키에는 실행할 빌드 목록이 포함되어 있으며이 경우에는 Vultr 빌드 만 있습니다. 그 빌드를 조금 해보자.

  • type: 이것은 실제로 사용할 빌더를 정의하며 Vultr 빌드의 경우 항상 있어야 vultr합니다.
  • api_key: 빌드를 실행하려면 여기에 정의 된 API 키가 필요합니다. 이 예제는이를 vultr_api_key사용자 변수 의 값으로 정의하며 , 이후 VULTR_API_KEY환경 변수 의 값으로 설정됩니다 .
  • snapshot_description: 결과 스냅 샷에 대한 설명입니다.
  • region_id: VPS를 배포 할 지역입니다. 이는 최종 스냅 샷에는 영향을 미치지 않으며 스냅 샷이 작성된 서버에만 영향을줍니다.
  • plan_id: VPS에 사용할 계획입니다. 이 스냅 샷의 향후 사용은 최소한이 계획을 정의해야합니다.
  • os_id: 스냅 샷의 기반이되는 운영 체제.
  • ssh_username: 프로비저닝을 위해 서버에 SSH를 연결할 때 사용되는 사용자 이름입니다. Linux 서버의 경우 일반적으로 root입니다.

사용하려면이 파일을 이름과 같은 이름으로 저장 server.json한 다음 명령을 실행하십시오 packer build server.json. 빌드 상태를 나타내는 몇 가지 출력이 표시되며 몇 분이 걸립니다.

이 빌드를 실행하면 이름 Snapshotting: My Awesome App이 지정된 새 서버 가 만들어지고 스냅 샷 된 다음 삭제됩니다. 프로 비져가 정의되어 있지 않으면 이것이 전부입니다. 프로 비져 정의에 대한 자세한 내용은 Packer 's documentation을 참조하십시오 .

빌드가 완료되면 Packer는 결과 스냅 샷의 ID를 출력합니다.

지역, 계획 및 OS 정의

이 세 가지 값은 모든 Vultr 빌드에 필요하지만 여러 가지 방법 중 하나로 정의 할 수 있습니다. 각각에 대해 모호성을 피하기 위해 변형 중 하나를 정확하게 지정해야합니다.

부위

지역 정보는 API를 통해 문의 할 수 있습니다 : https://www.vultr.com/api/#regions_region_list

  • region_id: 지역의 ID (예 : 2
  • region_code: 지역 코드, 예 : ORD

계획

API를 통해 계획 정보를 쿼리 할 수 ​​있습니다 : https://www.vultr.com/api/#plans_plan_list

  • plan_id: 계획의 ID (예 : 201

OS

운영 체제 정보는 API를 통해 쿼리 할 수 ​​있습니다 : https://www.vultr.com/api/#os_os_list

  • os_id: OS의 ID 167


Leave a Comment

CentOS 7에서 Windows Server와 함께 사용할 수 있도록 Ansible을 설치 및 구성하는 방법

CentOS 7에서 Windows Server와 함께 사용할 수 있도록 Ansible을 설치 및 구성하는 방법

다른 시스템을 사용하십니까? Ansible은 작업 자동화를위한 오픈 소스 도구입니다. Linux 및 Windows 서버의 구성을 관리합니다. 작동합니다

Ubuntu 18.04에 Strider CD를 설치하는 방법

Ubuntu 18.04에 Strider CD를 설치하는 방법

소개 Strider CD는 오픈 소스 연속 배포 플랫폼입니다. 애플리케이션은 Node.js로 작성되었으며 MongoDB를 스토리지 백엔드로 사용합니다. 보폭

Vultr로드 밸런서

Vultr로드 밸런서

로드 밸런서 란 무엇입니까로드 밸런서는 애플리케이션 앞에 앉아 애플리케이션의 여러 인스턴스에 들어오는 트래픽을 분산시킵니다. Fo

우분투 17.04에서 SaltStack 시작하기

우분투 17.04에서 SaltStack 시작하기

SaltStack은 구성 파일, 배포 및 기타 모든 요소의 자동화에 최적화 된 Python 기반 구성 관리 프로그램입니다.

Chef-solo를 사용하여 우분투에서 Django 앱 구성

Chef-solo를 사용하여 우분투에서 Django 앱 구성

상자 설정 및 구성 프로세스를 자동화하는 방법에는 여러 가지가 있습니다. 어떤 이유로 든이 시점에서 전체 시스템이

CentOS 7에 Jenkins를 설치하는 방법

CentOS 7에 Jenkins를 설치하는 방법

Jenkins는 프로젝트 개발, 배포 및 자동화에 널리 사용되는 널리 사용되는 오픈 소스 CI (Continuous Integration) 도구입니다. 이 기사는

CentOS 7에서 Concourse CI를 설치 및 구성하는 방법

CentOS 7에서 Concourse CI를 설치 및 구성하는 방법

다른 시스템을 사용하십니까? 소개 Continuous Integration은 개발자가 자주 병합 할 수있는 DevOps 소프트웨어 개발 실습입니다

Ubuntu 16.04에서 Concourse CI를 설치 및 구성하는 방법

Ubuntu 16.04에서 Concourse CI를 설치 및 구성하는 방법

다른 시스템을 사용하십니까? 소개 Continuous Integration은 개발자가 자주 병합 할 수있는 DevOps 소프트웨어 개발 실습입니다

CentOS 7에 SaltStack을 설치하는 방법

CentOS 7에 SaltStack을 설치하는 방법

SaltStack 또는 Salt는 원격 실행, 구성 관리, 대구를 구현하는 데 사용할 수있는 널리 사용되는 오픈 소스 구성 관리 솔루션입니다.

우분투 17.04에서 기둥과 함께 SaltStack 사용

우분투 17.04에서 기둥과 함께 SaltStack 사용

SaltStack은 많은 서버에서 동시에 작업을 실행하는 데 유용한 도구이지만 호스트에 정의 된 구성 사전 설정도 지원합니다.

CentOS 7에서 GoCD를 설치하고 구성하는 방법

CentOS 7에서 GoCD를 설치하고 구성하는 방법

다른 시스템을 사용하십니까? GoCD는 오픈 소스 연속 전달 및 자동화 시스템입니다. 병렬을 사용하여 복잡한 워크 플로우를 모델링 할 수 있습니다.

Ubuntu 18.04에 Drone CI를 설치하는 방법

Ubuntu 18.04에 Drone CI를 설치하는 방법

소개 Drone은 자체 인프라에서 실행되는 자동화 된 지속적인 테스트 및 제공 플랫폼입니다. 드론은 모든 언어, 서비스 지원

Windows Server와 함께 사용할 수 있도록 Debian 9에서 Ansible을 설치하고 구성하는 방법

Windows Server와 함께 사용할 수 있도록 Debian 9에서 Ansible을 설치하고 구성하는 방법

다른 시스템을 사용하십니까? Ansible은 작업 자동화를위한 오픈 소스 도구입니다. Linux 및 Windows 서버의 구성을 관리합니다. 작동합니다

Windows에서 Chocolatey Package Manager 사용

Windows에서 Chocolatey Package Manager 사용

소개 Chocolatey는 Linux에서 Windows로 소프트웨어 및 종속성을 쉽게 관리 할 수있는 패키지 관리 기능을 제공합니다. 빠르고 쉽게 할 수 있습니다

CentOS 7에 Foreman을 설치하는 방법

CentOS 7에 Foreman을 설치하는 방법

다른 시스템을 사용하십니까? Foreman은 실제 및 가상 서버의 구성 및 관리를 도와주는 무료 오픈 소스 도구입니다. 이마

Ubuntu 16.04 LTS에 Foreman을 설치하는 방법

Ubuntu 16.04 LTS에 Foreman을 설치하는 방법

다른 시스템을 사용하십니까? Foreman은 실제 및 가상 서버의 구성 및 관리를 도와주는 무료 오픈 소스 도구입니다. 이마

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 업데이트로 Windows 사용자 지정 ISO를 만드는 방법

NTLite를 사용하여 Vultr 시스템과 호환되는 Windows 사용자 지정 ISO를 만드는 방법을 단계별로 설명합니다. 최신 드라이버와 업데이트 통합을 포함한 완벽 가이드.

Vultr에서 BGP 구성

Vultr에서 BGP 구성

Vultr BGP 설정을 위한 단계별 튜토리얼. ASN 할당부터 IP 라우팅 구성, BIRD 데몬 설정, FreeBSD 특이사항 및 실전 문제 해결 팁 7가지 포함한 최종 가이드

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WsgiDAV를 사용하여 Debian 10에 WebDAV 배포

WebDAV (Web Distributed Authoring and Versioning)를 이용한 원격 파일 작성을 위한 프레임워크로, WsgiDAV 설치 및 구성 방법을 안내합니다.

데비안 7에 Mailcow 설치

데비안 7에 Mailcow 설치

Mailcow는 DoveCot, Postfix 및 기타 여러 오픈 소스 패키지를 기반으로 하는 경량 메일 서버입니다. 데비안에서 Mailcow 설치 방법을 안내합니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구