如何在没有web界面的情况下向Jenkins添加帐户?

如何在没有web界面的情况下向Jenkins添加帐户?,jenkins,continuous-integration,command-line-interface,Jenkins,Continuous Integration,Command Line Interface,我想自动化Jenkins的整个安装,给定一个用户名列表,我希望能够为每个用户名创建用户帐户。我读过的唯一设置用户帐户的方法是: 尝试查看是否有可在以下位置使用命令行配置的选项: https://localhost:8080/cli/ 但情况似乎并非如此 是否可以在不使用web界面的情况下添加用户帐户?更具体地说,是一种可编写脚本的方法 我最后的办法是处理原始post请求,但希望有更好的方法。当然可以,可以为jenkins编写配置脚本。但不能仅使用cli工具 我想您应该使用“Jenkins自有用

我想自动化Jenkins的整个安装,给定一个用户名列表,我希望能够为每个用户名创建用户帐户。我读过的唯一设置用户帐户的方法是:

尝试查看是否有可在以下位置使用命令行配置的选项:
https://localhost:8080/cli/
但情况似乎并非如此

是否可以在不使用web界面的情况下添加用户帐户?更具体地说,是一种可编写脚本的方法


我最后的办法是处理原始post请求,但希望有更好的方法。

当然可以,可以为jenkins编写配置脚本。但不能仅使用cli工具

我想您应该使用“Jenkins自有用户数据库”和Project Matrix授权策略

准备资源调配的步骤:

  • 手动配置Jenkins(启用安全、添加卷和至少一个用户)
  • 关闭jenkins(让他将所有内存中的更改写入磁盘)
  • 将$JENKINS_HOME/config.xml复制到配置脚本(作为种子数据)
  • 复制$JENKINS_主页/用户/(作为种子数据)
  • 获取cli工具:
    cd/tmp;wget-nvhttp://localhost:8080/jnlpJars/jenkins-cli.jar
  • 如果不希望有静态种子数据(每个用户一个config.xml),可以使用bash脚本或更高级的工具生成(users/username/)config.xml。但为了简单起见,您可以使用users/username1/config.xml作为模板。用占位符替换相关数据,例如,完整用户名的“占位符\全名”

    e、 g: 改变

    如果要使用生成的用户config.xml,请在$JENKINS_HOME/config.xml中为每个用户生成一些权限设置:

    <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
       ...
       <permission>hudson.model.View.Create:username1</permission>
       <permission>hudson.model.View.Delete:username1</permission>
       <permission>hudson.model.View.Read:username1</permission>
       ...
       <permission>hudson.model.View.Create:username2</permission>
       <permission>hudson.model.View.Delete:username2</permission>
       <permission>hudson.model.View.Read:username2</permission>
       ...
    </authorizationStrategy>
    
    
    ...
    hudson.model.View.Create:username1
    hudson.model.View.Delete:username1
    hudson.model.View.Read:username1
    ...
    hudson.model.View.Create:username2
    hudson.model.View.Delete:username2
    hudson.model.View.Read:username2
    ...
    
    资源调配步骤:

  • 像以前一样安装jenkins&可能是动态配置生成器(见上文)
  • cp$SEED\u DATA/config.xml$JENKINS\u HOME/
  • cp-R$SEED\u DATA/users/$JENKINS\u HOME/
  • chown-R“jenkins:jenkins”$jenkins\u HOME/users/
    (可能是可选的)
  • cd/tmp;java-jar-jenkins-cli.jar-shttp://localhost:8080/ 重新加载配置

  • 如果您有LDAP或AD,则不需要单独添加帐户,并且可以通过LDAP管理的用户组来控制权限/AD@Slav,您将如何以编程方式设置此配置?您是否知道任何可以预先配置并直接放入安装的配置文件?所有Jenkins配置(和插件)都是XML文件,因此您可以使用脚本语言以编程方式更改它们(某些更改在重新启动/重新加载之前不会生效)。在
    $JENKINS_HOME
    下有一个
    config.xml
    作为主要配置,包括安全性/身份验证。看一看。对于重新加载,jenkins cli有一个重新加载命令。
    "<fullName>PLACEHOLDER_FULLNAME</fullName>"
    
    cp $SEED_DATA/templates/user/config.xml /tmp/config.xml
    sed -e "s/\${PLACEHOLDER_USERNAME}/1/" -e "s/\${ChuckNorris}/dog/" /tmp/config.xml
    sed -e "s/\${PLACEHOLDER_EMAIL}/1/" -e "s/\${he@findsyou.com}/dog/" /tmp/config.xml
    ...
    mkdir -p $SEED_DATA/users/$USERNAME/
    cp /tmp/config.xml $SEED_DATA/users/$USERNAME/config.xml
    
    <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
       ...
       <permission>hudson.model.View.Create:username1</permission>
       <permission>hudson.model.View.Delete:username1</permission>
       <permission>hudson.model.View.Read:username1</permission>
       ...
       <permission>hudson.model.View.Create:username2</permission>
       <permission>hudson.model.View.Delete:username2</permission>
       <permission>hudson.model.View.Read:username2</permission>
       ...
    </authorizationStrategy>