Packer로 이미지 만들기를 CircleCI로 시도
Packer로 이미지 만들기를 CircleCI로 시도
Packer로 이미지를 만드는 동안 여러 가지 시도로 만든 Packer json을 사용하여 CircleCI에서 Packer를 실행하고 싶습니다.
뭐, 이런 흐름을 해보고 싶습니다.
조금 살펴보면, CircleCI의 곰(bear)씨가 Packer Workflows to validate, build and deploy AMIs using CircleCI 라고 하는 것을 올려 줍니다. 다만, 조금 내용이 어려운 느낌이므로, 좀 더 간단한 녀석을 만들어 보고 싶습니다.
전제
aws 라든지 github 라든지는 지금 사소한 느낌이므로, 할애합니다. . .
리포지토리 만들기
github에 리포지토리를 만드십시오.
New repository
라고 하는 버튼을 누르면, 적당하게 만들 수 있다고 생각합니다.Repository name
넣고 private
선택하고 Create repository
누릅니다.할 수있는 사람의
HTTPS
주소를 확인하십시오.github에 올리는 소스를 만듭니다.
먼저 리포지토리에 대한 디렉터리를 만듭니다.
> mkdir circleci_test
> cd circleci_test
> mkdir .circlrci
CircleCI 용 구성 파일을 만듭니다.
우선, Packer로 빌드할 뿐입니다.
circleci/config.yml
version: 2
jobs:
build:
docker:
- image: hashicorp/packer:1.3.3
working_directory: ~/packer
steps:
- checkout
- attach_workspace:
at: ~/packer
- run:
name: Build
command: packer build build.json
no_output_timeout: 30m
workflows:
version: 2
build-and-deploy:
jobs:
- build:
context: AMI
※
context
를 AMI
로 설정하고 있으므로, 이것은 적절히 맞추어 주십시오.Packer용 빌드 파일은 이전과 동일할 수 있습니다.
(이름만 example.json -> build.json으로 변경했습니다)
build.json
{
"variables": {
"aws_access_key": "",
"aws_secret_key": ""
},
"builders": [{
"type": "amazon-ebs",
"access_key": "{{user `aws_access_key`}}",
"secret_key": "{{user `aws_secret_key`}}",
"region": "ap-northeast-1",
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "ubuntu/images/*ubuntu-bionic-18.04-amd64-server-*",
"root-device-type": "ebs"
},
"owners": ["099720109477"],
"most_recent": true
},
"instance_type": "t2.micro",
"ssh_username": "ubuntu",
"ami_name": "packer-example {{timestamp}}"
}],
"provisioners": [
{
"type": "shell",
"inline": [
"sleep 30",
"sudo apt-get update",
"sudo apt-get install -y nginx"
]
}
]
}
그렇다면 커밋하고 밀어 버리자.
> git init
> git add .
Initialized empty Git repository in ~/circleci_test/.git/
> git commit -m "first commit"
[master 00ffe8c] second commit
2 files changed, 54 insertions(+)
create mode 100644 .circleci/config.yml
create mode 100644 build.json
> git remote add origin https://github.com/<your account>/<repository name>.git
> git push -u origin master
Username for 'https://github.com': <account mail>
Password for 'https://<account mail>@github.com':
Counting objects: 6, done.
Delta compression using up to 3 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 958 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/<your account>/<repository name>.git
e5d5887..00ffe8c master -> master
Branch master set up to track remote branch master from origin.
우선, 이것으로 푸시는 할 수 있었을 것입니다.
CircleCI로 협력합시다.
CircleCI 에 로그인하고
ADD PROJECTS
에서 만든 리포지토리 이름의 녀석을 Set Up Project
합니다.Start Building
라고 나온다고 생각하므로 포치 밀어 줍니다.빌드가 실행되고 성공하면
SUCCESS
가 됩니다.잊어버릴 수 없는 Contexts
Create Cotext
를 포치 합니다.AMI
를 생성하여 필요한 AWS 키를 등록합니다.Security
가 Public
라는 것은 같은 조직 내에서 볼 수 있다는 의미입니다.이번 작업이라면
AWS_IMAGE
는 사용하지 않습니다.AMI가 있는지 확인
AWS의 Companne에서 확인해 봅시다.
할 수 있습니다.
요약
우선 테스트라든지 없이 해 보았습니다.
이제 github를 업데이트할 때마다 AMI가 생성됩니다.
Reference
이 문제에 관하여(Packer로 이미지 만들기를 CircleCI로 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/okaru/items/2d9a90d8383f9a3bc5ce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)