> 기술 주변기기 > IT산업 > Packer 및 Terraform으로 앱을 쉽게 배포하는 방법

Packer 및 Terraform으로 앱을 쉽게 배포하는 방법

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-02-16 13:12:44
원래의
1011명이 탐색했습니다.

How to Deploy Apps Effortlessly with Packer and Terraform Packer and Terraform : 효율적인 DevOps 배포를위한 강력한 도구

이 기사에서는 오픈 소스 DevOps 도구 Packer 및 Terraform을 사용하여 효율적인 응용 프로그램 배포를 달성하기 위해 인프라 구축 및 관리에 대해 협업하는 방법에 대해 설명합니다.

코어 포인트 :

Packer와 Terraform의 조합 : Packer는 필요한 소프트웨어 및 구성이 포함 된 기계 이미지를 만드는 데 사용되며 Terraform은 이러한 이미지를 사용하여 실제 인프라 (예 : 서버 또는 컨테이너)를 구축합니다.

도전 및 장점 : Packer와 Terraform은 강력하고 유연하지만 효과적으로 사용해야하는 일정량의 기술 지식이 필요하며 구성 파일 및 상태 파일을 신중하게 관리해야하며, 이는 대규모 배치에서 복잡해질 수 있습니다. 그러나 여전히 시간을 절약하고 오류를 줄이며 배포 안정성을 향상시키는 데 여전히 상당한 이점이 있습니다.

Alibaba Cloud는 DevOps에 훌륭한 백서를 발표했습니다. "DevOps는 인프라를 관리하기위한 민첩한 원칙을 단순히 구현하는 것이 아니라 John Willis 및 Damon Edwards를 사용하여 CAM (문화, 자동화, 측정 및 공유)을 DevOps 정의합니다. DevOps는 개발 팀과 운영 팀 간의 협력을 촉진하도록 설계되었습니다. 그러나 DevOps 관행은 대기업에 국한되지 않으며 개발자는 일상 업무에 쉽게 통합 할 수 있습니다. 이 튜토리얼은 소수의 구성 파일 만 사용하여 전체 배포 프로세스를 쉽게 조정하고 Alibaba Cloud Elastic Computing Services (ECS) 인스턴스에서 응용 프로그램을 실행하는 방법을 보여줍니다. Packer 소개 :

