IT STUDY LOG

Sprint - YAML 작성 본문

devops bootcamp 4/pair/team log

Sprint - YAML 작성

roheerumi 2023. 4. 11. 11:31

# 학습 목표

  • 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

https://yaml.org/

 

The Official YAML Web Site

 

yaml.org

 

'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