>백엔드 개발 >PHP 튜토리얼 >Hashicorp ' s Packer- PHP 개발자에게 어떤 것입니까?

Hashicorp ' s Packer- PHP 개발자에게 어떤 것입니까?

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌원래의
2025-02-10 16:02:09317검색

PACKER : PHP 개발자 도구 상자의 강력한 도구? 그것은 당신에게 달려 있습니다!

Hashicorp's Packer - Is It Something for PHP Developers?

요컨대 : PHP 개발자로서 Packer는 도구 상자의 필수 도구입니까? 답은 당신이 일하는 것에 달려 있습니다.

서버 측 작업 (클라이언트 또는 회사의 경우)에 참여하고 동시에 개발 작업을 수행하는 경우 대답은 예입니다. 패커는 당신을 매우 도울 수 있습니다. Hashicorp's Packer - Is It Something for PHP Developers? 그러나 개발자 일뿐 아니라 서버 측 작업을 직접 처리하지 않는다면 Packer는 많은 도움이되지 않습니다.

그럼에도 불구하고, 서버 환경을 만드는 기본 사항을 배우는 것은 모든 PHP 개발자에게 큰 도움이 될 것입니다. 당신은 당신의 경력 전반에 걸쳐 이러한 기술을 어느 정도 만날 것입니다 (당신이 창조하는 모든 것이 그들 위에 실행됩니다!). 이러한 전문 지식을 마스터하면 의심 할 여지없이 경력 전망이 향상됩니다! 적어도 DevOps 동료의 작업을 더 잘 이해할 것입니다.

이에 관심이 있거나 종종 수동 서버 측 작업을 수행하는 경우 계속 읽으십시오.

키 포인트 :

Packer 적용 가능성 : Packer는 특히 서버 관리 및 개발 작업에 관여하는 PHP 개발자에게 특히 유용하여 일관된 서버 환경의 생성을 단순화하는 데 도움이됩니다.

개발 자율성 : 현대 컴퓨팅 기술의 발전으로 개발자는 개인 장치에서 복잡한 개발 환경을 직접 관리 할 수 ​​있도록하여 자율성을 향상시키고 개발 및 생산 환경 간의 일관성을 향상시킬 수 있습니다.

Vagrant와의 통합 : Packer 및 Vagrant는 개발 환경을 향상 시키지만 Packer의 고유 한 기능은 다양한 플랫폼에서 사용할 수있는 기계 이미지를 자동으로 작성하여 환경 설정 시간을 절약하는 것입니다.

DevOps 협업 : Packer는 DevOps 전문가에게 개발 팀에 생산 조정 환경을 제공하고 개발 프로세스를 단순화하며 설정 오류를 줄이는 도구를 제공합니다.

실용적 조치 :이 기사는 패커 설정 및이를 사용하여 가상 머신 이미지를 만들기위한 실질적인 자습서를 제공하여 복잡한 구성 작업을 효율적으로 처리 할 수있는 패커의 능력을 보여줍니다.

미래 개발 : Packer와 같은 도구를 사용하는 법을 배우는 것은 현재 프로젝트 요구를 충족시킬뿐만 아니라 미래의 다른 팀과의 기술 통합 및 협업을 준비 할 수 있습니다. Hashicorp's Packer - Is It Something for PHP Developers?

되돌아 보면 : 짧은 #2 : Vagrant가 능숙하고 도구로서의 목적을 이해한다면이 기사 의이 부분으로 건너 뛰십시오.

불과 10 년 전, PHP 응용 프로그램의 개발은 기본적으로 다음과 같습니다. 개발자는 FTP를 통해 웹 서버에 일부 코드를 업로드 한 다음 작동하는지 확인했습니다. 작동하지 않으면 문제를 해결하고 텍스트 편집기를 변경하고 FTP를 통해 영향을받는 파일을 다시로드 한 다음 변경 사항이 문제를 해결하는지 확인하십시오. 그렇다면 다음 기능이나 문제로 진행하여 프로세스를 반복합니다 (방금 완료 한 작업에 오류가 없도록기도합니다). 또한 FTP 동기화를 수행 할 수도 있습니다.

이것은 당시 코드를 개발 서버 (또는 프로덕션 서버에 직접 더 나쁜)로 푸시하는 평균 독립 PHP 개발자의 워크 플로입니다 (실제로 일부 개발자는 여전히 동일한 프로세스를 사용합니다). 당시 웹 서버 자체를 구축하는 것은 일반적으로 다른 사람의 직업이었습니다.

