문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
ci:jenkins:groovy_hook [2021/03/30 17:36] kwon37xi [Jenkins Groovy Hook] |
ci:jenkins:groovy_hook [2021/06/07 14:25] (현재) kwon37xi [자동 admin 생성] |
||
|---|---|---|---|
| 줄 7: | 줄 7: | ||
| ===== 자동 admin 생성 ===== | ===== 자동 admin 생성 ===== | ||
| - | * [[https:// | + | * [[https:// |
| + | * [[https:// | ||
| <code groovy> | <code groovy> | ||
| - | // 환경변수에 JENKINS_USER, | ||
| import jenkins.model.* | import jenkins.model.* | ||
| import hudson.security.* | import hudson.security.* | ||
| - | // 이미 사용자가 존재할 때의 처리 필요. | + | def instance |
| - | + | // System.getenv(" | |
| - | def env = System.getenv() | + | File adminCreatedMarker = new File("/ |
| - | + | println "mark file path : $adminCreatedMarker" | |
| - | def jenkins = Jenkins.getInstance() | + | |
| - | if(!(jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm)) | + | |
| - | | + | |
| - | if(!(jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy)) | + | if (adminCreatedMarker.exists()) { |
| - | | + | |
| + | } else { | ||
| + | def hudsonRealm = new HudsonPrivateSecurityRealm(false) | ||
| + | println "admin does not exists. creating admin...." | ||
| + | hudsonRealm.createAccount(" | ||
| + | instance.setSecurityRealm(hudsonRealm) | ||
| - | def user = jenkins.getSecurityRealm().createAccount(env.JENKINS_USER, | + | |
| - | user.save() | + | |
| - | jenkins.getAuthorizationStrategy().add(Jenkins.ADMINISTER, | + | |
| - | jenkins.save() | + | instance.save() |
| + | adminCreatedMarker.createNewFile() | ||
| + | println " | ||
| + | } | ||
| </ | </ | ||