Packer는 Hashicorp에서 개발 한 오픈 소스 DevOps 도구입니다. 이 소프트웨어는 크로스 플랫폼 호환 가능하며 여러 이미지를 병렬로 생성 할 수 있습니다. 홈브류를 사용한 설치는 매우 간단합니다. Packer는 사용자 정의 배포를 작성하는 것과 같이 운영 체제 및 응용 프로그램에서 요구하는 추가 소프트웨어가 포함 된 "즉시 사용 가능한"이미지를 만듭니다. 예를 들어, 사용자 정의 PHP 응용 프로그램이 포함 된 데비안 이미지를 쉽게 만들 수 있습니다.
  • Terraform 소개 :
  • 배포는 두 가지 주요 작업으로 구성됩니다. 응용 프로그램을 올바른 환경으로 포장하고 (이미지 생성) 응용 프로그램을 실행하는 인프라 (서버) 생성입니다. Terraform은 Packer와 동일한 원칙을 기반으로 Hashicorp에서 유래하여 단일 TF 형식 프로파일 만 사용하여 Alibaba Cloud에서 인프라를 구축 할 수 있으므로 버전 제어를 용이하게하고 기본 애플리케이션이 어떻게 작동하는지 명확하게 이해합니다. Terraform 설치 및 Alibaba Cloud 공식 제공 업체 구성은 다른 관련 기사를 참조하십시오.
  • 대상 :
  • 이 자습서는 소프트웨어 실행에서 지원 인프라에 이르기까지 모든 것을 다루는 DevOps에서 간단한 PHP 응용 프로그램을 생성하고 배포합니다.

    단계 :

    프로세스를 단순화하기 위해 공항에서 메타 기상 데이터를 얻기 위해 Docker-Compose 기반 애플리케이션을 만들 것입니다 (ICAO 공항 코드를 사용하고 미국 국가 기상청에서 데이터를 얻습니다). 그런 다음 Ubuntu 및 Packer를 사용하여 이미지를 만들고 해당 이미지와 Terraform을 사용하여 인프라를 배포합니다.

    PHP 응용 프로그램 : 편의를 위해, 우리는 상용 응용 프로그램을 제공합니다. 소스 코드 (Index.php, 메타 데이터 디코딩에 대한 2 개의 JavaScript 파일, 소량의 CSS 및 PNG 이미지 포함)를 볼 수 있습니다. 이 앱은 Docker-Compose를 기반으로하며 나중에 Packer를 사용하여 종속성으로 설치합니다. 패커로 이미지를 빌드 :

    컴퓨터에서 ~/metar-app이라는 폴더를 만들고 해당 폴더로 이동하여 다음과 같이 Meta-Build.json이라는 파일을 만듭니다.

    같은 디렉토리에서 다음 내용으로 Base-Setup이라는 파일을 만듭니다.

    이 두 파일을 준비 할 때 를 실행하고 완료되기를 기다립니다. 이를 위해서는 컴퓨터에서 , 및 를 설정해야합니다. 이 단계에서는 ECS 인스턴스를 생성하고 모든 소프트웨어를 설치 한 다음 인스턴스를 중지하고 해당 스냅 샷을 생성하고 마지막으로 전체 시스템의 이미지를 만듭니다. 이미지가 만들어지면 Packer는 를 출력합니다.

    Terraform을 사용하여 인프라를 배포하십시오 :

    이제 동일한 폴더에서 다음 내용으로 main.tf라는 파일을 만듭니다. 같은 디렉토리에서 다음 내용이있는 user-data라는 파일을 만듭니다. 이제 파일 구조가 다음과 같이 보일 것입니다

    run 를 실행 한 다음 실행하여

    를 실행하여 모든 것이 정상인지 확인하고 배포 프로세스를 시작하기 위해 를 실행하십시오.
    {
      "variables": {
        "access_key": "{{env `ALICLOUD_ACCESS_KEY`}}",
        "region": "{{env `ALICLOUD_REGION`}}",
        "secret_key": "{{env `ALICLOUD_SECRET_KEY`}}"
      },
      "builders": [
        {
          "type": "alicloud-ecs",
          "access_key": "{{user `access_key`}}",
          "secret_key": "{{user `secret_key`}}",
          "region":"{{user `region`}}",
          "image_name": "metar_app",
          "source_image": "ubuntu_16_0402_64_20G_alibase_20180409.vhd",
          "ssh_username": "root",
          "instance_type": "ecs.t5-lc1m1.small",
          "internet_charge_type": "PayByTraffic",
          "io_optimized": "true"
        }
      ],
      "provisioners": [
        {
          "type": "shell",
          "script": "base-setup"
        }
      ]
    }
    로그인 후 복사
    인프라가 구축 된 후 TerraForm은 새로 생성 된 ECS 인스턴스의 IP 주소를 예를 들어 다음과 같습니다. 111.111.111.111.111.

    <<> 테스트 : <🎜 🎜> <🎜 🎜> 모든 것이 잘 진행되면 San Sebastian 공항의 최신 기상 보고서 (아름다운 입구 노선이있는 스페인 북부에 위치)를 확인할 수 있습니다.
    #!/usr/bin/env bash
    
    apt-get update && apt-get install -y apt-transport-https ca-certificates curl git-core software-properties-common
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    apt-get update && apt-get install -y docker-ce docker-compose
    curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
    
    mkdir /var/docker
    git clone https://github.com/roura356a/metar.git /var/docker/metar
    로그인 후 복사
    요약 :

    당신은 응용 프로그램의 전체 DevOp 배포를 완료하려는 노력이 거의 없습니다. 이를 통해 유지 보수 릴리스주기, 인프라 업데이트 및 호스트 및 Linux 명령을 직접 처리하지 않고도 시스템 가용성을 향상시킵니다. packer build metar-build.json ALICLOUD_REGION 패커와 테라 형에 대한 질문 : ALICLOUD_ACCESS_KEY에 대해 자주 묻습니다

      Packer와 Terraform의 주요 차이점은 무엇입니까? Packer는 여러 플랫폼에서 동일한 기계 이미지를 만드는 데 사용되며 Terraform은 안전하고 효율적으로 제어 인프라를 빌드, 변경 및 버전 제어하는 ​​데 사용됩니다.
    • Packer는 Terraform과 함께 어떻게 작동합니까? Packer는 기계 이미지를 생성하고 Terraform은 이러한 이미지를 사용하여 인프라를 만듭니다. Packer에서 언제 구성됩니까? TerraForm에서 언제 구성됩니까? Packer의 구성은 일반적으로 시스템 이미지에서 소프트웨어를 설치하고 구성하는 데 사용되며 (인프라가 생성되기 전에) Terraform의 구성은 일반적으로 인프라가 생성 된 후 작업을 수행하는 데 사용됩니다.
    • Terraform없이 Packer를 사용할 수 있습니까?
    • 예. Packer 및 Terraform을 사용하여 응용 프로그램을 배포하는 방법은 ? 먼저 Packer를 사용하여 기계 이미지를 생성 한 다음 TerraForm은 해당 이미지를 사용하여 인프라를 생성하고 마지막으로 응용 프로그램을 새로 생성 된 서버 또는 컨테이너에 배포합니다.
    • 응용 프로그램 배포에 Packer 및 Terraform을 사용하면 어떤 이점이 있습니까? 자동화, 시간을 절약하고, 오류를 줄이고, 신뢰성 및 안정성을 향상시키고, 여러 플랫폼 및 서비스 제공 업체를 지원합니다.
    • 패커와 테라 형식 사용의 한계와 과제는 무엇입니까? 일부 기술 지식이 필요하고 구성 파일 및 상태 파일을주의해서 관리해야하며 모든 플랫폼이나 제공 업체가 모든 기능 및 옵션을 지원하는 것은 아닙니다. Packer와 Terraform을 시작하는 방법은 무엇입니까? 도구를 설치하고 구성 파일을 만듭니다.
    • 패커와 테라 양식은 다른 DevOps 도구와 함께 사용할 수 있습니까?
    • 예. Packer 및 Terraform을 사용하기위한 모범 사례는 무엇입니까? 구성 파일을 간단하고 모듈화하고 버전 제어를 사용하며 구성을 정기적으로 테스트하고 확인하고 일관된 이름 지정 규칙, 문서 구성 및 인프라 설정을 사용합니다.

위 내용은 Packer 및 Terraform으로 앱을 쉽게 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