또한, 과거가 너무 멀지 않은 경우, 개발 팀이 함께 일하기 위해서는 어떤 형태의 동시 버전 제어 시스템이있을 수 있으며, 팀은 자동 배포를 설정할 수도 있습니다. 리포지토리에 대한 변경 사항이 변경되면 스테이징 또는 생산 시스템에 자동으로 배포됩니다. 이 상황은 실제로 당시 웹 애플리케이션 개발을위한 최고의 기술이었습니다.

그 멋진 옛날에는 지속적인 통합이라는 용어, 가상 머신, 클라우드 컴퓨팅, 인프라 오케스트레이션, 데이터 센터 자동화 및 "DevOps"라는 용어는 기본적으로 알려져 있지 않습니다. 그들은 방금 태어났습니다. 아마존은 방금 인터넷 서비스 사업을 시작했습니다. 이것은 단지 10 년 전 이었다는 것을 기억하십시오!

아, 시간이 얼마나 단순 했습니까?

아니요, 그렇지 않습니다. 당시 개발은 느리고 번거롭고 오류가 발생하기 쉬웠습니다. 서버는 항상 테스트를 위해 "활성화"해야합니다. 이는 일반적으로 개발자가 "Networker"에 최신 PHP 버전과 같이 사용할 수있는 서버가 준비 될 때까지 기다려야한다는 것을 의미합니다. 많은 경우에, 이것은 종종 전투이며, "네트워커"의 경우 서버를 "운영"하는 것은 불을 피우는 것과 같습니다.

오늘날 컴퓨팅 및 가상화 : 이제, 컴퓨터 기술을 통해 손끝에서 개발자는보다 복잡한 개발 인프라를 수행 할 수 있습니다. 오늘날 랩톱 또는 PC의 컴퓨팅 성능은 10 년 전 웹 서버보다 훨씬 큽니다.

사실, 오늘날 우리가 가진 많은 스마트 폰은 10 년 전의 서버보다 강력합니다.

기술은 놀랍지 않습니까?

가용 전력이 증가함에 따라 점점 더 많은 사람들 이이 컴퓨팅 성능이 별도의 "기계"로 분해 될 수 있다는 것을 깨닫기 시작했습니다. 이를 통해 동시에 완전히 다른 작업을 수행 할 수 있습니다. 더 중요한 것은 컴퓨팅 전력을 더 잘 활용하여 자원을 절약 할 수 있다는 것입니다. 이것들은 컴퓨팅 파워 가상화의 주요 동인입니다. Hashicorp's Packer - Is It Something for PHP Developers? 다시 말해서, 오늘날, 가상 머신을 만들 수있는 능력으로 개발자는 더 이상 올바른 작업 환경을 제공 해야하는 다른 사람들에게는 자체 개발 환경을 전달할 수 있습니다. 더 중요한 것은 로컬에서 완전한 개발 환경을 구축하고 완전한 웹 서버를 시뮬레이션 할 수 있다는 것입니다.

이것은 개발자를 더 자율적으로 만들뿐만 아니라,이 지역 개발 환경은 또 다른 큰 이점을 가지고 있습니다. 이는 "개발 생산 일관성"이라고 불립니다. 우리는 초보자 친화적 인 책 "Jump Start PHP 환경"에 있습니다. 개발 생산 일관성은 기본적으로 개발자가 애플리케이션이 결국 생산 환경에 배치되는 것과 거의 동일한 시스템에서 개발할 수 있음을 의미합니다.

생산 일관성 장점 - 개발자는 처음으로 올바른 방식으로 올바른 일을 할 수 있기 때문에 고품질 코드를 작성할 수 있습니다. Hashicorp's Packer - Is It Something for PHP Developers?

이제 개발자는 매우 복잡한 개발 환경을 포함하여 배낭에서 매우 복잡한 응용 프로그램을 개발하는 데 필요한 모든 것을 가질 수 있습니다.
분명히이 능력은 복잡성을 가져옵니다. 가상 서버를 구축해야하며 소프트웨어를 설치하고 구성해야합니다. 이 모든 것은 매우 시간이 많이 걸릴 수 있으며 시간은 돈입니다. 이것은 또한 개발자가 그러한 환경을 운영하기 위해 많은 것을 배워야 할 수도 있음을 의미합니다. 이것은 또한 시간이 많이 걸립니다.

