Jenkins의 JNLP 슬레이브를 쉽게 gradlew 한 번에 서고 싶다
Jenkins 슬레이브의 시작은 무책으로하면 귀찮습니다.
Jenkins에서는 빌드할 때 Jenkins 슬레이브를 세우게 됩니다만, 아래와 같은 이유로 귀찮습니다.
번거로움을 극복하다
그렇게 함으로써, 아래의 방침으로 Jenkins 슬레이브 세우기를 해 가게 됩니다.
슬레이브 등록이 번거롭다.
→ Swarm Plugin 을 사용합니다.
$ java -jar swarm-client.jar \
-master "http://JenkinsのURL" \
-name "スレーブの名前のプレフィックス" \
-uname "JenkinsにログインするID" \
-password "上記IDのパスワード" \
-fsroot "スレーブのワークスペースルートパス" \
-executors "エグゼキュータの数" \
-deleteExistingClients \
-label "スレーブノードのラベル1 ラベル2 ラベル3 ..." \
-mode "exclusive"
# あらかじめJenkinsのJNLPポートをあけておくこと / あらかじめ Swarm Plugin をインストールしておくこと
Jenkins에서 슬레이브를 연결하러 가는 방식(SSH라든지)이라면, Firewall 설정이 귀찮다.
Windows와 Linux, macOS등에서 다른 순서·프로토콜이 필요하게 된다.
하지만 Swarm Plugin의 JAR을 두거나 하는 것이 귀찮아 → Gradle화하면 좋다
위의 방법으로 해도, Swarm Plugin 클라이언트 JAR 를 다운로드・설치하는 것이 매우 귀찮습니다. 클라이언트 JAR의 버전 업도 할 수 없습니다.
그렇게 함으로써, Gradle 빌드 스크립트를 사용해 슬레이브의 JAR의 다운로드와 시작 모두를 하게 합니다.
build.gradle
repositories { mavenCentral(); maven { url "https://repo.jenkins-ci.org/releases/" } }
configurations { tool }
dependencies { tool "org.jenkins-ci.plugins:swarm-client:3.12" }
task start(type: JavaExec) {
classpath = configurations.tool
main = "hudson.plugins.swarm.Client"
args([
"-master", "http://JenkinsのURL",
"-name", "スレーブの名前のプレフィックス",
"-username", "JenkinsにログインするID",
"-password", "上記IDのパスワード",
"-fsroot", "スレーブのワークスペースルートパス ",
"-executors", "エグゼキュータの数",
"-deleteExistingClients",
"-labels", ["スレーブノードのラベル1","ラベル2","ラベル3","..."].join(" "),
"-mode", "exclusive", // 排他モード
])
}
defaultTasks "start"
위의 파일을 준비하고 아래 명령을 흘리면 슬레이브가 연결됩니다.
$ gradle
그렇다고 해서 이렇게 되면 Gradle의 설치도 번거롭기 때문에 Gradle wrapper 도 준비하면 Gradle의 설치도 불필요하게 됩니다.
# JDKのインストールはさすがに必要
$ ./gradlew
슬레이브를 시작하고 유지하는 것이 번거롭다.
이렇게 되면, 슬레이브를 시작·유지하는 것이 귀찮아져 옵니다.
Jenkins 슬레이브 시작 호스트 OS의 데몬 서비스 기능을 사용하여 프로세스를 유지합니다.
macOS 등, 요컨대 증명서나 특정 유저의 환경 포함의 Xcode로 빌드하고 싶다고 생각합니다만, 누군가의 유저 프로세스로서 기동하도록(듯이) 데몬을 구성하는 것을 추천합니다. (경우에 따라서는 슬레이브를 기동하기 위해서만, 전원 ON 후, 유저 로그인이라고 하는 순서가 필요하게 되는군요.)
지금까지 온 것은이 저장소에 있습니다.
그 중 리눅스 데몬의 등록 스크립트 더하기…
Reference
이 문제에 관하여(Jenkins의 JNLP 슬레이브를 쉽게 gradlew 한 번에 서고 싶다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/knjname/items/e262858f943ef76a0672텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)