通过groovy脚本在Jenkins中编辑用户

0mkxixxg  于 2022-11-01  发布在  Jenkins
关注(0)|答案(2)|浏览(244)

我想知道我是否可以在Jenkins用户中更改密码、用户名和电子邮件。因为我可以通过groovy脚本创建用户,如下所示:

import hudson.model.*

def user = instance.securityRealm.createAccount(userId, password)
user.addProperty(new Mailer.UserProperty(email));
instance.save()

Jenkins界面允许我管理用户凭证,但是允许更改密码/电子邮件/用户名的脚本会很有帮助。我没有找到示例。
我试过很多次这样的剧本,但它没有工作

import hudson.model.*

User user = User.getAll().get(1)
user.setProperty(newPassword)
owfi6suc

owfi6suc1#

下面是一个简单的代码:

import jenkins.model.*
import hudson.security.*
import hudson.tasks.Mailer

def env = System.getenv()

def jenkins = Jenkins.getInstance()
if(!(jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm))
    jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(false))

if(!(jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy))
    jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy())

// update admin Jenkins user account
def user = jenkins.getSecurityRealm().getUser('admin')
email= 'jenkins-admin@gmail.com'
user.addProperty(new Mailer.UserProperty(email));
rvpgvaaj

rvpgvaaj2#

对于Jenkins Jenkins 2.361.1,我已经使用了这样的Jenkins groovy脚本来更新用户的密码:

User.getById("userName",false).addProperty(hudson.security.HudsonPrivateSecurityRealm.Details.fromPlainPassword("new-password"));

您还可以通过bash脚本或类似脚本轻松运行它,前提是设置了$USERNAME和$PASSWORD:

echo "script=User.getById(\"$USERNAME\",false).addProperty(hudson.security.HudsonPrivateSecurityRealm.Details.fromPlainPassword(\"$PASSWORD\"));" | \
curl -d @- --user admin:access_token http://<ip>:8080/scriptText

相关问题