2014-09-04 2 views
1

build masters에 대한 질문이 있습니다. :)Windows/Linux 자동 키 교환

저는 build box을 가지고 있습니다. 나는 연속 빌드를 만들고, nightly unit tests을 실행합니다. Jenkins 우리의 컴파일러는 Windows 기반이기 때문에 창 상자에서 실행되는 빌드/단위 테스트 스크립트를 사용하고 있습니다.

우리 회사의 엔터프라이즈 솔루션 중 하나는 결함이있는 네트워크를 통해 특정 데이터베이스 테이블을 동기화하기위한 메시지 교환을 위해 rabbitmq과 함께 python 코드를 사용합니다. 업데이트가 제대로 발생하는지 확인하는 데 도움이되는 단위 테스트가 있습니다.

파이썬 업데이트를 단위 테스트하려면 필자의 리눅스 상자에서 실행중인 일부 서비스를 중단하고 파이썬 코드를 업데이트 한 후 다시 시작해야합니다. 내 윈도우 박스와 리눅스 박스 사이에 키 교환을 설정 했으므로 배치 스크립트에 패스워드를 넣을 필요가 없다. 내가 창 상자에 원격으로있을 때, 나는 성공적으로 키 교환에 의존하는 plink 명령과 puttypageant (백그라운드에서 실행 중임)을 사용하는 배치 파일을 실행할 수 있습니다. 예 : plink를 사용하여 배치 파일의 명령 줄에서 Linux 상자에 명령을 실행합니다. 그러나 Jenkins에서 배치 파일을 실행하려고하면 plink 명령을 실행할 때 ssh 암호를 묻는 메시지가 표시되므로 배치 파일이 제대로 작동하지 않습니다.

  1. 나는 젠킨스가 다른 사용자로 실행 정도 다른 시스템 자격 증명을 사용 할 수있다 생각한다

    나는 현재의 내 문제는 내가 확인하고 희망 수리 할 수있는 희망하고이 문제로 요약 될 수 있다고 생각 로그인 한 사용자처럼 연결할 수 없습니다. 이 경우 Jenkin 's가 암호를 묻지 않고 plink 명령을 제대로 실행할 수 있도록하려면 어떻게해야합니까?
  2. Pageant는 컴퓨터를 다시 시작할 때마다 암호를 입력해야하는 것처럼 보입니다. Google은 미화를 시작하는 방법을 보여주기 때문에 처음 로그인 할 때 프롬프트가 표시되지만 Linux 상자에서 어떻게 할 수 있는지 자동으로 확인해야합니다. Windows 업데이트로 인해 Windows가 재부팅되면 Linux 서버에 연결할 수 없으므로 장치 테스트가 실패합니다. 물론 이것은 일주일에 한 번 발생하지만 일년 내내 매우 성가시다.

위의 2 가지 문제를 해결하기 위해 내가 할 수있는 생각이나 아이디어는 크게 감사하겠습니다. 윈도우와 리눅스 사이의 자동 키 교환을위한 퍼티에 대한 좋은 대안이 있다면, 나는 또한 청각에 관심이있을 것이다. (나는 OpenSSH로 Cygwin에서 멀리 떨어져있는 것을 선호하지만, 위의 경로가 ' t 정류). 내가 할 노력하고있어 할 수있는 간단한 방법 https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin

답변

1

내가 매일 리눅스와 통신하기 위해 내 Windows 젠킨스 상자에 plink를 사용, Jenkin의 플러그인이 같은

+0

.ppk를 참조하도록 스크립트를 업데이트했으나 여전히 암호 구를 묻는 메시지가 나타납니다 ... "키의 구"jenkins to 10.2 키 교환 ": 연결이 끊겼습니다. '생각들? (나는 ssh-rsa 2048을 고소했다.) 컴퓨터에서 직접 실행할 때 작동하지만 스크립트를 통해서는 작동하지 않는다. ... 미인에서 키를 제거한 다음 박쥐 파일을 실행하면 같은 프롬프트가 나타난다. –

+0

알아 냈다. , 나는 패스워드를 사용하여 새로운 ppk wihtout을 생성해야만했다. 그런 다음 게시에 사용할 수 있었다. 고마워. –

0

이 같은데, 그것은 아무 문제가 없다 .

당신이 이론화 한 것처럼 Jenkins는 Administrator으로 로그인하더라도 자신의 사용자 (Windows 기본값, 내 생각에, SYSTEM 사용자)에서 실행되며 로그인 한 세션과 다릅니다.귀하의 인증 키는 (Administrator 또는 기타) 프로파일 디렉토리에 저장됩니다 당신이 다음 plink으로이 ppk 파일의 경로를 제공, ppk 파일로 키를 내보낼 Pageant를 사용하기 만하면 무엇

:

plink -i "C:\path\to\id.ppk"

+0

이것은 좋은 대안 인 것 같습니다. 그러나 다음과 같은 문제가 있었고이를 해결할 수 없었습니다. http://stackoverflow.com/questions/22345483/jenkins-publish-over-ssh-authentification-failed-with - 길을 비틀 거려서 게시물을 떠나는 열쇠. –

+0

SSH 플러그인을 통한 게시 문제 (기술적 인 문제가있을 수 있음)는 글로벌 구성에서 모든 서버를 사전 구성해야한다는 것입니다. 임의의 수의 서버가 연결되어있는 환경에 있다면 실제로 작동하지 않습니다. – Slav