Vagrant의 외관 : Hashicorp Inc.는 개발자가 개발 환경의 "건물"을 완성하도록 돕기 위해 Vagrant라는 프로그램을 시작했습니다. Vagrant의 개발 환경 구성은 쉽게 공유, 롤백 및 전진 할 수있는 코드입니다. 개발자는 서버가 설정하는 데 몇 시간이 걸릴 수 있다고 걱정하지 않고 최신 버전의 PHP와 같은 새로운 것을 자유롭게 시도 할 수 있습니다. 개발자는 누구나이 환경을 조성 할 때까지 기다릴 필요가 없으며 환경이 완전히 충돌하면 아무도 귀찮게하지 않습니다.

Vagrant에 대한 추가 정보 - Vagrant에 대한 재 도입 : php 를 사용하는 올바른 방법

그러나 그러나 여전히 해결해야 할 또 다른 문제가 있습니다. Vagrant는 개발 환경을 구축하는 데 적합하지만 특히 많은 구성으로 실행하는 것이 시간이 소요됩니다 (구성에 대한 자세한 내용은 아래 참조). 관련된 소프트웨어에 따라 상자를 만들고 소프트웨어를 구성하는 데 2 ​​분에서 20 분 사이에 걸릴 수 있습니다.

이 시간 소비는 또한 Vagrant가 한 번에 단일 가상화 시스템 ( "제공자"라고 함)에 대한 단일 상자 만 구축 할 수 있다는 사실을 악화시킵니다. 예를 들어, 환경을 로컬로 구축하고 AWS에서 환경을 구축하려면 두 개의 다른 Vagrant 파일을 만들어 별도로 실행해야합니다. 이것은 실제로 실용적이지 않습니다. 요컨대, Vagrant는 단일 개발 환경을 구축하는 데 매우 능숙합니다.

패커의 모양 : 계속하려면 이제 더 많은 DevOps 역할을 수행해야합니다. Packer는 가상화 된 머신 이미지를 비교적 간단한 중앙 구성으로 만들기 때문에 자동화 된 개발 환경에서 Vagrant와 동일한 이점을 얻을 수 있지만 이제 기본 이미지를 개발하는 데 사용할 수도 있습니다.

가상 머신 이미지를 가상 장치라고도합니다. 새로운 가상 머신을 생성하는 데 사용할 수있는 가상 머신의 사전 구축 사본입니다. Vagrant 용어 로이 이미지를 "상자"라고합니다.

자신의 거울을 만드는 과정을 이해한다면 수동 작업이 매우 번거 롭다는 것을 알게 될 것입니다. 모르는 경우, 수동으로 건축의 번거 로움을 건너 뛸 수 있기 때문에 운이 좋으며 이제 패커를 사용할 수 있습니다. 그러나 여전히 거울/서버 빌딩의 기본 사항을 배워야합니다. 다시 말하지만, 이것은 개발자에게 귀중한 지식이며 모든 개발자는 기본 사항을 배우는 데 시간이 걸립니다.

Packer를 사용하기 시작하고 이미 Vagrant를 사용하고 있다면, 첫 번째 질문은 "Packer와 Vagrant의 차이점은 무엇입니까?" 궁극적으로 Packer는 Vagrant가 개발 환경을 구축하는 데 사용할 수있는 이미지를 만듭니다. 이전에 Hashicorp의 Vagrant Box를 사용한 경우 Packer와 함께 제작되었을 가능성이 높습니다.

Packer를 사용하는 DevOps 사람으로서 개발 팀에 쉽게 개발할 수있는 생산 환경의 이미지를 제공 할 수 있습니다. 이는 다시 개발 생산 일관성을 지원하고 개발 프로세스를 단순화합니다.

우리는 전에 시간을 절약 할 수있었습니다. 패커는 또한 이러한 이미지를 병렬로 빌드하고 배포 할 수도 있습니다. 따라서 다른 호스트, 프라이빗 클라우드 및 Vagrant의 이미지를 거의 동시에 만들 수 있습니다. 또한,이 "사전 구운"거울은 Vagrant로 구성된 상자보다 훨씬 빠르게 시작됩니다. 훨씬 더 빨리! 팀이 "활성화 된"및 파괴 된 상자, 사전 구운 소프트웨어 및 Packer로 만든 구성 이미지는 팀이 많은 시간을 절약 할 수 있습니다.

Packer 프로세스는 또한 기본 이미지를 반복 할 수있게합니다. 이는 VM의 이미지 재구성을 미리 테스트하고 자동화 할 수 있으므로 생산 시스템의 품질이 높다는 것을 의미합니다. 다시 말해, 패커는 인간의 오류를 줄이는 데 도움이됩니다.

