운영 노트 - CI / CD 의 docker, jenkins, gitlab, nginx

7847 단어 수송 하 다.
\ # 최근 에 정리 한 지식 이 좀 복잡 하고 매일 일 하 는 것 도 최근 2 년 동안 가장 치밀 한 단계 입 니 다.아니면 먼저 수 요 를 말 하 는 것 이 좋 습 니 다. 한 프로젝트 의 지속 적 인 발표, 해당 하 는 테스트 환경 에 대응 하 는 python + 슈퍼 visor 형식 입 니 다. 새로운 환경 을 자 르 고 docker 로 만 듭 니 다.그 전에 대략적인 절차 가 어떤 지 알 고 있 었 는데 실제 조작 을 하 느 냐, 아니면 여러 가지 문제 에 부 딪 혔 느 냐, 기계 환경 CentOS 7.5.
nginx
이것 은 더 말 할 필요 가 없다. 여러 곳 에 설치 사용 문서 가 있다.문 제 는 필자 가 기 계 를 받 은 것 이 새로 신청 한 것 이 라 고 생각 하지 않 고 nginx 를 설 치 했 지만 기계 가 신청 하면 동료 가 먼저 init 작업 을 하 는 것 을 발견 했다. 그 중에서 우리 회사 가 지정 해 야 할 nginx 를 설치 했다.따라서 자신 이 설치 한 것 은 사용 할 수 없습니다. 직접 yum 에서 마 운 트 를 해제 하지만 기본 적 으로 nginx 를 설치 할 때 가지 고 있 는 시스템 설정 을 제거 합 니 다.복구 과정: 1. CentOS 시작 명령 systemctl 에 대응 하 는 시작 파일 경 로 는 /usr/lib/systemd/system 이전에 설치 할 때 아래 nginx. service 를 덮어 쓰 고 마 운 트 해제 후 삭 제 했 습 니 다. 그러면 초기 화 된 nginx 가 시작 되 지 않 고 수 동 으로 관련 정 보 를 추가 합 니 다.2. nginx 를 시작 할 수 없 는 과정 에서 nginx 를 설치 하여 초기 화 된 nginx 정 보 를 덮어 쓰 는 줄 알 았 습 니 다. 남 겨 진 파일 을 수 동 으로 삭제 할 때 초기 화 된 nginx 명령 을 오 작 동 으로 덮어 서 nginx 의 실행 가능 한 명령 파일 이 빈 이름 의 파일 로 바 뀌 었 습 니 다.한참 을 뒤척이다 가 잘못 되 었 다 는 것 을 알 게 되 었 다. 해결 방법 은 다른 기계 에 가서 nginx 명령 파일 을 복사 하 는 것 이다.nginx 명령 경로: /nginx_install_dir/sbin/ 의 nginx 실행 가능 한 파일 입 니 다.
nginx 명령:
#   nginx  
nginx -V
#     nginx
nginx
#     nginx
kill -QUIT `cat /var/run/nginx.pid`
#   nginx conf    
nginx -t #    nginx -t -c your_config.conf

Jenkins + Gitlab
Jenkins 에 gitlab 플러그 인 을 설치 하여 gitlab 에서 Jenkins 구축 프로젝트 를 실행 할 수 있 습 니 다.Jenkins 는 Job 설정 에 "트리거 구축" 을 설정 하고 git 가 트리거 할 수 있 는 분기 와 gitlab 가 트리거 할 때 첨부 된 Secret token 을 지정 합 니 다.또한 Jinkins 의 구축 이 어떤 분기 의 푸 시 에 응답 하 는 지, 기본 으로 구 축 된 분기 이름 등 을 설정 할 수 있 습 니 다.
Gitlab 는 프로젝트 의 settings 에서 Integration 에서 webhook 을 만 들 고 Jenkins 의 gitlab 트리거 설정 에서 제공 하 는 갈고리 주 소 를 여기에 설정 하고 같은 Secret token 을 설정 합 니 다.이 네트워크 갈 고 리 를 촉발 시 킬 동작 을 설정 할 수 있 습 니 다.코드 자동 업데이트 완료.
docker 시작 프로젝트
docker 에 대해 서 는 이전에 두 편 이 비교적 상세 하 게 소개 되 었 으 며, docker 노트 1 과 docker 노트 2 를 참조 하 시기 바 랍 니 다.
docker 권한
제 공 된 Jenkins 에서 실 행 된 ci 스 크 립 트 사용자 가 지정 한 wuser, 그러나 기계 에 설 치 된 기본 값 은 루트 사용자 만 docker 관련 명령 을 실행 할 수 있 습 니 다. 이 곳 에 새 그룹 을 만들어 docker 의 실행 권한 을 수정 한 다음 wuser 실행 가능.docker. sock 권한 을 수정 합 니 다. 작업 은 다음 과 같 습 니 다.
# docker.sock          root  ,root    
$ ls -la /var/run/docker.sock
srw-rw----. 1 root root 0 8    1 14:44 /var/run/docker.sock
#       docker
$ groupadd docker
#   docker.sock     docker
$ chown root:docker /var/run/docker.sock
#  w_user     docker  
$ usermod -aG docker w_user
$ ll -la /var/run/docker.sock
srw-rw----. 1 root docker 0 8    1 14:44 /var/run/docker.sock

