220726

HyeonKi Jo·2022년 7월 26일
0
post-thumbnail

CI/CD

  • github에 코드를 커밋
  • Jenkins에서 코드를 Pull해서 사용한다.
  • Jenkins에서 maven을 이용해 빌드
  • maven, 실행상태로 패키징한다.

redhat에서의 cicd

Continuous Intetration

  • 개발자가 소스코드를 개발
  • 빌드(BUILD): 패키징 (실행파일)
  • 테스트(TEST)
  • Merge: 아카이브, 도커 이미지 등으로 패키징해 저장소에 올린다. PUSH
  • 모니터링중, 트리거(유발) 이벤트가 발생하면, 다음 작업으로 넘어가게 된다.
    • 지속적으로 모니터링, 이벤트가 있다면 다음으로 넘어가는 방법으로,
    • Jenkins에서는 linux의 크론이라는 작업스케줄러를 사용해서 github를 관찰(리스너)하고 있다가, 소스코드가 변경되면, Maven으로 넘어간다.
  • 개발자가 소스코드를 개발하면, 테스트, 머지 과정을 거쳐 자동으로 최종 배포까지 이어지는 과정이 CI/CD이다.

Continuous Delivery

  • 도커허브와 같은 Repository에 자동 업로드하는 과정

Continuous Deployment

  • 최종 배포, 자동으로 제품에 배포되어 업데이트되는 것

Git hub

  • 소스코드의 버전 관리
  • 공동작업을 위한 도구이다.
  • 내 환경이 아닌, 인터넷환경에서의 저장소가 Github이다.

Git Hub repository 생성

Git

다운로드

  • https://git-scm.com/downloads
  • 설치중에 제일 아래 (NEW!) Add a~~ 체크해준다.
  • 이후 과정은 모두 Next -> Install 을 눌러준다.
  • 이렇게 Linux CLI 환경과 비슷한 창이 나온다.

git사용해보기

  • Linux 기본 명령어들이 먹힌다.
  • git init
    • Initialize, 이 폴더를 git을 사용한다고 정의해준다.

git add, commit

  • .git폴더에 작업자(나)에 대한 정보를 기록한다.
  • 또, README.txt를 git에서 기록하게 등록한다.
  • 지금의 변경사항을 commit해서 저장해준다.
    • 즉, 어떤 변경이 일어나면, ADD와 Commit이 진행되어야 한다.
  • README.txt에 인사말을 추가해서 ADD, Commit해봣다.

git log

  • 지금까지 commit한 기록을 볼 수 있다.

checkout

  • log에서 logID를 통해 rollback할 수 있다.
  • Aloha가 있는 버전에서 없는 버전으로 롤백되었다.
  • 또, git checkout - -를 넣는 방법으로 바로 이전 버전으로 돌아갈 수 있다.

Delivery

  • add, commit, checkout은 내 컴퓨터 환경에서 버전관리를 하는 것이다.
  • 오늘의 작업을 끝내거나, 다른 이유로 외부 저장소에 저장할때는 Github에 올려야한다.
  • git remote add origin https://github.com/jo1132/test-dev.git
    • remite : 원격 저장소를 뜻한다.
    • 현재 위치를 github의 원격 저장소와 연결시켜준다.
  • git push -u origin master
  • github 저장소에서도 main, master등 가지치기(Branch)를 할 수 있다.
  • 그러나 최초 push를 진행할 떄 로그인을 해줘야 한다.
  • 과거에는 ID. PW를 입력했지만, 최근에는 Token을 사용하게 되었다.
  • Token을 만들어서 사용한다.

Token 생성



  • 여기서 새로운 토큰을 만들어준다.
  • 한번 만든 토큰은 재발급이 안된다.
  • Note를 간단하게 입력해준다.
  • Expiration은 인증 기간인데 기본값 30일로 한다.
  • 권한은 repo권한만 부여하고 나머지는 체크하지 않는다.
  • 이후 토큰을 생성하고, 이 토큰을 복사해서 로그인해준다.
  • 로그인해주니, Push가 완료되었다.

만약 다른 사용자의 기록이 있어 로그인이 안된다면



  • 제어판 -> 사용자 계정 -> 자격증명 관리자
  • 위 일반 자격 증명에 기존 로그인 기록이 존재한다면 여기서 제거해주면 된다.

운영자 입장에서 git 사용하기

git 내려받기

  • Github에서 Code 버튼을 눌러 주소를 가져온다.
  • git clone 명령어를 통해 github에서 내려받는다.
  • 에러없이 잘 가져온다.
  • 이번엔 NIHAO를 추가해서 다시 커밋해본다.
  • 설명 넣는 부분에 README.txt를 넣어서 설명에 들어갔다.
  • git push -u origin mastar
    • 수정한 내용을 다시 pushg 해준다.
  • 잘 업로드 되었다.