거울을 만들 때 여러 하위 프로세스를 제어 할 수도 있습니다. 나중에 논의하겠습니다. Packer 개념 및 기능에 대한 자세한 내용은 Packer Documentation에서 읽을 수 있습니다. 여러 플랫폼에 대한 이미지를 빌드 할 수 있습니다. 또한 요리사, 꼭두각시, Ansible) 또는 쉘 스크립트 구성 소프트웨어와 같은 많은 구성 프로그램을 사용할 수도 있습니다. 또한, 방해 같은 상자 생성 또는 Docker Registry (및 더 많은)에 이미지를 푸시하는 등 후 처리를 수행 할 수 있습니다.

와우 ... 이론이 너무 많지 않습니까?

패커의 개념과 사용 방법을 명확히하기 위해 실용적인 일을하자.

일부 패커 워크 플로 : 이것은 우리가 할 일을 시각적으로 표현한 것입니다.

Packer는 Vagrant가 이미지를 생성 할 필요가 없지만 Vagrant는 위의 그래프에 추가되어 "파이프"의 위치를 ​​더 잘 이해할 수 있습니다.

Packer의 기본 사항을 배우기 위해 다음 연습의 목표는 랙 스페이스에서 실행될 수있는 이미지와 가상 상자 "상자"파일을 만드는 것입니다. 목표는 (이론적) 프로덕션 서버에서 개발 및 사용을위한 동일한 이미지 및 구성을 생성 할 수 있음을 보여주는 것입니다.

우리는 Compute Infrastructure를 관리하기위한 매우 간단한 백엔드가 있고 인프라 관리를위한 표준 시스템 인 OpenStack을 사용하기 때문에 RackSpace를 사용합니다.

우리는 또한 무료로 널리 사용되는 로컬 가상화 시스템이기 때문에 VirtualBox를 사용합니다. 원하는 경우 AWS 및 VMware와 같은 다른 시스템을 사용할 수 있지만 두 시스템 모두에 대해 특별히 제작 되었으므로이 자료에 제공된 자료를 수정해야합니다.

참고 :이 기사에서 구축 한 가상 서버는 결코 "생산 준비"가 아닙니다. 그것들은 데모 목적으로만을위한 것입니다.

패키퍼와 함께 빌드 할 초기 이미지는 Nginx 및 PHP7이 사전 설치된 Debian Jessie (64 비트) 이미지입니다.

요구 사항 : 시작하기 전에 컴퓨터에 Vagrant 및 Virtualization Software VirtualBox (버전 5.0)를 설치해야합니다. 64 비트 컴퓨터도 필요합니다. Windows 시스템을 사용하는 경우 Bash 콘솔을 사용할 수 있도록 Windows 용 Git을 설치해야합니다.

위에서 언급 한 바와 같이, 우리는이 튜토리얼에서 rackspace를 사용하므로 계정을 만들어야합니다. 계정을 설정하는 것은 비교적 빠르고 쉽습니다.

virtualbox는 매우 큰 이미지 다운로드 (약 250MB)를 구축하기 때문에 비교적 빠른 인터넷 연결이 필요합니다. 마지막으로 컴퓨터에 전체 프로세스를 완료하려면 약 12GB의 무료 디스크 공간이 있어야합니다.

이 기사는 또한 Vagrant, SSH 및 Shell Commands 사용에 대한 기본 지식을 알고 있으며 Linux 및 Virtual Machines에 대한 기본 지식이 있다고 가정합니다.

패키지를 실행하기 위해 컴퓨터를 설정하십시오 지침을 따라 컴퓨터에 패커를 설치하십시오.

글을 쓰는 시점에서 Packer 0.11.0이 방금 출시되었습니다.

설치가 완료된 후 (Git Bash) 콘솔에 패킷을 입력하십시오. 당신은 이와 같은 것을보아야합니다.

이제 우리는 랙 스페이스로 가서 서버를 시작하고 기본 이미지를 만듭니다. 참고 : Builder 플랫폼의 클라우드 호스트로 AWS 또는 기타 패커 지원이있는 경우 수행해야 할 단계가 비슷합니다. 이 튜토리얼에서 Rackspace를 소개합니다. 또한 서버를 작성하면 호스트 계정에 요금이 부과됩니다. 그러나 금액은 적을 것입니다. 이 튜토리얼을 따르는 비용은 1 달러를 초과해서는 안됩니다.

