Проверьте, создан ли пользователь в Jenkins - PullRequest
0 голосов
/ 14 февраля 2019

Как проверить, если пользователь уже создан в Jenkins на Groovy?

Я использую этот скрипт для автоматического создания пользователя с правами администратора https://github.com/foxylion/docker-jenkins/blob/master/docker-images/master/default-user.groovy, но, к сожалению, он запускается каждый раз, когда контейнер докера (сэто) перезагружается.Следовательно, я теряю других созданных вручную пользователей в графическом интерфейсе Jenkins.

1 Ответ

0 голосов
/ 15 февраля 2019

Похоже, что getSecurityRealm () вернет impl, который будет включать HudsonPrivateSecurityRealm ..., поэтому похоже, что он будет работать:

import jenkins.model.*
import hudson.security.*
import org.acegisecurity.userdetails.UsernameNotFoundException
import org.springframework.dao.DataAccessException

def env = System.getenv()

def jenkins = Jenkins.getInstance()
jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(false))
jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy())

def user = null;
try {

  jenkins.getSecurityRealm().loadUserByUsername(env.JENKINS_USER);

} catch (UsernameNotFoundExceoption n) {
  user = jenkins.getSecurityRealm().createAccount(env.JENKINS_USER, env.JENKINS_PASS)
  user.save()

  jenkins.getAuthorizationStrategy().add(Jenkins.ADMINISTER, env.JENKINS_USER)
  jenkins.save()
} catch (org.springframework.dao.DataAccessException d) {
   /// log
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...