Linux 패키지 관리를 위한 GitLab CD 파이프라인

모두 좋은 하루!

모두 잘 지내고 계시길 바랍니다.

통신 및 정보 기술 도메인의 여러 기술이 관련된 여러 프로젝트에서 작업하면서 배운 내용을 공유하기 위해 이 기사를 작성하고 있습니다.

최근 프로젝트를 통해 GitLab, Ansible, Docker 및 Shell 스크립트와 같은 기술을 사용할 수 있었습니다.

사용 사례



GitLab 파이프라인을 사용하여 여러 Linux 시스템에서 패키지 관리

도구



CD 파이프라인을 구현하는 데 다음 DevOps 도구가 사용되었습니다.
  • GitLab - 버전 제어, 프로젝트 저장소, CD 파이프라인
  • GitLab-Runner — 파이프라인 단계 트리거
  • Linux 시스템 - 컨트롤러 노드 및 대상 노드용 Centos VM
  • Ansible - 대상 노드에서 변경 사항을 구현합니다
  • .
  • 셸 스크립팅 — 파이프라인 단계에서 사용되는 플레이북 실행

  • 건축물



    아래는 설정의 높은 수준의 아키텍처입니다.



    전제 조건


  • GitLab 프로젝트를 저장하고 CD 파이프라인을 구성할 수 있는 계정입니다.
  • Gitlab-runner 패키지를 다운로드하여 기본적으로 Linux 시스템인 컨트롤러 노드에 설치했습니다.


  • 프로젝트의 Gitlab-runner가 컨트롤러 노드에 등록되었습니다. GitLab → 프로젝트 → 설정 → CI/CD → Runners로 이동합니다. 컨트롤러 노드에 gitlab-runner를 등록하는 단계를 보여주는 단계까지 아래로 스크롤합니다.


  • 위에서 언급한 세부 정보를 사용하여 컨트롤러 노드에 러너를 등록합니다. 이 연습에서는 gitlab-runner용 셸 실행기를 사용하여 대상 컴퓨터에서 gitlab 작업을 트리거합니다.



  • Ansible이 컨트롤러 노드에 설치되었습니다. 테스트를 위해 인벤토리 파일은 localhost에 대한 항목으로 구성됩니다.

  • targetvm1 ansible_host=127.0.0.1 ansible_user=root
    




  • SSH password-less connectivity 컨트롤러 노드(gitlab-runner 사용자)와 대상 노드(모든 사용자)(linux 머신) 사이에 설정됨



  • Git은 로컬 시스템에 설치되어 로컬 리포지토리
  • 의 변경 사항을 복제, 풀 및 푸시합니다.



    구현


  • 로컬 시스템
  • Github에서 프로젝트를 복제합니다.


  • 디렉토리로 변경하고 variables.yml을 편집하고 언급된 매개 변수에 대한 값을 제공합니다
  • .


  • 변경 사항을 로컬 저장소에 커밋하고 원격 저장소에 푸시합니다
  • .




  • 변경 사항을 푸시하는 즉시 GitLab에서 파이프라인이 트리거됩니다. GitLab → 프로젝트 → CI/CD → 파이프라인으로 이동합니다.
  • 사전 검사, 사전 백업, 활동, 사후 백업, 사후 검사와 같은 단계가 파이프라인에 포함됩니다.





  • Ansible 플레이북은 다양한 운영 체제, 시스템 검사, 설치 전후의 시스템 백업, 패키지 업그레이드 및 제거에 대해 추가로 수정할 수 있습니다.

    좋은 웹페이지 즐겨찾기