배포할 특정 서버를 대상으로 Jenkins 작업을 구성하려면 어떻게 해야 합니까?

배포할 특정 서버를 대상으로 Jenkins 작업을 구성하려면 어떻게 해야 합니까?

두 개의 CentOS 서버를 사용하고 있습니다. 코드 저장소를 사용하지 않습니다. Jenkins에서 "New Item"을 클릭하면 대상 서버에 들어갈 곳이 보이지 않습니다. 주어진 빌드에 대한 대상 서버를 구성할 장소(예: bash 명령을 실행하거나 Jenkins 서버에서 대상 서버로 파일을 전송하는 장소)를 기대합니다. Jenkins는 Linux 측에서 Jenkins 사용자로 실행되므로 루트로 SSH를 통해 연결할 수 없습니다. Jenkins를 지원하는 Linux 서버에서 파일을 전송한 후 루트가 되어 명령을 실행하고 싶습니다. Jenkins의 "새 항목" 빌드 단계에서 기본 셸 명령을 사용하여 이 작업을 수행할 수 있습니다. 그러한 명령에 대한 자유 텍스트 필드가 있습니다. 하지만 비밀번호 질문에 대화식으로 응답하는 방법을 모르겠습니다.

지정된 배포의 대상 서버를 어디에서 구성합니까?

Jenkins 작업에 루트 비밀번호를 하드 코딩할 수 있나요? 그렇다면 어떻게 해야 합니까? sshpass를 설치하고 싶지 않습니다.

핵심 Jenkins 외에도 하나의 Linux 서버에서 다른 Linux 서버로 파일을 배포하려면 어떤 플러그인이 필요합니까?

답변1

Jenkins에서는 레이블을 사용하여 프로젝트를 빌드할 수 있는 위치를 정의합니다. 새 항목을 생성하면 (작업 구성에서) "이 프로젝트를 실행할 수 있는 위치 제한"이라는 확인란이 표시됩니다. 여기서는 슬레이브 노드 이름(예:slave4.mycompany)을 사용하거나 여러 슬레이브에 대한 컨테이너인 레이블을 생성할 수 있습니다. 올바르게 작성되면 이 작업은 항상 지정된 슬레이브 노드에 구축됩니다.

그보다 더 많은 기능이 필요하다면 NodeLabel 매개변수 플러그인(nodelabelparameter)을 사용해 보세요. Jenkins 관리 > 플러그인 관리 > 사용 가능에서 설치할 수 있습니다.

빌드 중에 현재 있는 노드를 식별하려면 예를 들어 $SLAVENAME이 "buildslave1"을 반환하는 것처럼 두 빌드 슬레이브 모두에서 영구 환경 변수를 수동으로 설정하거나 스크립트에서 linux "hostname" 명령을 사용하여 현재 컨텍스트를 식별할 수 있습니다. , 해당 출력에 따라 진행 방법을 결정합니다.

관련 정보