2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

jenkinsのサンプル集<基本とGitのチェックアウトと認証情報>

Last updated at Posted at 2020-08-05

jenkinsのサンプル集

はじめに

いつもJekinsを書き始めるときに困るので、サンプルをまとめます。

基本の形

pipeline {
    agent any 
    stages {
        stage("test")
            steps {
                echo 'jenkins test'
            }
    }
}

agentは実行するサーバーを指定。anyだと特に指定せずに実行する。
stagesの中に処理を記載する。
stageが処理のひとかたまり、stepに処理を記載しする。

Gitからのチェックアウト

    stage("clean up directory") {
        // /var/lib/jenkins/workspeace を削除
        steps {
            deleteDir()
            }
        }  
        
    stage('cheackout') {
        // Gitからチェックアウト
      steps { 
        // privateリポジトリを使う時は認証情報の記述が必要
        checkout([$class: 'GitSCM', 
          branches: [[name: '*/master']],
          doGenerateSubmoduleConfigurations: false,
          extensions: [], 
          submoduleCfg: [], 
          userRemoteConfigs: [[credentialsId: '<jenkinsで設定したcredential>', url: '<GitのURL>']]
        ])
      }
    }

余計なものを削除するため、チェックアウト前にdeleteDir()でディレクトリをきれいにしてから、チェックアウトする。
じゃないとコミット時に余計なものをコミットしてしまい。取り返しのつかない自体にもなりかねないため。
本例ではマスターからクローンを実施。

Credentialsの指定

    stage('mysql login') {
        // vCenterにVMdeployのplaybookを実行
        steps {
            // 認証情報の取得
            withCredentials(
                // 認証情報
                [usernamePassword(credentialsId: '<jenkinsで設定したcredential>', usernameVariable: '<ユーザー名を格納する任意の変数名A>',passwordVariable: '<パスワードを格納する任意の変数名A>')]
                )
                {
                sh 'mysql -u <ユーザー名を格納する任意の変数名A> --password=<パスワードを格納する任意の変数名A>'         
            }    
        }
    }

withCredentialsを使用して、credentialsに登録しいる認証情報を変数として利用できる。
ログもマスクされて表示される。2つ指定する場合は配列で指定する。

  • 2つ指定する場合
            withCredentials(
                // 認証情報A
                [usernamePassword(credentialsId: '<jenkinsで設定したcredential>', usernameVariable: '<ユーザー名を格納する任意の変数名A>',passwordVariable: '<パスワードを格納する任意の変数名A>'),
                // 認証情報B
                usernamePassword(credentialsId: '<jenkinsで設定したcredential>',usernameVariable: '<ユーザー名を格納する任意の変数名B>',passwordVariable: '<パスワードを格納する任意の変数名B>')]
                )

最後に

JenkisのPipelineって公式のサイトが個人的に読みにくいと感じる。
またプラグインが豊富にあるため、書き方が色々ある。
なので、もっと良い書き方がある場合は教えてください。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?