다시 개발자 입장

  • 현재 개발자 화면에서는 NIHAO가 추가되지 않아 보이지 않는다.
  • 이때, Clone이 아닌 pull을 사용한다.

clone

  • 처음 개발환경을 내려받을 떄 사용

pull

  • 개발 중에 바뀐 내용이 있다면 가져올 떄 사용
  • 이번 경우에는 같은 개발중이지만, Nihao가 없어, 새로운 버전을 가져올 때 사용한다.
  • 바뀐내용이 존재하니 pull이 작동하고, NIHAO가 출력된다.

파일 정리(삭제)

  • README.txt파일을 삭제한다.
  • git에서 rm명령어를 통해 삭제한다.
  • git 에서 README.txt파일을 삭제한 변경사항을 commit해준다.
  • 또, 원격저장소(github)에서 삭제해준다.

Git Lab

  • Private환경 Github와 같다.

Centos VM 준비

  • Centos7 ova파일을 사용한다.
  • CPU:4c
  • RAM:8192Mb(8Gb)
  • Network: Bridge

gitlab 설치

  • curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash EXTERNAL_URL="http://[VM의 IP addr]" yum install -y gitlab-ce
  • cat /etc/gitlab/initial_root_password # 패스워드 수정
    • 이 패스워드를 기록해주고, VM의 IP주소로 접속해준다.

gitlab login

  • 방금 기록한 패스워드로 로그인해준다.
  • 바로 비밀번호를 바꿔준다.
  • 이번엔 root계정이 아니라 사용자계정으로 새로 계정을 만들어준다.
  • 로그인하면, 관리자의 승인이 필요하다는 메세지가 나온다.

  • 관리자로 로그인해서 계정생성을 승인해준다.
  • Sofeware developer 로 시작한다.

project 생성

  • 시작화면

  • 이름: test-project
  • 프로젝트를 생성해준다.

MobaXterm 에서 작업하기

git 설치

  • mkdir git-test && cd $_
  • echo "HELLO" >> README.txt
  • sudo yum install git -y
  • git init
  • git config --global user.email "test@example.com"
    • 버전 관리를 위해 내 정보 설정
  • git config --global user.name "cocudeny"

git add, commit

  • git add README.txt
  • git commit -m "add a site"
  • echo "Aloha: >> README.txt
  • git add README.txt
  • git commit -m "add Aloha"

git rollback

  • git log
  • git checkout [버전 ID]
  • cat README.txt
  • git checkout -

원격저장소 add

  • git remote add origin http://192.168.0.185/cocudeny/test-project.git
    • 원격 저장소를 지정한다.

원격 저장소에 push

  • git branch -m main
    • gitlab 저장소는 branch가 main으로 되어있다.
    • branch -m 명령어로 main으로 설정해준다.
  • branch를 먼저 안해주면, 위와 같은 저장소 경로 에러가 난다.
    • 만약 이 상황이라면 git pull -u origin main으로 pull로 branch를 초기화 해줘야 한다.
  • git push origin main
  • 잘 push 되었다.

오후강의


  • 현재 Branch에 보호가 걸려있어서 이전과같은 에러가 나왔다.

다시 연습

  • rm -rf git-test/
  • mkdir git-test && cd $_
  • git init
  • echo "Hello World" > README.txt
  • git config --global user.email "test@example.com"
  • git config --global user.name "cocudeny"
  • git add README.txt
  • git commit -m .
  • echo "Aloha" >> README.txt
  • git add README.txt
  • git commit -m "add aloha"
  • git log
  • Protection branch 를 Unprotected로 설정하니, 잘 PUSH 된다.

운영자측에서 보기

git clone

  • git clone http://192.168.0.185/cocudeny/test-project.git
    • VM에서 벗어나 git cli에서 위 명령어로 clone 해본다.

운영자에서 push

  • git clone에서 받은 README.txt파일에 데이터를 추가하고, 다시 push해본다.
  • 오른쪽 창과 같이 로그인 화면이 나온다.
  • 로그인을 완료하면 push가 진행된다.

    데이터가 잘 들어갔다.
  • pull 명령어로, 변경사항을 업데이트 한다.

README.txt 삭제

  • README를 삭제한다.
  • git rm README.txt
  • git commit -m "remove README"
  • git oush -uf origin main
  • gitlab에서도 사라졌다.
profile
Talking Potato

0개의 댓글