JenkinsでAPIを使用して新しいユーザーを作成できるかどうかは疑問でした。ジョブを作成することはできますが、JenkinsのAPIドキュメントにはユーザー作成に関連するものはありません。APIを使用してJenkinsでユーザーを作成する
実際には、新しいユーザーを作成してから、そのユーザー用に新しいジョブを作成する必要があります。そのすべてはAPIを使用しています。
JenkinsでAPIを使用して新しいユーザーを作成できるかどうかは疑問でした。ジョブを作成することはできますが、JenkinsのAPIドキュメントにはユーザー作成に関連するものはありません。APIを使用してJenkinsでユーザーを作成する
実際には、新しいユーザーを作成してから、そのユーザー用に新しいジョブを作成する必要があります。そのすべてはAPIを使用しています。
あなたが正しいですが、ユーザーを追加するための明示的なCLIコマンドはありません。しかし、これにはgroovyスクリプトを使用することができます(実行にCLIを使用)。
詳細は、Jenkinsの設定方法によって異なります。たとえば、あなたのジェンキンスさんは、独自のユーザー・データベースを使用している場合、その後、あなたは、次のCLI呼び出しによって、新しいユーザーを追加することができ :このシェルコマンド
echo 'jenkins.model.Jenkins.instance.securityRealm.createAccount("user1", "password123")' |
java -jar jenkins-cli.jar -s http://localhost/ groovy =
は、ログイン「USER1」とパスワード「password123で新しいユーザーを作成します。 " echoは、Jenkins CLIにGroovyコードの行を送ります(=は、CLIにSTDINのコードを受信させることを意味します)。
また、groovyスクリプトではユーザー権限を管理することができますが、正確なコードは使用する承認戦略によって異なります。 this sample scriptを最初に使用できます。
私のWindowsではエコーとパイプが機能しませんでしたので、代わりにスクリプトファイルを使用しました。また、スクリプトファイルにロジックを追加する方が簡単です。以下のスクリプトは、新しいユーザーを追加する前に既存のユーザーをチェックし、アカウント作成後にユーザーの電子メールを設定し、Matrixベースのセキュリティを使用してREADアクセスを行います。あなたがファイルにスクリプトを保存することで、それを実行することができ、
java -jar jenkins-cli.jar -s http://localhost/ groovy user-creation.groovy testUser testPassword [email protected]
import hudson.model.*
import hudson.security.*
import hudson.tasks.Mailer
def userId = args[0]
def password = args[1]
def email = args[2]
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));
def strategy = (GlobalMatrixAuthorizationStrategy) instance.getAuthorizationStrategy()
strategy.add(Hudson.READ, userId)
instance.setAuthorizationStrategy(strategy)
instance.save()
}
'java -jar jenkins-cli.jar -s http:// localhost:8080/groovy user-creation.groovy userName userPassword testEmail @ testEmail.com'コマンドを実行すると、エラーが発生しました。エラー:匿名Overall/Read権限がありません。 ' –
これは私のために働いた。 java -jar jenkins-cli.jar -s http:// localhost/groovy user-creation.groovy testUser testPassword [email protected] --username = --password = – Upen
私は、ユーザーを作成するには、次のPythonスニペットを得ることができ、ユーザーcreation.groovyを言うし、次を実行します。 SSHキーを持つ:
import json
import requests
def main():
data = {
'credentials': {
'scope': "GLOBAL",
'username': "jenkins",
'privateKeySource': {
'privateKey': "-----BEGIN RSA PRIVATE KEY-----\nX\n-----END RSA PRIVATE KEY-----",
'stapler-class': "com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource"
},
'stapler-class': "com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"
}
}
payload = {
'json': json.dumps(data),
'Submit': "OK",
}
r = requests.post("http://%s:%d/credential-store/domain/_/createCredentials" % (HOSTNAME, 8080), data=payload)
if r.status_code != requests.codes.ok:
print r.text
これ1つを除いてRESTインターフェースは、コードの内部とオブジェクトがにデコードすることになっているクラスの名前を知っていなければならない一種のようなものです。
私はジェンキンを(ジェンキンズサーバーの外部で実行している)安全なスクリプトから構成しようとしています。 java cliは資格情報の作成をサポートしていないので、Pythonのスニペットが使えるようです。
こんにちは、ペドロ、ユーザーを作成する方法はありますか? ?あなたの上記のコードは、資格情報を作成する、私はユーザーを探しています。 – Nilesh
このインストール後にユーザーを作成する方法を次のとおりです。
(Ubuntuの場合)c3a5dcd6bc3f45ee8d6c9f0f5abc14c0が自動的にログまたはファイルにパスワードの存在を発生させるecho 'jenkins.model.Jenkins.instance.securityRealm.createAccount("user", "password")' | java -jar jenkins-cli.jar -auth admin:c3a5dcd6bc3f45ee8d6c9f0f5abc14c0 -s http://localhost:8080/ groovy =
:は/ var/libに/ジェンキンス/秘密/ initialAdminPassword
これは本当に簡潔で簡単な方法です。セキュリティ(レルムと権限)を有効にするためにこれを使う方法を知っていますか?例えばジェンキン自身のデータベース、「ログインしたユーザーは何でもできる」 – ffghfgh
ビル:
pass=`sudo cat /var/lib/jenkins/secrets/initialAdminPassword` && echo 'jenkins.model.Jenkins.instance.securityRealm.createAccount("user1", "password123")' | sudo java -jar jenkins-cli.jar -auth admin:$pass -s http://localhost:8080/ groovy =
ヨーヨーの場合あなたは私のようで、ジェンキンズ・クリを見つけることができませんでした。次のようにあなたのジェンキンスサーバーから引き出すことができる最初の瓶、:
curl -O http://127.0.0.1:8080/jnlpJars/jenkins-cli.jar
それ以外の場合は動作しません、あなたは認証方法(_securityのrealm_)として_Jenkins自身のユーザDATABASE_を使用していることを確認してください。 – kenorb