Packer: 구글 클라우드에 이미지 구축

웹 사이트나 도구를 실행하는 데 필요한 소프트웨어를 설치하는 데 시간이 좀 걸릴 수도 있습니다.우리의 배치가 시간에 매우 민감할 때, 이것은 이상적이지 않다. 예를 들어 웹 서버 탱크를 확대해서 당신의 최신 플라워 양말 시리즈에 대한 갑작스러운 흥미에 대응해야 할 때.
우리는 필요한 소프트웨어를 미리 설치하고 설정 옵션을 설정해서 이 문제를 해결할 수 있으며, 설정 옵션을 반복적으로 배치할 수 있는 이미지로 변환할 수 있다.
전체 과정을 더욱 빠르고 반복할 수 있으며, 템플릿을 쉽게 만들 수 있도록 패키지

패크가 뭐예요?
Packer는 클라우드 플랫폼에서 시스템 이미지를 만드는 과정을 간소화하거나 Vagrant (다른 Hashicorp 도구), Docker, VirtualBox 등 다른 로컬 도구에 사용할 수 있는 Hashicorp 도구입니다.

어디서 살 수 있습니까?
HashiCorp 패키지 도구는 download page on the packer website에서 다운로드할 수 있습니다.
hashicorp learning portal에 편리한 how to install it on your operating system 안내서가 하나 더 있습니다.

나는 어떻게 곡가운 플랫폼에서 그것을 사용합니까?
패키지 파일에 "구축기"설정을 만들어야 합니다.
다음은 기본 예입니다.
{
  "builders": [
    {
      "type": "googlecompute",
      "project_id": "my project",
      "zone": "us-central1-a",
      "source_image_family": "debian-10",
      "ssh_username": "packer",
      "image_name": "packer-{{timestamp}}",
      "image_family": "socks-web"
    }
  ]
}

위에서 설정한 옵션에서 다음을 수행합니다.type우리가 사용하고 있는 생성기 유형입니다.여기는googlecompute입니다.GCP와 대화 중이기 때문입니다.project_id최종 이미지를 저장하는 항목입니다.zone저희가 이미지를 만드는 구역이 될 거예요.source_image_family이것은 한 조의 사진으로, 우리의 기초 사진은 그 중에서 촬영할 것이다ssh_usernamessh 사용자 이름과 이미지를 만드는 실례 대화를 사용할 것입니다image_name우리가 만들 그림의 이름입니다.
그림 이름은 프로젝트에서 유일해야 하기 때문에 패키지 변수 timestamp 를 사용합니다.image_family우리 이미지 가족 이름.이것은 선택할 수 있는 것이지만, 이후에는 매우 유용할 것이다.

이것image_family은 무엇입니까?
이미지는 이미지 패밀리라는 그룹에 저장할 수 있습니다.실례를 구축할 때 GCP가 우리 가족에게서 우리의 그림을 가져오도록 요구할 수 있습니다. 이것은 그 안에 추가된 최신 그림을 되돌려줍니다.
새 이미지에 문제가 있는 경우 tag it as deprecated 시리즈는 다음 배치 실례에 이전 버전을 제공할 수 있습니다.
이미지 패밀리에 대한 자세한 내용은 the GCP documentation

어떻게 이미지에 이 웹 서버를 설치합니까?
패키지 프로필에 하나 provisioner 또는 두 개를 추가해야 합니다.
Provisioner는 보통 셸 스크립트나 파일을 업로드하지만, 꼭두각시, ansible,salt,chef 작업일 수도 있습니다.
다음은 새 공급자를 포함한 전체 패키지 파일의 예입니다.
{
  "builders": [
    {
      "type": "googlecompute",
      "project_id": "my project",
      "zone": "us-central1-a",
      "source_image_family": "debian-10",
      "ssh_username": "packer",
      "image_name": "packer-{{timestamp}}",
      "image_family": "socks-web"
    }
  ],
  "provisioners": [                                                           
      {                                                                         
      "type": "file",                                                           
      "source": "./index.html",                                           
      "destination": "/tmp/index.html"                                            
      },
      {                                                                         
        "type": "shell",                                                        
        "inline": [                                                             
            "sudo apt-get update -qq",
            "sudo apt-get upgrade -qq",                                     
            "sudo apt-get install -qq apache2",
            "sudo cp /tmp/index.html /var/www/html/index.html",
         ]                                                                      
    }]
}
여기에서 우리는 index.html 파일을 /tmp에 복사하여 apt의 캐시를 업데이트하고 시스템 업그레이드를 실행하여 모든 업데이트가 설치되었는지 확인한 다음apache를 설치하고 색인 페이지를 복사합니다.

나는 어떻게 이런 이미지를 만들어야 합니까?
이제 패키지 파일을 저장한 디렉토리에서 다음 명령을 실행할 수 있습니다.
packer build example.json
Packer에서 그림을 만들고 결과 이미지를packer-xxxxxxxxx로 저장합니다xxxxxxxxx는 타임 스탬프 값입니다.결과 이미지는 이미지 패밀리socks-web에 연결되며 프로젝트의 지형 템플릿에서 이미지 패밀리를 참조할 수 있습니다.
🎉 타다!

또 알아야 할 게 있나요?
네, 두 가지가 있습니다.

네트워킹
위의 예제에서는 사용 중인 항목에 기본 네트워크 설정이 포함되어 있고 선택한 영역에 사용 가능한 하위 네트워크가 있다고 가정합니다.이 물건들을 사용할 수 없으면 구축 과정이 실패합니다. 구축기 설정에 network 또는 subnetwork 옵션을 추가해야 합니다. 이 옵션은 선택한 영역과 일치합니다.
패키지가 ssh를 통해 만들어진 실례에 연결할 수 있도록 기본 방화벽 규칙이 자리를 잡았다고 가정합니다.
접근을 허용하는 방화벽 규칙이 없으면, 구축 과정이 연결을 기다리는 동안 시간을 초과합니다.
machine_type 예제에서 생략됨
기본값은 n1-standard-1이지만 작업에 따라 크기를 늘려야 할 수도 있습니다.더 큰 기계 유형은 그것을 더욱 빨리 운행하는 데 도움을 줄 것이다.

코스트
이미지를 저장하는 데는 비용이 든다.
본고를 작성할 때 미국과 유럽연합의 여러 지역의 저장 비용은 약 0.050달러였지만 구체적인 지역의 비용은 0.075달러에 달할 수 있다.
이미지 메이킹에도 비용이 든다.
이것은 사용자가 사용한 이미지 크기와 선택한 구축 위치에 따라 달라집니다.
본문을 작성할 때, 예시를 정하는 비용은 시간당 0.04749975달러이다
자세한 내용은 pricing page를 참조하십시오.
가격 페이지를 참조하려면:
만약 당신이 달러 이외의 화폐로 지불한다면 Cloud Platform SKUs에 당신의 화폐에 열거된 가격으로 적용됩니다.
❗ 당신이 큰 계산서를 쓰기 전에 반드시 원가를 검사해야 한다❗

깨끗이 정리하다
방금 만든 그림을 원하지 않는다면, 컨트롤러 계산 부분 images 으로 이동해서 더 이상 원하지 않는 그림을 삭제할 수 있습니다.
주의: 프로젝트에서 공공 그림을 삭제할 수 없습니다. 무료입니다.😃

좋은 웹페이지 즐겨찾기