Jessie 8 서버를 계속 구축하고 "Packer Test"이름을 지정하십시오. Rackspace는 매우 직관적이고 이해하기 쉽습니다. 1GB 서버를 시작하여 이미지를 생성하십시오.

Hashicorp's Packer - Is It Something for PHP Developers? 서버가 활성화 된 후 새로 생성 된 서버 (오른쪽 상단의 "작동"버튼)의 미러를 만듭니다. 이미지를 작성하고 저장 한 후 서버를 삭제할 수 있습니다.

"Server- & gt; Mirror"로 이동하면 새 이미지를 볼 수 있습니다. 클릭하여 거울의 세부 정보 페이지로 이동하십시오. 거울 ID가 필요합니다.

좋아요. 랙 스페이스에서 기본 이미지를 사용할 준비가되었으므로 자체 이미지를 만들기 시작합니다. 이 프로세스는 실제로 매우 복잡합니다. 특히 서버 환경 및 패커에 대한 지식이 제한적인 사람들에게는 매우 복잡합니다. 따라서 도움을 제공하기 위해 다운로드 할 수있는 데모 패커 리포지토리를 만들었습니다. 이 저장소를 (Git Bash) 콘솔에서 복제하십시오.

Hashicorp's Packer - Is It Something for PHP Developers? 새로 생성 된 "PHP-Packer-Demo"디렉토리로 이동합니다.

좋아하는 편집기를 사용하여 jessie64.json 파일을 열고 rackspace 사용자 자격 증명 및 미러 ID를 입력하십시오.

<code>git clone https://github.com/smolinari/PHP-Packer-Demo
</code>

Quick Sidenote : 암호 대신 랙 스페이스 API 키를 추가 할 수도 있습니다. 실제로 Packer를 사용하기 시작하면 액세스 자격 증명을 이동하여 파일을 별도로 사용하여 GIT를 사용하여 무시할 수도 있습니다. 그러나 그렇게하는 것은이 기사의 범위를 벗어납니다.

jessie64.json 파일은 Packer의 핵심입니다. 이것은 동작을 수행하도록 패커를 제어하는 ​​구성 파일입니다. Vagrant에 사용되는 Vagrantfile과 유사합니다 (다운로드에서 Vagrantfile도 제공합니다).
<code>cd PHP-Packer-Demo
</code>
이제 다음 명령으로 패커를 실행하십시오.

이 빌드 프로세스는 몇 분이 걸립니다. 우리는 튜토리얼을 작업하고 있기 때문에 실제로 Packer 내부에서 무슨 일이 일어나고 있는지 이해해 봅시다. 이 프로세스는 약 30 분을 초과하지 않거나 콘솔의 출력이 10 분 이상 중지되지 않아야합니다. 이것이 사실이라면 오류가 발생했습니다.

Hashicorp's Packer - Is It Something for PHP Developers?

빌더 먼저, Packer는 우리가 정의한 기본 이미지를 사용하여 빌드 프로세스를 시작합니다. 이 이미지는 서버 자체로 시작되며 Jessie64.json 파일에서 이러한 서버를 정의합니다. Jessie64.json 파일 상단에서 "Builder"의 특정 JSON 값을 찾을 수 있습니다.

빌더는 원하는 거울을 타겟팅하는 환경과 호환 할 책임이 있습니다. 예를 들어, AWS AMI를 사용하면 실제로 Vagrant 및 AWS와 함께 사용할 VirtualBox 이미지를 빌드 할 수 있습니다.

우리의 운동에서 우리는 "OpenStack"과 "VirtualBox-Iso"이미지를 결합하고 있습니다. 불행히도 Packer는 OpenStack 이미지를 사용하여 VirtualBox 이미지를 빌드 할 수 없으므로 VirtualBox 이미지도 만들었습니다.

위의 JSON 코드에 "boot_command"섹션이 표시됩니다. 여기에서는 실제로 Debian Jessie 8을 VirtualBox VM의 운영 체제로 설치하는 데 필요한 명령을 입력하기 위해 자동화에 있습니다. Packer가 구축 될 때는 FAMEBOX에서 설치 프로세스를 볼 수도 있습니다.

물론, 여기에는 많은 "마법"이 일어나고 있습니다. 이러한 가상 상자 이미지를 수동으로 결합하기 위해 Linux 설치의 내부 메커니즘과 Packer의 내부 메커니즘을 실제로 이해해야합니다. 고맙게도, 그러한 Packer .json 파일을 대중에게 제공하는 훌륭한 DevOps 사람들이 많이 있습니다.