만약 당신 의 docker 그룹 이 이미 존재 한다 면, 직접 wuser 사용자 가 docker 그룹 에 추가
docker cache
docker 노트 2 에서 docker file 에 대한 작성 은 Cahe 의 설명 을 이용 하여 좀 더 자세히 설명 한 적 이 있 습 니 다.1. docker cashe 의 자동 재 활용 은 층 층 이 점진 적 인 관계 이다.step 4 에 변화 가 생 겼 다 고 가정 하고 Cahe 를 사용 하지 않 으 면 다음 단계 step 5, step 6... 모두 Cahe 2, ADD 명령 과 COPY 명령 에 추가 되 거나 복사 한 파일 내용 이 변 하지 않 으 면 이 층 의 Cahe 를 다시 사용 하지 않 고 중간 층 을 다시 구축 합 니 다.3. RUN 명령 에 외부 의존 이 존재 하 는 것 은 재 활용 중간 층 이 아 닙 니 다. 예 를 들 어 RUN apt update 4. docker build 명령 을 수행 할 때 수 동 으로 Cahe 를 사용 하지 않 는 것 을 지정 할 수 있 습 니 다. docker build -f your_docker_file --no-cache 구체 적 인 사용 은 각종 사용 장면 변화 에 따라 Cahe 의 자연 을 이용 하여 build 효율 을 크게 향상 시 킬 수 있 고 미 러 의 저장 공간 도 절약 할 수 있 습 니 다.
git command
흔히 볼 수 있 는 git command 는 군말 할 필요 가 없습니다. 평소에 git 를 사용 하면 명령 행 을 사용 할 수 있 는 도 구 를 사용 하지 않 는 것 을 권장 합 니 다.많은 사람들 을 만 나 오랫동안 개발 한 사람들 은 git 기본 사용 을 모른다.1. 어떤 파일 이 git 현재 버 전에 서 수정 되 었 는 지 비교 하 는 방법 은 무엇 입 니까?git rev-parse HEAD 현재 프로젝트 의 전체 버 전 번 호 를 얻 을 수 있 고 git rev-parse --short HEAD 파일 을 가 져 올 수 있 는 유사 한 명령 을 찾 지 않 았 지만 git rev-parse Options for Files 를 제공 하여 구체 적 인 호출 방법 을 찾 지 못 했 습 니 다.변형 가능: git log your_file | awk '{print 2}' 최근 에 제출 한 버 전 번 호 를 가 져 옵 니 다.2, git merge 단일 commit
git checkout target_branch
git cherry-pick commit_version_id

이렇게 해서 commtversion_id 가 제출 한 수정 사항 이 target 로 통합 되 었 습 니 다.branch 에.
Linux command
기본 명령
1, lsof - > ss 는 lsof 를 사용 하지 않 은 지 너무 오래 되 었 습 니 다. 대체 명령 ss 가 나 왔 습 니 다. ss -lnp | grep 80802. man 은 command 의 상세 한 설명 을 보고 MacOS 도 사용 할 수 있 습 니 다.
3, adduser 와 useradduser adduser youruser 는 your사용자 생 성 / home / youruser 디 렉 터 리, 로그 인 비밀 번 호 를 입력 하 라 고 요구 하 는 것 은 로그 인 가능 한 사용자 이 고 useradd 는 할 수 없 으 며 3 무 사용자 입 니 다.
4, chown 수정 파일 소속 사용자 또는 파일 소속 사용자 그룹 chown yourowner [: your_group] your_file
5. usermod 는 사용자 관련 정 보 를 수정 합 니 다. 사용자 소속 그룹 을 포함 하여 man 으로 상세 한 용법 을 봅 니 다.
6. top top 은 물론 이 고 top 상태 에서 1 을 누 르 면 cup 개 수 를 볼 수 있 으 며 2, z, m 등 을 누 르 면 스스로 시도 할 수 있 습 니 다. man 은 상세 한 용법 을 볼 수 있 습 니 다.
7. w 기계 부하 확인, 구체 적 인 수 치 는 기계 에 따라 배치 가 다르다.
postgresql
pg 는 상세 하 게 정리 해 야 하 며, my sql 과 유사 한 dump 데이터 용법 을 기록 해 야 합 니 다.
# dump   
pg_dump -hhost_ip -Udb_user -dyour_db > your_target.sql
#          
psql -hhost_ip -Udb_user -dyour_db -f your_target.sql

좋은 웹페이지 즐겨찾기