====== Jenkins Groovy Hook ====== * [[https://www.jenkins.io/doc/book/managing/groovy-hook-scripts/|Groovy Hook Scripts]] * ''$JENKINS_HOME/init.groovy'', ''$JENKINS_HOME/init.groovy.d/''에 넣어둔 ''.groovy'' 파일로 Jenkins 가 다 뜬 뒤의 작업을 할 수 있다. * ''$JENKINS_HOME'' 은 보통은 ''/var/lib/jenkins''이다. * 출력은 ''/var/log/jenkins/jenkins.log'' 에 남는다. * see [[ci:jenkins:startup_trigger|Jenkins Startup Trigger Plugin]] ===== 자동 admin 생성 ===== * [[https://www.popularowl.com/jenkins/automating-jenkins-install-docker-terraform/|Automating Jenkins install and configuration with Docker and Terraform - Popularowl]] - groovy 스크립트는 너무 오래돼서 안 맞음. * [[https://gist.github.com/hayderimran7/50cb1244cc1e856873a4|Jenkins Groovy enable security and create a user in groovy script]] 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." }