구성 프로그램 빌더가 랙 스페이스 및 virtualbox의 VM에서 이미지를 시작하면 Packer는 Shell 스크립트에 정의 된 소프트웨어 구성을 시작합니다. Packer를 사용하면 Puppet, Chef 또는 Ansible과 같은 시스템 및 기타 많은 시스템을 사용하여 구성을 조정할 수 있습니다. 우리는 쉘 스크립트 만 사용하므로 /스크립트 디렉토리에서 이러한 스크립트를 찾을 수 있습니다.

이것은 구성 파일의 구성 부분입니다.

"파일"구성 프로그램은 VM에 구성을 추가하는 방법입니다. 컴퓨터의 구성 파일을 VM의 /TMP 디렉토리에로드합니다. 구성 프로세스 중에 쉘 스크립트에 구성 파일을 VM의 올바른 위치로 복사하는 몇 가지 명령이 있습니다. Nginx의 "Default"구성 파일 또는 수정 된 Php와 같은 php.ini 파일이 있습니다. /transfer_files 폴더에서 사용중인 파일을 찾을 수 있습니다.

위의 "재정의"섹션도 알 수 있습니다. 이것은 Packer에게 각 이미지 빌드에 대해 특정 스크립트를 실행하도록 지시합니다. 우리의 연습에서는 "OpenStack"이미지에서 처리를 덜 수행하여 VirtualBox 이미지와 "일관성"으로 만들어야하므로 Setup.sh 스크립트 만 처리합니다.

마지막으로, 사후 구성 프로세서 부분이 있습니다.

이것은 실제로 Vagrant Box를 만드는 일을 담당합니다.

지금 우리가 구성하는 모든 것이 거울에 "사전 구워"라는 것을 기억하는 것이 중요합니다. Packer는이 자동화로 우리 (또는 우리의 개발 팀)를 많은 시간을 절약합니다!

<code>git clone https://github.com/smolinari/PHP-Packer-Demo
</code>
내장 이미지 Packer가 Jessie64.json 파일에서 구성한 모든 소프트웨어를 구성한 후 VMS를 닫고 해당 VMS의 새로운 이미지를 저장합니다. 랙 스페이스 이미지의 경우 랙 스페이스 관리 제어판의 저장된 이미지 섹션에 새 이미지가 있습니다. VirtualBox 이미지의 경우 현재 디렉토리에 "Jessie64.box"파일이 있습니다.

<.> 그게 다야. Packer는 그 일을했습니다!

지금 무엇을해야합니까?

이제 rackspace 이미지를 사용하여 새 서버를 만들 수 있습니다. 시도해보십시오. 서버 섹션으로 이동하여 서버 생성을 선택한 다음 저장된 미러로 이동하십시오. 삭제 된 서버에서 새로 저장된 이미지가 표시되어야합니다. 그것을 선택하고 서버를 시작하십시오. 활성화되면 IP 주소를 가져 와서 브라우저에 입력 할 수 있습니다. Nginx 환영 화면이 표시됩니다.

virtualbox 이미지의 경우 일부 작업에 Vagrant를 사용해야합니다. 지금주의 깊게 읽으십시오. 이것은 매우 어려워 질 것입니다!

virtualbox vm 를 만듭니다 Vagrant 파일이 포함 된 디렉토리에 다음 명령을 입력하십시오.

그게 다야! 좋아, 우리는 당신을 위해 Vagrant 파일을 만들어 당신을 도와줍니다. 사용 가능한 파일을 직접 만들려면 Vagrant에 대해 더 많이 배워야합니다. 앞에서 언급했듯이 진지한 개발자라면 이것을 배워야합니다.

이제 VirtualBox의 UI에서 새로운 이미지를 VM으로보아야합니다.

위의 첫 번째 명령은 새 상자를 Vagrant에 추가하므로 어디에서 사용 해야하는지 알고 있습니다. 우리는 상자를 "Jessie64"라고 명명하고 방금 만든 상자를 사용합니다. 두 번째 명령은 Vagrant에게 VirtualBox에서 가상 머신을 만들고 실행하도록 지시합니다.

또한 상자의 초기 시작은 1 ~ 2 분 밖에 걸리지 않습니다. Vagrant를 계속 구성하면 10 ~ 20 분이 소요됩니다. 이것은 다시 시간을 절약합니다.

"Vagrant up"명령이 완료되면 url 두 시스템 모두에서 "Vagrant"사용자와 "Vagrant"를 SSH 연결에 사용할 수도 있습니다. 이 서버는 안전하지 않습니다!

