IT STUDY LOG
Sprint - YAML 작성 본문
# 학습 목표
- YAML 문서를 조건에 맞게 작성하여 총 3개의 테스트케이스를 통과해야 합니다.
# 해결 과제
- github repository를 fork 한 후, clone 하여 스프린트를 진행합니다.
- npm install을 통해 필요한 모듈을 설치합니다.
- PUT_YOUR_YAML.yaml 파일에 아래 test1, test2, test3의 요구조건을 만족하는 yaml 문서를 작성합니다.
- npm run test 를 통해 테스트케이스 통과 여부를 확인합니다.
- 모든 테스트케이스를 통과하면, sprint-yaml 레포지토리에 Pull Request를 통해 제출합니다.
# 실습 자료
https://github.com/cs-devops-bootcamp/sprint-yaml
# 과제 항목별 진행 상황
💡 test1
아래의 표와 같은 데이터를 YAML 파일로 작성하세요.
# YAML 파일
test1:
Car:
Color: Blue
Model:
Name: Cyber Truck
Year: 2022
Fuel: Electric
Price: "$100,000"
💡 test2
다음 데이터를 YAML 형식으로 변경하여 작성하세요.
- Statement는 각 다섯개의 dictionary를 요소로 하는 array/list의 형태로 작성되어야 합니다.
- 각 요소 중 [ ] 로 작성된 것은 list의 형태로 작성되어야 합니다.
- 같은 배경색을 가지는 값들은 dictionary의 형태로 작성되어야 하며, array/list의 한 요소여야 합니다.
# YAML 파일
test2:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- "ec2:*"
- "elasticloadbalancing:*"
- "route53:*"
- "autoscaling:*"
- "cloudwatch:*"
- "SNS:*"
Resource:
- "*"
- Effect: Allow
Action:
- "s3:*"
Resource:
- "arn:aws:s3:::travis-terraform-state"
- "arn:aws:s3:::travis-terraform-state/*"
- "arn:aws:s3:::travis-shared-1-registry-images"
- "arn:aws:s3:::travis-shared-1-registry-images/*"
- "arn:aws:s3:::travis-shared-2-registry-images"
- "arn:aws:s3:::travis-shared-2-registry-images/*"
- Effect: Allow
Action:
- "iam:GetUser"
Resource:
- "arn:aws:iam::341288657826:user/igor-terraform"
- Effect: Allow
Action:
- "iam:*"
Resource:
- "arn:aws:iam::341288657826:role/*"
- "arn:aws:iam::341288657826:user/registry-shared-1"
- "arn:aws:iam::341288657826:user/registry-shared-2"
- "arn:aws:iam::*:user/cyclist-*"
- "arn:aws:iam::*:user/worker-*"
- "arn:aws:iam::*:user/build-trace-*"
- Effect: Allow
Action:
- "dynamodb:*"
Resource:
- "arn:aws:dynamodb:us-east-1:341288657826:table/travis-terraform-state"
💡 test3
다음 JSON으로 작성된 설정 파일을 YAML 형식으로 작성하시오.
test3: {
"name": "Node.js CI",
"on": {
"push": {
"branches": "main"
},
"pull_request": {
"branches": "main"
}
},
"jobs": {
"build": {
"runs-on": "ubuntu-latest",
"steps": [
{
"uses": "actions/checkout@v2"
},
{
"name": "Use Node.js",
"uses": "actions/setup-node@v1",
"with": {
"always-auth": true,
"node-version": "12.x",
"registry-url": "<https://registry.npmjs.org>",
"scope": "@octocat"
}
},
{
"name": "Install dependencies",
"run": "npm ci",
"env": {
"NODE_AUTH_TOKEN": "${{secrets.NPM_TOKEN}}"
}
}
]
}
}
}
# YAML 파일
test3:
name: "Node.js CI"
on:
push:
branches: main
pull_request:
branches: main
jobs:
build:
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v2"
- name: "Use Node.js"
uses: "actions/setup-node@v1"
with:
always-auth: True
node-version: "12.x"
registry-url: "<https://registry.npmjs.org>"
scope: "@octocat"
- name: "Install dependencies"
run: "npm ci"
env:
NODE_AUTH_TOKEN: "${{secrets.NPM_TOKEN}}"
# TROUBLE SHOOTING LOG
💡 YAML 파일의 각종 에러
원인
문법이 명확하므로 준수해야 함
해결 방안
- 문자열에 특수 문자가 들어갔을 경우 따옴표 사이에 기입
- 컬럼의 공백 문자수는 정확하게 일치 시킬 것
- 리스트[]와 딕셔너리{}를 잘 구분해서 입력할 것
- 리스트의 경우 리스트 원소일 때만 - 을 입력
- 탭 사용 금지, 무조건 스페이스 공백으로 입력할 것
- 대소문자 구분 잘할 것
#References
'devops bootcamp 4 > pair/team log' 카테고리의 다른 글
Sprint - 3 Tier 아키텍처 배포 (0) | 2023.04.17 |
---|---|
Sprint - 애플리케이션 컨테이너화 (0) | 2023.04.13 |
Sprint - Proxy Server (0) | 2023.04.07 |
Sprint - 로그 파이프라인 (0) | 2023.03.30 |
Sprint - Cozstory WAS 개발 (0) | 2023.03.28 |
Comments