【发布时间】:2017-06-01 20:49:27
【问题描述】:
要在 Jenkins 中创建新用户,管理员需要提供用户名、emialID 和密码。作为管理员,有没有办法一次将大量用户添加到 Jenkins,方法是提供他们的用户名作为他们的邮件 ID、显示名称作为他们的名字和一个通用密码*?
*假设每个用户登录时都会重置密码
【问题讨论】:
要在 Jenkins 中创建新用户,管理员需要提供用户名、emialID 和密码。作为管理员,有没有办法一次将大量用户添加到 Jenkins,方法是提供他们的用户名作为他们的邮件 ID、显示名称作为他们的名字和一个通用密码*?
*假设每个用户登录时都会重置密码
【问题讨论】:
我正在使用以下 groovy 脚本将用户添加到 Jenkins 并仅提供构建权限。
import hudson.model.*
import hudson.security.*
import hudson.tasks.Mailer
def userId = args[0]
def password = args[1]
def email = args[2]
def fullName= args[3]
def instance = jenkins.model.Jenkins.instance
def existingUser = instance.securityRealm.allUsers.find {it.id == userId}
if (existingUser == null) {
def user = instance.securityRealm.createAccount(userId, password)
user.addProperty(new Mailer.UserProperty(email));
user.setFullName(fullName)
def strategy = (GlobalMatrixAuthorizationStrategy)
instance.getAuthorizationStrategy()
strategy.add(hudson.model.Item.BUILD,userId)
instance.setAuthorizationStrategy(strategy)
instance.save()
}
脚本是使用 jenkins-cli 调用的。
【讨论】:
看起来 Jenkins cli 不支持添加用户,但请检查这个 - 使用 groovy 脚本可以做到。
Creating user in Jenkins via API
如果您想为每个作业授予特定权限,也许您可以使用 CLI get-job 和 update-job 命令。
或者你可以试试看这个 - Jenkins Add permissions to jobs using groovy 它讨论的几乎一样......
【讨论】:
将 Jenkins 连接到 LDAP 更容易。看这个插件here
【讨论】: