Packer and Terraform : 효율적인 DevOps 배포를위한 강력한 도구
코어 포인트 :
Packer와 Terraform의 조합 : Packer는 필요한 소프트웨어 및 구성이 포함 된 기계 이미지를 만드는 데 사용되며 Terraform은 이러한 이미지를 사용하여 실제 인프라 (예 : 서버 또는 컨테이너)를 구축합니다.
Alibaba Cloud는 DevOps에 훌륭한 백서를 발표했습니다. "DevOps는 인프라를 관리하기위한 민첩한 원칙을 단순히 구현하는 것이 아니라 John Willis 및 Damon Edwards를 사용하여 CAM (문화, 자동화, 측정 및 공유)을 DevOps 정의합니다. DevOps는 개발 팀과 운영 팀 간의 협력을 촉진하도록 설계되었습니다. 그러나 DevOps 관행은 대기업에 국한되지 않으며 개발자는 일상 업무에 쉽게 통합 할 수 있습니다. 이 튜토리얼은 소수의 구성 파일 만 사용하여 전체 배포 프로세스를 쉽게 조정하고 Alibaba Cloud Elastic Computing Services (ECS) 인스턴스에서 응용 프로그램을 실행하는 방법을 보여줍니다.
Packer 소개 :
단계 :
PHP 응용 프로그램 :
편의를 위해, 우리는 상용 응용 프로그램을 제공합니다. 소스 코드 (Index.php, 메타 데이터 디코딩에 대한 2 개의 JavaScript 파일, 소량의 CSS 및 PNG 이미지 포함)를 볼 수 있습니다. 이 앱은 Docker-Compose를 기반으로하며 나중에 Packer를 사용하여 종속성으로 설치합니다.
패커로 이미지를 빌드 :
이 두 파일을 준비 할 때 를 실행하고 완료되기를 기다립니다. 이를 위해서는 컴퓨터에서 , 및 를 설정해야합니다. 이 단계에서는 ECS 인스턴스를 생성하고 모든 소프트웨어를 설치 한 다음 인스턴스를 중지하고 해당 스냅 샷을 생성하고 마지막으로 전체 시스템의 이미지를 만듭니다. 이미지가 만들어지면 Packer는 를 출력합니다. Terraform을 사용하여 인프라를 배포하십시오 :
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"
}
]
}
#!/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
packer build metar-build.json
ALICLOUD_REGION
패커와 테라 형에 대한 질문 : ALICLOUD_ACCESS_KEY
에 대해 자주 묻습니다
Packer와 Terraform의 주요 차이점은 무엇입니까? Packer는 여러 플랫폼에서 동일한 기계 이미지를 만드는 데 사용되며 Terraform은 안전하고 효율적으로 제어 인프라를 빌드, 변경 및 버전 제어하는 데 사용됩니다.
위 내용은 Packer 및 Terraform으로 앱을 쉽게 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!