Packer: 구글 클라우드에 이미지 구축
11440 단어 packerhashitoolsgcpgooglecloud
우리는 필요한 소프트웨어를 미리 설치하고 설정 옵션을 설정해서 이 문제를 해결할 수 있으며, 설정 옵션을 반복적으로 배치할 수 있는 이미지로 변환할 수 있다.
전체 과정을 더욱 빠르고 반복할 수 있으며, 템플릿을 쉽게 만들 수 있도록 패키지
패크가 뭐예요?
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_username
ssh 사용자 이름과 이미지를 만드는 실례 대화를 사용할 것입니다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 으로 이동해서 더 이상 원하지 않는 그림을 삭제할 수 있습니다.
주의: 프로젝트에서 공공 그림을 삭제할 수 없습니다. 무료입니다.😃
Reference
이 문제에 관하여(Packer: 구글 클라우드에 이미지 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcrmonkey/packer-building-images-on-google-cloud-ape텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)