Skip to content

jenkins利用groovy批量创建用户 #16

@lee3164

Description

@lee3164

简单记录下,首先需要有jenkins-cli.jar这个jar,才能通过远程操作jenkins。groovy脚本如下:

import hudson.model.*
import hudson.security.*
import hudson.tasks.Mailer
import jenkins.model.*
import java.util.*
import com.michelin.cio.hudson.plugins.rolestrategy.*

println "start"

def userName = "YOUR_NAME"
def roleName = "YOUR_ROLE"
def password = "YOUR_PASSWORD"
def email = "YOUR_EMAIL"
def instance = jenkins.model.Jenkins.instance
def userExist = instance.securityRealm.allUsers.find {it.id == userName}

if (userExist) {
    println "user exist"
    return
}

def user = instance.securityRealm.createAccount(userName, password)
user.addProperty(new Mailer.UserProperty(email));
def authStrategy = Jenkins.instance.getAuthorizationStrategy()
if(authStrategy instanceof RoleBasedAuthorizationStrategy){
    RoleBasedAuthorizationStrategy roleAuthStrategy = (RoleBasedAuthorizationStrategy) authStrategy
    authStrategy.doAssignRole(authStrategy.GLOBAL, roleName, userName)
    authStrategy.doAssignRole(authStrategy.PROJECT, roleName, userName)
    println "add role success"
}
println "done"

命令行操作如下,因为jenkins-cli不支持直接输入groovy文件,只能从标准输入中读取,所以只能用这样的方式了,坑啊。

 java -jar jenkins-cli.jar -s http://maidocker0:8080/ -http -auth admin:11068fdf4d3f17debb9ec981f5852e05c6 groovy = < ./add_jenkins_user.groovy 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions