[EasyCi] 지속적인 통합 배달, 상자 밖으로 자동 배포 시스템을 한 번의 클릭으로

머리말

  그런 다음,이 회사는 처음에 나는 리눅스 그냥 더 잘 알고, 움직이지 않았다 인해 회사의 운영 및 유지 보수 인력에, 인터넷 회사의 자바 개발을이었다 회사 젠킨스, Gitlab, 메이븐 PW, 도커 PW, Sonarqube, 이엘 케이, FastDFS 등의 서버를 설정 운영 및 연속 통합 환경의 유지.

  그것은 내 손으로이 작업 또한 유지 보수 후 ...... 보통 시스템 개발, 운영 및 유지 보수뿐만 아니라 파트 타임으로 할 것을 발견, 프런트 엔드의 일부 또는 백 엔드 젠킨스를 게시 나 등, 프로젝트를 생성 gitlab 후크를 추가, 파일을 dockerfile 추가를 찾고 있습니다 .

  그래서 나는 통합 지속적인 릴리스 시스템의 간단한 세트를 작성합니다. 다음 EasyCi있을 것입니다.

  목적 EasyCi 시스템 개발 수동으로 프로젝트의 자식 gitlab 주소의보기 등 ​​중복 작동, gitlab 후크를 추가 gitlab 코드 인증을 당겨, 원격 출판 비밀 무료 착륙에서 제거됩니다. 이러한 작업은 백그라운드에서 자동으로 완료, 시스템이 런타임 환경 키 설치 스크립트, 자동 설치 및 시스템의 구축을 제공, 상자 밖으로, 당신은 원격 건설 프로젝트에 대한 몇 가지 매개 변수를 필요 만 자바 프로젝트를 지원하고 VUE를 구축 .

  Easyci 시스템은 후방 프레임 프런트 엔드 뷰 소자 UI를 사용하여 데이터베이스 MySQL이 springboot하여, B / S 구조를 사용하여, 실행 도구는 실시간 웹 소켓 로그 전송을 사용하는 쉘 스크립트이다.

  독립적으로 프런트 엔드 개발에 날에 의해 개발 된 시스템이 매우 좋지 않다 때문에, 페이지, 기본적인 기능, 비교적 간단 기능 및 후속 페이지가 최적화됩니다.

시스템 아키텍처

젠킨스 시스템 아키텍처

툴체인

젠킨스 : 다양한 도구의 통합, 지속적인 통합, 연속 배달

Gitlab는 : 코드 gitlab 후크 젠킨스 지속적인 통합 배달에 의해 트리거, 라이브러리를 호스팅

메이븐 PW : 개인 창고 항아리 패키지

도커 PW : 원격 건물에 대한 개인 고정 표시기 미러 저장소

Sonarqube : 코드 검토 도구

ELK : 전화 시스템 로그 분석 시스템

방법

1.Jenkins는 gitlab, 받는다는, 고정 표시기, sonarqube, 다양한 플러그인을 설치 통합

2. 개발자는 코드 젠킨스를 구축하기 위해 추가 할 수 젠킨스에게 프로젝트의 URL gitlab 후크를 트리거, gitlab 제출

3.jenkins 자동 포장하고 고정 표시기 미러 PW 제출 미러 고정 표시기 고정 표시기에 조립 프로젝트 gitlab 코드 당기는

4. 연결 서버 버전은 고정 표시기 PW는, 컨테이너가 RUN 고정 표시기를 실행하는 항목으로 당겨 미러링 필요 

미래 롤백에 대한 기준으로 완성 프로젝트를 빌드 실행됩니다 gitlab 태그를 추가하고 5.Jenkins 후 gitlab 제출

6.Jenkins가 자동 당겨 최신 gitlab 태그, 롤백을 다시 구축하는 데 실패, 롤백 다시 중지 구축 실패

7. 성공을 만들거나 성공을 롤백 또는 실패는 전자 메일 경고 센드 메일의 리눅스 및 추가 빌드 로그를 전송하여 롤백됩니다

8. 건물 코드는 sonarqube 플러그 sonarqube 코드 검토에 의해 업로드됩니다

도 시스템.

 

 

EasyCi 시스템 아키텍처

툴체인

EasyCI : easyci 시스템 배경은, 쉘 스크립트를 호출, 인터페이스 프론트 엔드에 의해 반환되는 결과

EasyCI-UI : 무대 easyci 시스템, VUE. 인터페이스는 데이터를 노출 다시 전화

Gitlab가 : 코드 도구를 호스팅, gitlab 후크 제공 연속 통합 트리거 easyci

쉘 스크립트 : 리눅스 스크립트

도커 PW : 원격 건물에 대한 개인 고정 표시기 미러 저장소

MySQL은 : easyci 시스템 데이터베이스

방법

1. 시스템을 부팅 시스템을 설치하려면 설치 파일에 따라

먼저 시스템 필요 2. 액세스 gitlab을 확인하려면 다음 URL, 사용자 이름과 암호를 gitlab. 항목을 선택 건설은 자동으로 수동 조작을 대체 후크를 추가, 코드 검증 서버를 당깁니다.

3. 원격 제작사 추가 : 서버 IP, 포트, 사용자 이름과 암호를. 원격 출판 프로젝트에 대한 서버 사이의 무료 비밀을 완료하기 위해 백그라운드에서 자동으로 로그인 서버 컨테이너 및 컨테이너 다양한 작업을 볼 수 있습니다.

4. 배포 : 선택 항목 URL을 입력 고정 표시기 컨테이너 포트 매핑 관계, 배포 서버, 전개를 완료하기 위해 입력해야 할 두 가지,받는 사람의 사서함을 입력, 프로젝트 유형을 선택을 선택합니다.

배치 5., 윈도우 디스플레이 시스템 구축 로그를 나타납니다.

후크가 자동 트리거의 건설을위한 배포 프로젝트 후크 easyci 6. 배포는 자동으로 인터페이스 URL을 추가합니다.

7.받는 사람의 사서함에 메시지를 보내 자동으로 배포 로그를 구축, 구축 프로젝트를 빌드 시간을 빌드 결과를 표시합니다.

gitlab 8. 팔로우 개발자는 자동 배포 지속적인 통합을 구현하는 쿼리를 배포하기 전에 후크 호출 easyci 인터페이스 정보를 gitlab 트리거, 프로젝트에 코드를 제출합니다.

9. 페이지 표시 컨테이너는 컨테이너를 실행하는 시스템을 easyci하고 원격 서버가 실행되고 추가하고 자동 새로 고침 지원 데이터를 해제

당신은 원격 서버를 추가 할 수 있습니다 (10)는, 서버 컨테이너의 목록을 보려면

(11) 동작의 용기 : 재시작 | | RM 컨테이너 이름을 | 중지, 시작 고정 표시기 페이지에서 실행되는 컨테이너 서버를 운영 파괴, 시작, 중지, 다시 시작을 클릭

12 .. 용기 실시간 로그 : 로그를 클릭, 당신은 -f 컨테이너 이름 로그를 고정 표시기 컨테이너의 실시간 로그를 볼 수 있습니다

설치 자습서

1. 시스템 준비

  • 이 시스템은 Centos7 시스템을 지원
  • 구성 2H4G
  • 고정 IP

1. 런타임 환경 회사 서버 easyci 같은 가상 머신의 분리뿐만도 위 요구.

참고 : easyci가 먼저 로컬 컨테이너를 실행 결과의 배포를 테스트 한 다음 컨테이너를 실행하는 원격 서버로 전송, 포트를 점유에주의를 지불하기 때문에 가상 머신이 다른 서비스를 실행하지 않는 것이 좋습니다.

2. easyici.zip WinSCP를하거나 좋아 xftp.

저는 여기에 / 루트 디렉토리를 넣어.

 xshell 또는 다른 도구를 통해 3. Connect 서버.

 / 루트 디렉토리를 입력합니다, 압축 해제 easyci.zip

 무 감압 압축 해제 명령이 실행 할 수없는 경우 냠 -y의 압축을 풀고 설치를 설치

다시 압축을 풉니 다. 압축 해제 후 easyci 폴더를 생성합니다.

 5. 폴더 easyci로 이동

 6. 편집 install.sh는 라인 (35)은 수정 된 기본 로컬 호스트의 IP를 수정

  • 우리는 설치

보도하고 "ℹ️가"를 입력 편집을 누르고, 로컬 호스트 고유 IP를 수정

 WQ가 입력 저장 입력 : ""편집 한 후 편집 모드를 빠져 나오려면 "ESC"를 누르십시오.

 필요에 따라 설치 스크립트는 필요한 모든 도구를 설치하는 easyci 시스템 배포하고, 조정할 수 있습니다.

