Packer: Packer μž„μ‹œ ν‚€ 쌍이 ~/.ssh/authorized_keys(AWS AMI)μ—μ„œ μ œκ±°λ˜μ§€ μ•ŠμŒ

에 λ§Œλ“  2016λ…„ 08μ›” 03일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: hashicorp/packer

Amazon Linux AMI 기반의 패컀λ₯Ό μ‚¬μš©ν•˜μ—¬ AMIλ₯Ό μƒμ„±ν•œ ν›„ ν•΄λ‹Ή AMI의 μΈμŠ€ν„΄μŠ€λ₯Ό μ‹œμž‘ν•˜κ³  sshλ₯Ό μž…λ ₯ν•˜λ©΄ ~/.ssh/authorized_keys νŒŒμΌμ— μž„μ‹œ 패컀 ν‚€ 쌍이 ν‘œμ‹œλ˜λŠ”λ° μ΄λŠ” λ³΄μ•ˆ ν—ˆμ μž…λ‹ˆλ‹€. AMIκ°€ μ €μž₯되기 전에 ν•΄λ‹Ή 파일이 μ‚­μ œλ  κ²ƒμœΌλ‘œ μ˜ˆμƒν–ˆμŠ΅λ‹ˆλ‹€.

패컀 ν…œν”Œλ¦Ώμ—μ„œ λͺ…μ‹œμ μœΌλ‘œ ~/.ssh/authorized_keys λ₯Ό μ‚­μ œν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€(μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜ μ°Έμ‘°).

패컀 버전

패컀 v0.10.0

호슀트 ν”Œλž«νΌ

CentOS Linux 릴리슀 7.2.1511(μ½”μ–΄)

PACKER_LOG=1 packer build template.json 디버그 둜그 좜λ ₯.

λ‹€μŒμ€ 패컀 좜λ ₯μž…λ‹ˆλ‹€.

https://gist.github.com/tleyden/4cc13b530f08bcaef04f5233bf43daee

μ£„μ†‘ν•©λ‹ˆλ‹€. PACKER_LOG=1을 μˆ˜ν–‰ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ ν•„μš”ν•œ 경우 λ‹€μ‹œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

버그λ₯Ό μž¬ν˜„ν•˜λŠ” 데 ν•„μš”ν•œ _κ°€μž₯ κ°„λ‹¨ν•œ 예제 ν…œν”Œλ¦Ώ 및 슀크립트_

ν…œν”Œλ¦Ώ: https://github.com/couchbase/build/blob/2afdc7329faaa6a2f25befda59509b70a4a38349/scripts/jenkins/mobile/ami/sync-gateway.json

슀크립트:
Jenkins Packer ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜κ³  λ‹€μŒμ„ 톡해 λ³€μˆ˜λ₯Ό νŒ¨μ»€μ— 전달:

-var 'source_ami=${source_ami}' -var 'ssh_username=${ssh_username}' -var 'couchbase_server_package_name=${couchbase_server_package_name}' -var 'couchbase_server_package_url=${couchbase_server_package_url}' -var 'couchbase_sync_gateway_package_base_url=${couchbase_sync_gateway_package_base_url}' -var 'couchbase_sync_gateway_package=${couchbase_sync_gateway_package}' -var 'couchbase_server_version=${couchbase_server_version}' -var 'couchbase_sync_gateway_version=${couchbase_sync_gateway_version}' -var 'couchbase_server_edition=${couchbase_server_edition}' -var 'sync_gateway_edition=${sync_gateway_edition}'

ν•΄κ²° 방법

패컀 ν…œν”Œλ¦Ώμ— λ‹€μŒ ν”„λ‘œλΉ„μ €λ‹ 도ꡬλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

    {
        "type": "shell",
        "inline": [
        "rm /home/ec2-user/.ssh/authorized_keys"
        ]
    }

AMIλ₯Ό μ‹œμž‘ν•œ ν›„μ—λŠ” 패컀 μž„μ‹œ ν‚€ 쌍이 μ•„λ‹ˆλΌ AWS "μΈμŠ€ν„΄μŠ€ μ‹œμž‘" λ§ˆλ²•μ‚¬μ—μ„œ μ„ νƒν•œ ν‚€λ§Œ ν¬ν•¨ν–ˆμŠ΅λ‹ˆλ‹€.

buildeamazon invalid

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ‹œκ°„μ„ λ‚΄μ–΄ μ‹ κ³ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

이것이 AWSκ°€ μž‘λ™ν•˜λŠ” λ°©μ‹μ΄κ±°λ‚˜ 더 ꡬ체적으둜 cloud-initκ°€ μž‘λ™ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. ν•΄κ²° λ°©λ²•μœΌλ‘œ μ„€λͺ…ν•˜λŠ” 것은 μ‹€μ œλ‘œ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

μ‹œκ°„μ„ λ‚΄μ–΄ μ‹ κ³ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

이것이 AWSκ°€ μž‘λ™ν•˜λŠ” λ°©μ‹μ΄κ±°λ‚˜ 더 ꡬ체적으둜 cloud-initκ°€ μž‘λ™ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. ν•΄κ²° λ°©λ²•μœΌλ‘œ μ„€λͺ…ν•˜λŠ” 것은 μ‹€μ œλ‘œ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€.

죽은 μŠ€λ ˆλ“œλ₯Ό λ˜μ‚΄λ €μ„œ μ£„μ†‘ν•˜μ§€λ§Œ μ•„λ§ˆμ‘΄μ—μ„œ 더 λ§Žμ€ 정보λ₯Ό 찾은 ν›„ λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•΄ 여기에 κΈ°μ—¬ν•  것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

https://aws.amazon.com/articles/how-to-share-and-use-public-amis-in-a-secure-manner/

μš”μ»¨λŒ€, λͺ¨λ“  authorized_keys νŒŒμΌμ„ μ œκ±°ν•˜λ €λ©΄ λ‹€μŒμ„ 루트둜 μ‹€ν–‰ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

find / -name "authorized_keys" -exec rm -f {} \;

주의: 링크된 νŽ˜μ΄μ§€μ˜ λͺ…령은 일반 λŒ€μ‹œ(-)와 였λ₯˜λ₯Ό λ°˜ν™˜ν•˜λŠ” λ‹€λ₯Έ 것을 ν˜Όν•©ν•˜μ—¬ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λͺ…령을 μˆ˜λ™μœΌλ‘œ μž…λ ₯ν•˜κ±°λ‚˜ λ°”λ‘œ μœ„μ— μžˆλŠ” λͺ…령을 λ³΅μ‚¬ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” _30일_ ⏳ λ™μ•ˆ νμ‡„λ˜μ—ˆμœΌλ―€λ‘œ μž κ·Έκ² μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μœ μ§€ κ΄€λ¦¬μžκ°€ ν™œμ„± 문제λ₯Ό μ°Ύκ³  집쀑할 수 μžˆμŠ΅λ‹ˆλ‹€.

이와 μœ μ‚¬ν•œ 문제λ₯Ό λ°œκ²¬ν•œ 경우 μΆ”κ°€ 쑰사에 ν•„μš”ν•œ λͺ¨λ“  μ„ΈλΆ€ 정보λ₯Ό μΊ‘μ²˜ν•  수 μžˆλ„λ‘ μƒˆ 문제λ₯Ό μ—΄κ³  문제 ν…œν”Œλ¦Ώμ„ μž‘μ„±ν•˜μ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