All Articles

Jenkins pipeline tutorials - 3. Webhook settings

개요

아래 스펙의 jenkins를 설치하는것을 목적으로 합니다.

  • jenkins(host container)를 docker image를 사용하여 구동합니다.
  • jenkins login을 github auth와 연동합니다.
  • UI로 blueocean을 사용합니다.
  • Jenkins job item 으로 pipeline job(organization, multi branch) 을 사용합니다.
  • Groovy 언어로 작성된 Jenkinsfile 을 사용합니다.
  • 메일발송으로 emailext plugin를 사용합니다.
  • jenkins job을 docker agent를 사용하여 구동합니다.(위의 host container와 구분되는 runner container 입니다)

목차

과정

3. Webhook settings

  • GitHub 에서 일어나는 push, commit, tag 등의 액션을 Webhook 으로 Jenkins 에서 받아보도록 설정합니다.
  • Manage Jenkins > Configure System > GitHub > Add GitHub Server
    3d942b0696990457e5a931ed8fdafb4c

  • Name - github (이름은 자유입니다.)
    API URL - https://api.github.com (기본값입니다.)를 입력해줍니다.
  • 참고: GitHub Enterprise 의경우 API URL 란에
    https://GITHUB-ENTERPRISE-URL/api/v3 를 입력해줍니다.
    스크린샷 2019-05-01 오후 10 06 36

  • Credentials에 Add > Jenkins 를 누른 뒤
    GitHub에 접근할 계정, 패스워드, id - github-account 를 입력해줍니다.
    앞으로 진행할 Github Organization, Repository 에서 Owner 권한이 있어야합니다.
    377fd0b313cf9429c1288c4df0111ee8

  • 하지만 여전히 credentials 리스트에는 등록한 계정은 없고 - none - 밖에 없습니다.
    스크린샷 2019-05-01 오후 10 13 43

  • Credentials 에는 여러종류가 있는데, 방금은 Username with password 를 등록했고,
    GitHub Server 의 Credentials 는 secret text (GitHub Personal Access Token) 종류를 필요로 합니다.
    (방금 등록한 GitHub username, password 은 이 작업말고 다른곳에 쓰일예정입니다.)


  • 따라서 이제 secret text (GitHub Personal Access Token) 을 등록해줘야 하는데,
    수동으로 https://github.com/settings/tokens/new 에서 Personal Access Token 을 직접 등록해도 되지만,
    이번 과정에서는 방금 등록한 GitHub username, password 를 이용해서 Personal Access Token 을 자동생성해봅니다.
    참고: https://GITHUB-ENTERPRISE-URL/settings/tokens/new image

  • Advanced…(두개중 아래에있는것) >
    Manage additional GitHub actions > Convert login and password to token 선택
    077946d999a9660867eb26f6e3ff72bf

  • Credentials - 방금 등록한 계정 선택, Create token credentials 클릭
    참고: GitHub Enterprise 는 API URL 을 https://GITHUB-ENTERPRISE-URL/api/v3 로 변경해줍니다.
    b9e6596277961a189ba9b616f696df73

  • 이러면 GitHub 에는 Personal Access Token 이 생성되고,
    그 토큰이 jenkins Credentials 에 secret text의 형태로 저장됩니다.
    참고: https://github.com/settings/tokens 에서 확인가능합니다.
    GitHub Enterprise: https://GITHUB-ENTERPRISE-URL/settings/tokens
    image

  • 위에 Credentials 로 돌아가면 여전히 - none - 밖에 없는데,
    저장후 다시 Manage Jenkins > Configure System 를 들어오면,
    드디어 리스트에 auto generated token 이 등장합니다.
    image

  • Credentials을 고르고, Test connection으로 작동을 확인해줍니다.
    fa9191e33bcbf5c33c70b05992328efd

  • Save 를 클릭합니다.
    image

  • 이제 Jenkins 는 방금 등록한 Personal Access Token 을 활용해서
    앞으로 만들 Pipeline Organization, Multibranch job 의 GitHub Organization, Repository 에 webhook을 자동으로 생성합니다.
  • Ref: cloudbees - GitHub Integration: Webhooks

Published 1 May 2019

kujyp 개발블로그

ML DevOps, Python, Docker ...
kujyp on Github