사용자 도구

사이트 도구


ci:jenkins:groovy_hook

Jenkins Groovy Hook

  • $JENKINS_HOME/init.groovy, $JENKINS_HOME/init.groovy.d/에 넣어둔 .groovy 파일로 Jenkins 가 다 뜬 뒤의 작업을 할 수 있다.
  • $JENKINS_HOME 은 보통은 /var/lib/jenkins이다.
  • 출력은 /var/log/jenkins/jenkins.log 에 남는다.

자동 admin 생성

import jenkins.model.*
import hudson.security.*
 
def instance = Jenkins.getInstance()
// System.getenv("JENKINS_HOME") - 존재안함
File adminCreatedMarker = new File("/var/lib/jenkins", ".adminCreatedmark")
println "mark file path : $adminCreatedMarker"
 
if (adminCreatedMarker.exists()) {
    println "admin user already exists. skip creating user."
} else {
    def hudsonRealm = new HudsonPrivateSecurityRealm(false)
    println "admin does not exists. creating admin...."
    hudsonRealm.createAccount("admin","admin") // username, password
    instance.setSecurityRealm(hudsonRealm)
 
    def strategy = new hudson.security.FullControlOnceLoggedInAuthorizationStrategy()
    strategy.setAllowAnonymousRead(false)
    instance.setAuthorizationStrategy(strategy)
 
    instance.save()
    adminCreatedMarker.createNewFile()
    println "$adminCreatedMarker file created."
}
ci/jenkins/groovy_hook.txt · 마지막으로 수정됨: 2021/06/07 14:25 저자 kwon37xi