Jenkins Slave Instance 띄우기
AWS instance 띄우는거 참고
Jenkins Master에 slave-node 등록하기
- Jenkins >
- New Node
- SSH 접속을 위한 계정 생성
- Jenkins > Credentials
- global 선택
- Add Credentails
- SSH Username with private key
- private key - enter directly ( 이제 private key 를 만들러 가보자 )
- 아까 생성한 AWS instance에 접속
- jenkins-slave user 생성
- sudo -s
- cd /home
- mkdir jenkins-slave-1
- useradd jenkins-slave-1
- chown jenkins-slave-1:jenkins-slave-1 jenkins-slave-1
- ll ( 잘 만들어졌는지, group user 설정은 잘 됐는지 확인 )
- jenkins-slave-1의 ssh key 생성
- sudo -s
- su jenkins-slave-1
- ssh-keygen
- 이대로 생성하면 private-key를 믿을수 없다고 나옴 ( Server rejected the 1 private key(s) for )
- cat id_rsa.pub > ~/.ssh/authorized_keys ( SSH 기본 공부하자 ) (c )
- slave instance에 JDK 설치
- sudo -s
- vim /etc/sudoers -> userid ALL=(ALL:ALL) ALL
- su userid -> sudo apt-get install default-jdk
- Jenkins >
- New Node
- SSH 접속을 위한 계정 생성
- Jenkins > Credentials
- global 선택
- Add Credentails
- SSH Username with private key
- private key - enter directly ( 이제 private key 를 만들러 가보자 )
- 아까 생성한 AWS instance에 접속
- jenkins-slave user 생성
- sudo -s
- cd /home
- mkdir jenkins-slave-1
- useradd jenkins-slave-1
- chown jenkins-slave-1:jenkins-slave-1 jenkins-slave-1
- ll ( 잘 만들어졌는지, group user 설정은 잘 됐는지 확인 )
- jenkins-slave-1의 ssh key 생성
- sudo -s
- su jenkins-slave-1
- ssh-keygen
- 이대로 생성하면 private-key를 믿을수 없다고 나옴 ( Server rejected the 1 private key(s) for )
- cat id_rsa.pub > ~/.ssh/authorized_keys ( SSH 기본 공부하자 ) (c )
- slave instance에 JDK 설치
- sudo -s
- vim /etc/sudoers -> userid ALL=(ALL:ALL) ALL
- su userid -> sudo apt-get install default-jdk
GitLab <-> Jenkins 연동하기
처음에 jenkins에서 git checkout을 해보면 다음과 같은 에러 확인 가능
stderr: Host key verification failed.fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
- GitLab > User Settings > SSH Keys
- jenkins-slave-1 ( jenkins-slave ) 의 public_key ( .ssh/id_rsa.pub ) 를 입력하면 됨
Jenkins Slave Instance에 Docker 설치 및 권한 부여
+ docker build -t 프로젝트 이름 -f ./Dockerfile .
time="2018-07-02T09:52:49Z" level=error msg="failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: permission denied"
context canceled
- sudo usermod -aG docker jenkins-slave-1
- su jenkins-slave-1
- group ( docker가 출력되는 것을 확인 )
+ docker build -t 프로젝트 이름 -f ./Dockerfile . time="2018-07-02T09:52:49Z" level=error msg="failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: permission denied" context canceled
Harbor 연동하기 ( Public 주소로 )
https://'HARBOR의 private IP'/v2/: dial tcp 'HARBOR의 private IP':443: getsockopt: connection refused
Running shell script
+ docker push 'HARBOR의 private IP'/project명:76
The push refers to repository ['HARBOR의 private IP'/project명]
Get
- Slave -> Harbor 접근할 수 있게 해줘야 함
- Security Group 추가하기
- Slave의 Public IP ( 80, 443 ) 추가
https://'HARBOR의 private IP'/v2/: dial tcp 'HARBOR의 private IP':443: getsockopt: connection refused
Running shell script + docker push 'HARBOR의 private IP'/project명:76 The push refers to repository ['HARBOR의 private IP'/project명] Get
- Slave -> Harbor 접근할 수 있게 해줘야 함
- Security Group 추가하기
- Slave의 Public IP ( 80, 443 ) 추가
80ec7fd9b2b5: Pushed 5d63025b1db7: Pushed error parsing HTTP 413 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>413 Request Entity Too Large</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>413 Request Entity Too Large</h1></center>\r\n<hr><center>nginx/1.10.3 (Ubuntu)</center>\r\n</body>\r\n</html>\r\n"
- NGINX 설정 ( /etc/nginx/nginx.conf ) 용량 설정 수정
Harbor 연동하기 ( Private IP로 )
Get https://'HARBOR의 private IP'/v2/: dial tcp 'HARBOR의 private IP':443: getsockopt: connection refused
- SSL 등록 가즈아