2012-01-11 6 views
5

저는 Jenkins와 개인 Github repos에 약간의 문제가 있습니다. 개인의 repo를 확인하려면, 하나는 일반적으로 필요로 두 가지 중 하나를Jenkins를 사용하여 여러 개인 Github repos를 체크 아웃하려면 어떻게해야합니까?

  • 그 REPO
  • 에 사용자의 개인 SSH 키가 REPO
  • 에 대한 등록 "배포 키"의 개인 SSH 키

이러한 종류의 상호 작용을 위해 배포 키가 만들어졌습니다. 문제는 배포 키가 프로젝트 전체에서 고유해야하므로 매번 다른 키를 사용해야한다는 것입니다. 이것은 모든 추가 저장소에 대해 Jenkins 사용자를 위해 ssh-agent에 다른 키를 추가해야한다는 것을 의미합니다.
이것은 또한 기본적으로 에이전트가 사용 가능한 모든 키를 시도하고 잘못된 키로 잘못된 시도를 한 후에 연결이 끊어 질 수 있음을 의미합니다.

Jenkins git plugin이 SSH 키를 가리키는 것을 허용하지 않는 것 같습니다. Jenkins는 체크 아웃 전에 명령 줄 상호 작용을 허용하지 않으므로 올바른 키를 설정하기 위해 배쉬 트릭을 사용할 수 없습니다.

  1. 는 사용자
  2. 에 공개 키를 추가 github에
  3. 에 "my_jenkins_account"사용자 만들기 내가 원하는 것 REPOS에 계정을 추가

    지금까지 유일한 해결책이 될 것으로 보인다 젠킨스

  4. 는 젠킨스 사용자

어떤 다른 제안에 사용자의 개인 키를 추가 사용하여 확인?

답변

13

이것은 정확히 대답이 아닙니다. 어둠 속에서 나는 거의 똑같은 것을 알 수 있습니다.

  1. 실행 젠킨스는 사용자로이 사용자로 jenkins
  2. sudo라고 키 공개 SSH를 만들
  3. myorg-machines
  4. myorg-machines 계정이 jenkins 사용자의 공개 SSH 키를 추가라는 무료 GitHub의 계정을 만듭니다 GitHub의 키. 나는이 열쇠의 이름을 jenkins on server.name.com으로 지정하여 정리했다.
  5. Machines - Pull only이라는 GitHub 팀을 만드십시오. 팀에 myorg-machines GitHub 사용자를 추가하고 해당 팀이 내 개인 프라이버시에 대한 액세스 권한을 확보하도록합니다.

나는 그것이 klunky 인 것처럼 여기는 데 동의하지만 실제로 1 년 정도 지나면 관리하기가 꽤 쉽다.

+1

감사합니다. 지금도이 설정을 실행 중입니다. 그것은 작동하지만 여전히 여전히 잘못 생각하고 있습니다. ( –

+0

저 장 서버는 저장소에 대한 추가 사용자로 작동합니다. 말하자면 저장소에있는 별도의 엔티티입니다. 완전히 불합리하지 않습니다. 이 엔티티를 github 사용자에게 매핑하십시오. (그렇게 말하면서, 그것은 여전히 ​​약간의 klinky입니다.하지만 그렇게해야합니다, 우리가가는 것 ...) – Cornelius

관련 문제