2017-11-07 21 views
0

Jenkinsではsettings.xmlを「管理対象ファイル」(Global Maven settings.xml)として使用しています。Jenkinsのmavenのsettings.xmlでパスワードを管理する方法

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
<servers> 
    <server> 
     <id>xxxreleases</id> 
     <username>user</username> 
     <password>plaintextpasswd</password> 
    </server> 
    <server> 
     <id>xxxsnapshots</id> 
     <username>user</username> 
     <password>plaintextpasswd</password> 
    </server> 
    .. 

このファイルには、サーバーとプロファイルのパスワードがプレーンテキストで含まれています。この設定でこのパスワードを暗号化または非表示にするには、Jenkinsのすべてのジョブを編集する必要があります(この.xmlファイルを使用しているジョブが数多くあり、正常に動作しています)。

+0

Jenkinsの資格情報ストアに保存してください... – khmarbaise

+0

@khmarbaiseとsettings.xmlでそれらをどうやって提供できますか? – DenCowboy

+0

Jenkinsで設定ファイルプロバイダプラグインを使用していますか?ここで、資格情報ストアのエントリを 'setttings.xml'に追加することができます。 – khmarbaise

答えて

1

正しい方法は、IDとパスワードをJenkins Credentialsストアに保存することです。次に、あなたのようenvironment{}ブロックを使用して環境へのいずれかのパイプラインジョブでIDとパスワードを注入することができます

environment{ 
    USER_CREDS = credentials('credential_id') 
} 

これは3環境変数USER_CREDSを作成します(ユーザーが含ま:パスワード)を、USER_CREDS_USR、およびUSER_CREDS_PSW。

フリースタイルジョブでは、資格情報バインディングプラグインを使用して、IDとパスワードを環境に取得します。次に、環境変数にアクセスするためのMavenのメカニズムを使用できます($ {env.USER_CREDS_USR}のようなものだと思います)。

これを行うと、開発者はローカルビルドも簡単に行うことができます。彼らはローカルビルド環境で環境変数を設定するだけです。

+0

あなたの答えをお寄せいただきありがとうございます。あなたの質問に表示されるユーザー名とパスワードのテキストを削除し、同じIDの資格情報を追加しました。しかし、これはまた、のようなタグを使用するプロファイルでも機能しますか? (私はこの部分を作成していませんでした) – DenCowboy

+0

Mavenファイルについてはよくわかりませんが、Mavenに環境変数を渡すことができれば、それを使ってテキストの一部を置き換えることができます。そうでなければ何のためですか? –

関連する問題