Git에 커밋되면 Jenkins의 Job이 움직이는 것을 시도하십시오.

5405 단어 Jenkinscentos7Git
전회의 계속입니다.
Git과 Jenkins를 로컬 서버 (CentOS7)에 구축하고 협력 해보십시오.

Git과 Jenkins의 연계는 가능했기 때문에, Git에 커밋되면 Job이 동작하도록 해 보았습니다.
예상되는 동작
①Git에 커밋
② Jenkins의 Job이 가동
③ 커밋된 Git에서 pull하여 최신 모듈을 획득

환경



· Jenkins 서버 (192.168.11.95)
CentOS 7.6.1810
Jenkins 2.150.2

· Git 서버 (192.168.11.96)
CentOS 7.6.1810
git 1.8.3.1

Git pull 대상 만들기



연계되어 있는지를 간단하게 확인할 수 있도록, pull처를 Apache의 DocumentRoot하하로 했다.
· 아파치 설치
yum install -y httpd
systemctl start httpd
systemctl enable httpd

· 커밋 된 Git 리포지토리에서 풀링 할 리포지토리 생성
cd /var/www/html
mkdir git-test
cd git-test
git init
git remote add origin  /root/local
git pull origin master

이제/var/www/html/git-test 아래에/root/local 아래와 유사한 파일이 배치됩니다.
그리고,
htp //192.168.11.96/기 t-st
에 배치되어 있는 파일의 일람을 확인할 수 있다.

Jenkins에서 Job 만들기



· 설정 화면으로 이동
"새 Job 만들기"를 클릭

・이름 설정
적절한 이름을 입력하고 "프리 스타일 프로젝트 빌드"를 선택하십시오.

· 관리 대상 리포지토리

※인증 정보 등은 상기 사항을 참조하십시오.
· 빌드 · 트리거
"SC< 폴링"을 선택

・빌드 내용
"쉘 실행"을 선택하고,
ssh 로오 [email protected] "cd/var/www/html/git-test; git pull origin master"
입력


결과



・동작 확인
콘솔 출력을 확인하면 "FAIRULE"이라고 나왔다. . .

· 원인 조사
jenkins 서버에서 만약을 위해 ssh 소통을 확인하면 정상 종료했다.
[root@jenkins ~]# ssh [email protected] "cd /var/www/html/git-test; git pull origin master"
From /root/local
 * branch            master     -> FETCH_HEAD
Already up-to-date.

Jenkins의 Job에서 "쉘 실행"으로 실행 유저를 확인해 보면, jenkins 유저인 것이 발각. . .

따라서 jenkins 사용자로부터 ssh하고 root 로그인할 수 있도록 변경.

대처



편하게 할 수 있을 것 같은 대응했습니다.
· jenkins 사용자 설정 변경
기본 설정은 jenkins 사용자에게 전환 할 수 없으므로 전환 할 수 있도록 변경
vi /etc/passwd
jenkins:x:996:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false
↓
jenkins:x:996:994:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
※最後を"bash"にしただけ

· 키 작성 및 배치
[root@jenkins etc]# su - jenkins
Last login: Wed Feb  6 21:27:30 JST 2019 on pts/0
-bash-4.2$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
※全部空欄でEnter
-bash-4.2$ ssh-copy-id [email protected]

이제 jenkins 사용자로 root 로그인할 수 있게 되어 있다.

재시도



· 즉시 실행
"빌드 실행"을 클릭


결과(2회째)




SECCESS! !

프로덕션 실행



Job이 가동되는 것을 확인했으므로, 실제로 커밋해 보아 pull 되는지를 확인한다
・사전 확인

· 커밋
[root@git local]# pwd
/root/local
[root@git local]# touch test3.txt
[root@git local]# git add .
[root@git local]# git commit -m "Job test"
[master 216860f] Job test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test3.txt

· 결과 확인

단단히 pull되었습니다!

사이고에게



이번에, Git와 Jenkins 모두 처음 만져서, 어느 쪽도 이해할 수 없는 것을 통감했으므로, 지적 있으면 꼭 받을 수 있으면이라고 생각합니다.

좋은 웹페이지 즐겨찾기