-
[Jenkins] Github 연동 가이드관리 배포/jenkins 2020. 11. 6. 14:05
안녕하세요. 이번 시간에는 Jenkins Docker 컨테이너를 구동 시킨 상태에서 SSH 키를 생성하고, Github와 인증을 하기 위한 Credentail 설정 방법에 대해서 알아보도록 하겠습니다.
우선 Jenkins Docker 컨테이너에서 SSH 통신을 하기 위한 키를 생성합니다.
Jenkins Docker 컨테이너에서 SSH 키 생성
$ docker exec -it [jenkins 컨테이너 이름] ssh-keygen Created directory '/var/jenkins_home/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/jenkins_home/.ssh/id_rsa. Your public key has been saved in /var/jenkins_home/.ssh/id_rsa.pub. The key fingerprint is: SHA256:4X3F/isMl6fWkdkVdMT8NgZYhWLut3VIx8LS+/q2muk jenkins@2fbd2587df12 The key's randomart image is: +---[RSA 2048]----+ | o.+*o| | + + .+| | . o .o+.o| | . o ..o=o*| | S o .o+**| | + +oBo| | = *.+| | *o.+| | oE+*o| +----[SHA256]-----+
생성 된 Public SSH 키 검색
$ docker exec -it [jenkins 컨테이너 이름] cat /var/jenkins_home/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdZUwGGtkXr984apajzoW4WRz1SA644diuGHBk+JH9HTf5iw9p4BvMfaGvI5AWv0bgKtzeFsbzok5j2NQeWKHjM/2wDdI4xx6W37PQTHgItKteneBpY33K2i93SPFX83o077Z+B/xJ85r1RwbFgRjWJ/36kP3viCYKY5jOMhK+R4skVFX5Z0HQMyyyWYX608Ay/D9lPd4bPoVZWdoQ/defMWQM7AzKGrsoKGmyzWz7Ye9lqhydUDU6bKv/AeQMVdIBAlSoFoNsqWJqDmXgRZQB8fzPKZRoPk9o+9sH7RUUuilhYHW7qTVYEy4y2nH1Cym5ZCJw9/7qSA3Zomn40K+3 jenkins@2fbd2587df12
생성 된 Private SSH 키 검색
$ docker exec -it [jenkins 컨테이너 이름] cat /var/jenkins_home/.ssh/id_rsa -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAnWVMBhrZF6/fOGqWo86FuFkc9UgOuOHYrhhwZPiR/R03+YsP aeAbzH2hryOQFr9G4Crc3hbG86JOY9jUHlih4zP9sA3SOMcelt+z0Ex4CLSrXp3g aWN9ytovd0jxV/N6NO+2fgf8SfOa9UcGxYEY1if9+pD974gmCmOYzjISvkeLJFRV +WdB0DMsslmF+tPAMvw/ZT3eGz6FWVnaEP3XnzFkDOwMyhq7KChpss1s+2HvZaoc nVA1Omyr/wHkDFXSAQJUqBaDbKliag5l4EWUAfH8zymUaD5PaPvbB+0VFLopYWB1 u6k1WBMuMtpx9QspuWQicPf+6kgN2aJp+NCvtwIDAQABAoIBABBKTq8HElcIReMx 7PtxQZfN6Vhdp+Bsx59lOiTJMVrwLj3urZ64qkfk7NoSpTQlgfFrnkaCNv86WkCt TW8Cn2bDl8sj8xEbUsgsyRCTCY1lHaOCVZqyyG85W9ZNv2Tp90kJUmsC6pLA2tXu Dv5cGTT5GKlZXl7vSXijzEnzFsuItInCpavurJmFdbpJFNehkW2OBpaAtm0dG3aC VEJyVXvLIKoBYZjcI7LjlrvR98QXJo8wUpkit2RumO7yPa/XwlOoSer4DvRKwDNh nZbl/LqyAWiWZ3und2jTHrqt7H6kJ2loHZwIS2RkImCFkADFn2sUWKJ2SS884tUv 6UcwY6ECgYEAyTNWXT42sELBLjVa+MhnP3ZVdRKuRsjlnxHw5VlhSBdakzJY/OOh 0uP5U9fwIQod0uRBFTZRhGz/OJDbdbP2wBHsZqwXTPkfk4/U/Aq0ovQnrPVsMBuj Fw5GpMn5Ay/TVcDh9QeB2UfNusK1ZnITtm2TcgHGjRC9G6PkKraa30cCgYEAyEOt ME1stVLxoEuZGQotDq2ABkYOoaGyg3yFHqgKKhOvjCjPifJolPhQFeo8iKqKs3VW ZIfkvgtJPjtrSQQKS+OWy3qeyUo4/CzFjGLPfkGoMJQJ2m17IzVJQCNIh1L4COWK gQAEgh5nikjbsY+pboOkxNwUgqmlcBzORQd/RBECgYAT+T63nvd65AWderp/PBXT 3QF6z9HxQPxaoENT4V2g9ICPYE4pPMfR0cPsqOEzxndTeklju7K3/MIRcX/33Ve/ lYfsYWUmxQx3b63rH3zzOF2/89U7qWK1ZTtqHIrV4CeQucc0tfwT/+bShYXQl76R O6uJg9ecJW9AkTKTcvFI/QKBgQCd4ARbTN5DP+UuOgqym7wTkyGXUIleUIvbbkG/ fjetHiHJO68JD+n0bqEr9aHNF60Kdpkp3ZutWlZeUhds01uOoheRx9P/2Zx86Iq/ 9nGfFgGSclImOSLXCb36axZVYEobMWHz+mCTd4amlHNlUlz+u5ccfmdI7pZ2gK73 6kYhEQKBgFIzXqKdesXAFo9Db7Y0IGRO8pvWvWIyP//mL34UV9zPTmrMFQNVMmVA Ecu0okzn+hp2flmcAJKPHpxrWqbmlYUKegE9HN+ipUPbH88JXKDTrL2CIPe/9H6R qJm91qMj/CfIdnTjkpK9I99+VuojXmVj915mioNZSIWD9ln8IwpX -----END RSA PRIVATE KEY-----
다음으로 github 사이트에서 Jenkins에서 생성한 Public 키 값을 등록합니다.
checkout 받기를 원하는 레파지토리로 이동 후 [Settings] 버튼을 클릭합니다.
Jenkins의 Public 키값을 등록하기 위해서 [Deploy keys] 탭을 선택합니다.
[Add deploy key] 버튼을 클릭합니다.
Jenkins Docker 컨테이너에서 생성한 Public SSH 키 값을 입력하고 [Add key] 버튼을 눌러서 적용합니다.
마지막으로 [Jenkins 관리] 페이지로 이동하여 credentials을 설정합니다.
credential 생성을 위해서 [Manage Credentials] 메뉴를 선택합니다.
전체 도메인에서 적용 시키기 위해서 global 링크를 클릭합니다.
[Add Credentials] 버튼을 클릭합니다.
다음과 같이 필요한 설정 정보를 입력합니다.
- Kind : SSH Username with private key
- Private Key : Jenkins Docker 컨테이너에서 생성한 Private SSH 키 값을 입력
이와 같이 설정을 마친 후 Jenkins Item 설정 시 [소스 코드 관리]에서 Credentials 입력 란에 위에서 생성한 Credential을 선택해주시면 됩니다.
이상으로 Github와 Jenkins를 연동하는 방법에 대해서 알아보았습니다.
'관리 배포 > jenkins' 카테고리의 다른 글
[Jenkins] Execute shell script on remote host using ssh 사이트 등록 (0) 2020.11.09 [Jenkins] 스프링부트 프로젝트 배포 - 초기 배포 (1) (0) 2020.11.09 [Jenkins] Publish Over SSH 설정 (0) 2020.11.09 [Jenkins] Shell Script 실행 시 날짜를 파라미터로 넘기는 방법 (0) 2020.11.03 [Jenkins] Docker 컨테이너 구축 (0) 2020.11.03