7. 설치 스크립트, 시스템 설치를 실행

  • bash는 install.sh

시스템 설치는 네트워크 속도를보고 구체적으로는 약 20 분 지속됩니다.

다음 다이어그램, 우리의 시스템 초기 설치를 완료하는 데 필요한 도구를 제공합니다.

 

 제 과부하은 / etc / 프로파일 구성 파일.

  • 소스은 / etc / 프로필

테스트 자바, 받는다는 등 정상적인 설치 여부와 같은 노드 명령.

  • 자바 -version
  • MVN의 -v
  • node -v
  • 해발 -v

 좋아, 완벽한 도구를 누르고 있습니다.

9. 영구적으로 폐쇄 SELinux를

  • VI의 / etc / SELinux가 / 설정

알림 selinux = 수행 및이 SELINUX = 비활성화 변경
사항을 적용하려면 다시 시작해야을 설정 한 후.

10. 루트 사용자 원격 액세스 MySQL은.

  • MySQL의 -hlocalhost -uroot -p123456
  • * 모든 권한을 부여 * 뿌리 @ 식별 "%"를. ".";
  • 플러시 특권;
  • 출구

 11. 시작 시스템

 홈 디렉토리 / home / easyici에 Easyci 시스템

실행 시스템을 시작 ./StartEasyCi.sh

  •  NETSTAT의 -tunlp | 그렙 -E '9875 | 81 "

프런트 엔드보기와 백 엔드 포트 (81) 9875 포트가 성공적으로 열려 있습니다.

자습서

1. 시스템의 IP에 액세스하려면 브라우저를 열고 : 81

 이 시스템은 처음 gitlab을 확인해야하기 시작합니다.

gitlaburl : gitlab 주소를 입력 HTTP를 추가하지 마십시오 :

암호 사용자 이름 : 우리는 관리자가 루트 사용자 이름과 암호를 사용자 이름과 암호를 권장합니다.

/ @ 여기에 암호를 포함하지 않는 다른 특수 기호, 또는 자식 풀의 무료 인증이 실패 참고 :

로그인 배경 gitlab API를 입력하려면 여기를 클릭하면 액세스 토큰을 얻기 위해 호출 서버에서 사용하는 기밀 배포를 구축하는 프로젝트를 선택, 코드를 당겨 무료로 가져옵니다.

2. 원격 서버 배포 추가

 정보를 입력하려면 추가를 클릭, 공개 키 시스템은 원시 서버 비용, 파일은 무료 비밀 착륙을 달성하기 위해 인증 서버에 추가됩니다.

컨테이너가 추가가 완료되면 서버의 목록이 표시됩니다 고정 표시기, 당신은 다시 시작, 파괴, 실시간 로깅 작업을 보려면, 시작, 중지 할 수 있습니다.

 서버를 추가, 용기의 목록과 본 기계의 컨테이너를 추가 할 수있는 목록 서버를 표시합니다.

如果有多个远程服务器,可以选择某个服务器,查看该服务器的容器列表,也可以开启自动刷新,实时刷新容器数据。

 “启动|停止|重启|销毁”等操作同步docker start|stop|restart|rm 容器名称。

“日志”可以查看该服务器的实时日志,即docker logs -f -tail 200 容器名称。查看该容器近200行日志,并实时刷新。

 3.项目构建

点击选择需要部署的gitlab醒目

 端口输入端口映射对。

由于是采用docker容器运行。需要设置映射端口

例如6000:5000

前面的6000为宿主机对外访问开放的端口,后面的5000为构建项目的端口,注意“:”为英文状态下

项目语言选择vue或者java。

收件人邮箱:如果有多个以“,”分割

部署方式:选择要部署的服务器。

注意:本系统是在本地先运行测试容器是否正常运行。运行正常则本地会删除容器释放端口,再发布到远程服务器运行。

所以注意本地端口占用。系统初始端口如下:

22、25、81、5000、3306、9875、68、323

即端口映射前面的端口不能为上述端口。

 如果本地或者远程端口被占用,会停止构建,弹窗提醒。

这里easyci本地运行的docker私服占用了5000端口,再发布5000端口的宿主映射会提示“端口已被占用”

 换其他端口,开始部署,显示部署日志

 容器部署成功会有邮件提醒。

 部署日志

추천

출처www.cnblogs.com/jxd283465/p/11714490.html