Jenkins ๋น๋ ํ์ดํ๋ผ์ธ์์ ์๋ ๋ฐฐํฌ๋ฅผ ์ํํ๊ธฐ ์ํด AWS EC2 SSM์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ธฐ ์ํ SSM ๋ฌธ์๋ SSM ๋ฌธ์์ ์ ๊ณต๋ฉ๋๋ค. ์ ํจ์ค ํ์ดํ๋ผ์ธ์ ๋ค์ ๋ช ๋ น์ ํ์ฑํฉ๋๋ค.
aws ssm send-command --document-name "Testdeployment" --targets '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}' --max-concurrency "1" --max-errors "1" --parameters '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}' --timeout-seconds 3600 --output-s3-bucket-name "testBucket" --output-s3-key-prefix "sandbox-v1/test/ssm/log" --region eu-west-1
์๋ฌ ๋ฉ์์ง:
Error parsing parameter '--targets': Expected: '=', received: ''' for input:
'{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}'
๊ตฌ์ฑ:
OS: ์ฐ๋ถํฌ 16.04.2 LTS
AWS CLI: 1.11.122
ํ์ด์ฌ: 2.7.12
๋ฆฌ๋
์ค: 4.4.0-1044-aws
๋ณดํ ์ฝ์ด:1.5.85
์ด๊ฒ์ ์ ํจ์ค์ ์ธ์ฉ ๋ฌธ์ ์ฒ๋ผ ๋ณด์ ๋๋ค. ํฐ๋ฏธ๋์์ ์ง์ ๋ช ๋ น์ ์คํํ๋ฉด ํด๋น ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
$ aws ssm send-command --document-name "Testdeployment" --targets '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}' --max-concurrency "1" --max-errors "1" --parameters '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}' --timeout-seconds 3600 --output-s3-bucket-name "testBucket" --output-s3-key-prefix "sandbox-v1/test/ssm/log" --region eu-west-1
An error occurred (InvalidDocument) when calling the SendCommand operation:
์ด ๋ฌธ์ ๋ฅผ ๋๋ฒ๊ทธํ๋ ค๋ฉด --debug
๋ก ๋ช
๋ น์ ์คํํ๋ฉด CLI์์ ์์ ํ๋ ์ ํํ ๋ฌธ์์ด์ด ํ์๋ฉ๋๋ค.
2018-01-04 13:27:37,186 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.14.18 Python/2.7.14 Darwin/16.7.0 botocore/1.8.22
2018-01-04 13:27:37,186 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['ssm', 'send-command', '--document-name', 'Testdeployment', '--targets', '{"Key":"tag:Name","Values":["LDAPHost_env-sandbox"]}', '--max-concurrency', '1', '--max-errors', '1', '--parameters', '{"bucketName":["s3://testBucket"],"workingDirectory":["/tmp/"],"releaseName":["sandbox-v1"]}', '--timeout-seconds', '3600', '--output-s3-bucket-name', 'testBucket', '--output-s3-key-prefix', 'sandbox-v1/test/ssm/log', '--region', 'eu-west-1', '--debug']
๋๋ ์์ ๋ฐ์ดํ๊ฐ CLI๋ก ์ ๋ฌ๋๋ ๋ฐ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ช ๋ น์ ๋ํ์์ผ๋ก ์คํํ ๋ ์์ด ํ์ด์ฌ์ ์ ๋ฌํ๊ธฐ ์ ์ ์์ ๋ฐ์ดํ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋ณด๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฌ์ ํ ๋ฌธ์ ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ "CLI์ ์ ๋ ฅ๋ ์ธ์" ํ๊ณผ ํจ๊ป ๋๋ฒ๊ทธ ๋ก๊ทธ๋ฅผ ๊ฒ์ํ์ธ์. ๊ทธ๋ฌ๋ฉด ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ฌ ํด์. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
๊ฐ์ ๋ฌธ์ , ์ด๊ฒ์ ๊ตฌ์์ ๋๋ค -
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ์ ํจ์ค์ ์ธ์ฉ ๋ฌธ์ ์ฒ๋ผ ๋ณด์ ๋๋ค. ํฐ๋ฏธ๋์์ ์ง์ ๋ช ๋ น์ ์คํํ๋ฉด ํด๋น ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋๋ฒ๊ทธํ๋ ค๋ฉด
--debug
๋ก ๋ช ๋ น์ ์คํํ๋ฉด CLI์์ ์์ ํ๋ ์ ํํ ๋ฌธ์์ด์ด ํ์๋ฉ๋๋ค.๋๋ ์์ ๋ฐ์ดํ๊ฐ CLI๋ก ์ ๋ฌ๋๋ ๋ฐ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ช ๋ น์ ๋ํ์์ผ๋ก ์คํํ ๋ ์์ด ํ์ด์ฌ์ ์ ๋ฌํ๊ธฐ ์ ์ ์์ ๋ฐ์ดํ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋ณด๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฌ์ ํ ๋ฌธ์ ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ "CLI์ ์ ๋ ฅ๋ ์ธ์" ํ๊ณผ ํจ๊ป ๋๋ฒ๊ทธ ๋ก๊ทธ๋ฅผ ๊ฒ์ํ์ธ์. ๊ทธ๋ฌ๋ฉด ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.