사용자 도구

사이트 도구


ci:jenkins:groovy_hook

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
마지막 판 양쪽 다음 판
ci:jenkins:groovy_hook [2021/03/30 17:33]
kwon37xi [Jenkins Groovy Hook]
ci:jenkins:groovy_hook [2021/03/30 18:12]
kwon37xi
줄 3: 줄 3:
   * ''$JENKINS_HOME/init.groovy'', ''$JENKINS_HOME/init.groovy.d/''에 넣어둔 ''.groovy'' 파일로 Jenkins 가 다 뜬 뒤의 작업을 할 수 있다.   * ''$JENKINS_HOME/init.groovy'', ''$JENKINS_HOME/init.groovy.d/''에 넣어둔 ''.groovy'' 파일로 Jenkins 가 다 뜬 뒤의 작업을 할 수 있다.
   * ''$JENKINS_HOME'' 은 보통은 ''/var/lib/jenkins''이다.   * ''$JENKINS_HOME'' 은 보통은 ''/var/lib/jenkins''이다.
-  * 출력은 ''$JENKINS_HOME/jenkins.log'' 에 남는다.+  * 출력은 ''/var/log/jenkins/jenkins.log'' 에 남는다.
   * see [[ci:jenkins:startup_trigger|Jenkins Startup Trigger Plugin]]   * see [[ci:jenkins:startup_trigger|Jenkins Startup Trigger Plugin]]
  
 ===== 자동 admin 생성 ===== ===== 자동 admin 생성 =====
-  * [[https://www.popularowl.com/jenkins/automating-jenkins-install-docker-terraform/|Automating Jenkins install and configuration with Docker and Terraform - Popularowl]]+  * [[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]] 
 <code groovy> <code groovy>
-// 환경변수에 JENKINS_USER, JENKINS_PASS가 있을 때 
 import jenkins.model.* import jenkins.model.*
 import hudson.security.* import hudson.security.*
  
-// 이미 사용자가 존재할 때의 처리 필요. +def instance Jenkins.getInstance() 
- +// System.getenv("JENKINS_HOME"- 존재안함 
-def env System.getenv() +File adminCreatedMarker = new File("/var/lib/jenkins", ".adminCreatedmark"
- +println "mark file path : $adminCreatedMarker"
-def jenkins = Jenkins.getInstance() +
-if(!(jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm)+
-    jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(false))+
  
-if(!(jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy)) +if (adminCreatedMarker.exists()) { 
-    jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy())+    println "admin user already existsskip creating user." 
 +} else { 
 +    def hudsonRealm = new HudsonPrivateSecurityRealm(false) 
 +    println "admin does not exists. creating admin...." 
 +    hudsonRealm.createAccount("admin","admin"
 +    instance.setSecurityRealm(hudsonRealm)
  
-def user jenkins.getSecurityRealm().createAccount(env.JENKINS_USER, env.JENKINS_PASS+    def strategy new hudson.security.FullControlOnceLoggedInAuthorizationStrategy() 
-user.save() +    strategy.setAllowAnonymousRead(false
-jenkins.getAuthorizationStrategy().add(Jenkins.ADMINISTER, env.JENKINS_USER)+    instance.setAuthorizationStrategy(strategy)
  
-jenkins.save()+    instance.save() 
 +    adminCreatedMarker.createNewFile() 
 +    println "$adminCreatedMarker file created." 
 +}
 </code> </code>
ci/jenkins/groovy_hook.txt · 마지막으로 수정됨: 2021/06/07 14:25 저자 kwon37xi