<code>git clone https://github.com/smolinari/PHP-Packer-Demo
</code>
우리는 아직 완전히 끝나지 않았습니다!

더 흥미로운 일을합시다.

다음 단계를 수행 할 때 비슷한 일을 몇 번이나했는지 상상해보십시오. 이제 소프트웨어 설치 및 구성 프로세스를 자동화하고 있습니다!

우리가 많은 Symfony 개발 작업을했다고 가정 해 봅시다. Symfony 버전이 설치되어 자동으로 준비되도록 이미지를 설정하겠습니다.

시작하기 전에 rackspace에서 서버를 삭제하십시오. (우리는 불필요한 돈을 쓰고 싶지 않습니다.)

또한 콘솔에서 방금로드 한 Vagrant 상자를 종료하고 삭제해 봅시다. 다음 명령을 입력하십시오 :

재미를 위해 Symfony (및 데모)를 설치하십시오 (또는 그렇지 않습니까?) 다시, 우리는 종종 Symfony를 사용하는 개발 팀이 있다고 가정 해 봅시다. Symfony 지원 서버를 자동화합시다. 우리는 Symfony Demo 응용 프로그램 만로드하지만이 추가 작업은 Packer가 자동화에서 개발 및 인프라 오케스트레이션 노력을 지원하는 방법에 대한 좋은 아이디어를 제공해야합니다.

/스크립트 디렉토리로 이동하여 Setup.sh 스크립트를 좋아하는 편집기와 함께 다음 쉘 스크립트 코드를 하단에 추가하십시오.

위의 코드는 기본적으로 Symfony, PHP 및 Nginx를 올바르게 설정하기 위해해야 ​​할 일입니다.
<code>git clone https://github.com/smolinari/PHP-Packer-Demo
</code>
이러한 구성 단계에서 어떤 일이 일어날 지 설명하기 위해 의견이 추가되었습니다.

위의 코드를 추가하고 저장 한 후 Packer가 다시 무거운 작업을 수행하도록합시다.

파일 시스템에서 Jessie64.json 파일이있는 곳으로 파일 시스템의 한 레벨을 올려 놓고 이전에 입력 한 명령을 입력하십시오.

이제 다른 사업을 처리하거나 다른 커피 한 잔을 마실 수 있습니다 (또는 런닝 머신을 걸어 다니십시오). 새로운 Symfony 데모 이미지를 구축하는 데 시간이 걸립니다.

완료되면 이와 같은 화면이 보일 것입니다.

이미지가 제작되고 준비되었으므로 OpenStack 이미지를 Rackspace에서 새로운 서버로 다시 시작할 수 있습니다.
<code>cd PHP-Packer-Demo
</code>
virtualbox vm의 경우 위에서 언급 한 두 명령을 "VirtualBox VM 만들기"로 다시 입력하십시오.

rackspace 서버의 경우 새 IP가 표시됩니다.

를 입력하십시오

Symfony 데모 응용 프로그램이 실행되는 것을 볼 수 있습니다.

지역 VM에서 다음을 입력 할 수 있습니다.

당신은 같은 내용을 볼 수 있습니다. Hashicorp's Packer - Is It Something for PHP Developers? 멋져요?

결론 :

우리는 과거를 되돌아보고 현재로 돌아 왔습니다. 잘만되면 컴퓨터 가상화의 이유, Vagrant 및 Packer와 같은 소프트웨어 생성 및 둘 사이의 연결을 이해하게되었습니다.

두 개의 서버를 성공적으로 작성하면 Packer가 DevOps 회원 및 개발자로 제공 할 수있는 이점을 상상할 수도 있습니다. 이러한 장점에는 다음이 포함되지만 이에 국한되지는 않습니다

생산 일관성 - 개발 환경은 생산 환경과 거의 동일합니다.

시간 저장-소프트웨어와 구성은 이미지에서 "사전 구운"상태이며 더 이상 수동으로 추가 할 필요가 없습니다.

환경 테스트 - 완전한 거울은 "완전한"것으로 간주되고 인간의 오류를 피하기 위해 테스트 할 수 있습니다.

환경 버전화 - 환경을 변경하면 GIT를 사용하여 다른 패커 빌드 버전을 버전 할 수 있습니다.
<code>packer build jessie64.json</code>
는 "불변 아키텍처"를 지원합니다 - 기존 VM (오류의 원인 일 수 있음)을 구축하거나 수정하는 대신 VM 인스턴스를 "파괴"하고 새 제품을 만듭니다.

나는 당신 이이 기사와 Packer와 함께 이미지를 만드는 운동을 즐겼기를 바랍니다. 아래 의견에 Packer에 대한 귀하의 생각을 알려주십시오.

PHP 개발자의 Hashicorp 패커에 대한 faqs Hashicorp의 패커 란 무엇이며 PHP 개발자에게 어떤 도움이됩니까?

Hashicorp의 패커는 모든 유형의 기계 이미지 생성을 자동화하는 오픈 소스 도구입니다. 인프라 코드를 작성하고 버전 제어 시스템에 저장할 수 있도록 최신 구성 관리를 지원합니다. Packer는 PHP 개발자를위한 게임 변화 도구가 될 수 있습니다. 이를 통해 동일한 개발 환경을 만들어 "내 컴퓨터에서 실행"의 문제를 줄일 수 있습니다. 또한 몇 시간 또는 며칠이 아닌 몇 분 안에 생산에 배치 할 수있는 즉시 사용 가능한 이미지를 만들 수 있습니다.

Packer는 다른 유사한 도구와 어떻게 비교됩니까?

Packer는 다양성과 호환성으로 두드러집니다. AWS, DigitalOcean, Docker, Google Cloud 등을 포함한 다양한 플랫폼을 지원합니다. 또한 Terraform 및 Vagrant와 같은 다른 해시 코프 도구와 잘 통합되어 관리 인프라를위한 완벽한 워크 플로우를 제공합니다.

패커를 설치하는 방법은 무엇입니까?

패커는 설치하기 쉽습니다. 모든 지원되는 플랫폼 및 아키텍처를위한 이진 패키지로 배포됩니다. Packer 웹 사이트에서 시스템에 적합한 패키지를 다운로드하여 압축을 풀고 경로로 이동하면됩니다.

패커를 사용하여 기계 이미지를 만드는 방법은 무엇입니까?

Packer를 사용하여 기계 이미지를 만들려면 템플릿 파일을 JSON 형식으로 작성해야합니다. 이 파일은 설치할 기계 및 소프트웨어 유형을 정의합니다. 템플릿이 준비되면 "패커 빌드"명령을 사용하여 이미지를 만들 수 있습니다.

기존 구성 관리 도구와 함께 Packer를 사용할 수 있습니까?

예, Packer는 Chef, Puppet, Ansible 등과 같은 기존 구성 관리 도구와 잘 어울립니다. 이 도구를 사용하여 Packer가 만든 기계 이미지에서 소프트웨어를 구성 할 수 있습니다.

이미지 생성 중에 패커는 어떻게 고장을 처리합니까?

Packer는 강력한 오류 처리 메커니즘을 가지고 있습니다. 이미지 생성 중에 오류가 발생하면 Packer는 이미지를 실패한 것으로 표시하고 생성 된 모든 리소스를 정리합니다. 이를 통해 반제품 또는 일관성이없는 미러링으로 끝나지 않도록합니다.

CI/CD (Continuous Integration/Continuous Deployment) 파이프 라인에서 Packer를 사용할 수 있습니까?

절대적으로. Packer는 CI/CD 파이프 라인에 적합합니다. 빌드 프로세스 중에 사용하여 기계 이미지를 생성 한 다음 해당 이미지를 생산 환경에 배포 할 수 있습니다.

패커의 문제를 디버그하는 방법은 무엇입니까?

Packer는 문제를 디버깅하는 데 도움이되는 세부 로그를 제공합니다. 이미지 생성 중에 디버그 모드를 사용하여보다 자세한 출력을 얻을 수도 있습니다.

코드 프로젝트에 코드를 제공 할 수 있습니까?

예, Packer는 커뮤니티 기여를 환영하는 오픈 소스 프로젝트입니다. 오류를보고, 기능 제안, 문서 개선 또는 풀 요청을 제출하여 코드를 기여할 수 있습니다.

패커를 배울 수있는 더 많은 리소스를 어디에서 찾을 수 있습니까?

Packer의 공식 웹 사이트와 Github 저장소는 학습을 시작하기에 좋은 장소입니다. 포괄적 인 문서, 튜토리얼 및 예제를 제공합니다. 인터넷에서 Packer에 대한 많은 블로그 게시물, 비디오 및 온라인 코스를 찾을 수도 있습니다.

위 내용은 Hashicorp ' s Packer- PHP 개발자에게 어떤 것입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.