2017Jenkinsを自分で用意して動かしてというのをやったことがなかったので、簡単なことならちゃちゃっと用意できるぐらいになっておきたいです。requestに応答してテストやビルドを行うというものだと思います。(そして何よりJenkinsを動かすグローバルな環境が手元になかったので)、gitとJenkinsのみを使用したシンプルなローカル環境でJenkinsを動作させたいと思います。JenkinsのインストールJenkinsをインストールするhost3はVMで用意したのでその設定です。(下記でwgetコマンドを使用するため。jenkins以上の内容をまとめたVagrantfileは以下のようになります。upしたあとに、http://127.0.0.1:8080にアクセスするとJenkinsが起動していることが確認できます。このあとJenkinsのUnlockだったり色々ありますが、画面に表示される内容に素直に従う感じで進めればOKです。SSHの設定1.で示した内容に従い、gitリモートリポジトリを管理するhost1にローカルリポジトリを持つhost2、Jenkinsをインストールしたhost3からそれぞれssh接続できるようにします。Jenkinsの設定を最小限でJenkinsfile(Pipeline)を使う)。config(~/.ssh/config)に記載しておけば、Jenkinsジョブで使用するときも問題なく機能します。configといったあたりの内容はここでは省略しますが、手順に関しては下記のサイトがわかりやすく解説されていると思います。gitリポジトリの準備3.でhost間での接続を確立したので、ローカル、リモートそれぞれにgitリポジトリを作成します。host1上でgitリモートリポジトリを作成します。--sharehost2上にgitリポジトリを作成し、remote先に上で作成したものを指定します。pushしてみてうまく動いていることを確認します。PipelineによるJenkinsジョブの作成Jenkinsのジョブは以前はGUIで作成していたようですが、ver.2からは標準の機能としてPipelineというGroovyスクリプトでジョブを定義できるようになりました。スクリプトでジョブを記述することで内容を確認しやすくなり、またスクリプト自体をバージョン管理することができるので扱いやすくなっています。ここではそのスクリプトをJenkinsfileとして開発中のリソースと一緒にリポジトリに配置し、そのJenkinsfileを使用してジョブが実行されるようにしたいと思います。主な手順は以下の3つです。Credentialの設定Jenkinsfileの作成Jenkinsジョブの作成Credentialの設定これはJenkinsfileによるジョブの実行に必須の内容ではないですが、SSHによりリモートのgitリポジトリからJenkinsfileを取得してくるために、秘密鍵の情報をJenkinsに教えてあげる必要があります。Jenkinsではジョブによらず一元的に認証情報を管理する機能があるため、この機能を利用してジョブ中に使用するパスワードや秘密鍵といった情報をJenkinsに登録します。登録の手順等は参考のページに書かれているために省略し、今回の登録内容のみ下記にまとめておきます。(Jenkins内で使用されるID。jenkins-private-keyJenkinsfileの作成ジョブで実行したい内容をリポジトリに配置したJenkinsfileに記述します。Jenkinsfileの書き方は下記の参考や公式のリファレンスが参考になるかと思います。Pluginが助けになります。shメソッドを使用すればシェルコマンドを実行できるので、比較的何でもできます。ちなみにジョブを実行する際のカレントディレクトリは/var/lib/jenkins/workspace/<job-name>になり、またJenkinsfileを持ってくるときはvar/lib/jenkins/workspace/<job-name>@scriptにcheckoutしたものが配置されるようです。テストを実行したいリポジトリにJenkinsfileを配置した場合、Jenkinsfile内で再度checkoutするか、script用のディレクトリをコピーして使用するかになるのかなと思います。ここでは再度checkoutしましたが、これだとリポジトリの情報がジョブの定義時とで2回書くことになっておりイマイチかもしれません。SCM」を指定して以下のように設定します。Jenkinsfileこれにより上で作成したJenkinsfileを含むリポジトリの内容がcheckoutされ、ジョブが実行されることが確認できます。Jenkinsジョブのリモート起動リモートからジョブを起動するためにJenkins上で以下の作業を行います。exploits」のチェックを外すローカルなのでまあ問題は無いけれど、そうでない場合どうするべき?gitリモートリポジトリに行き、<repository>/hooks/post-updateに以下のようにジョブをキックするためのコマンドを追加します。job-tokenはそれぞれ上記で定義したものです。token=$tokenこれでリモートリポジトリにpushを行った際に、ジョブが実行されるようになります。SummaryJenkinsはけっこうGUIでごちゃごちゃやらないといけないイメージがあったけどPipelineを使えばそんなことはなかった簡単なテストやビルドジョブであれば簡単にかつ直感的に書くことができる個人的にはJavaのbuildツールのGradleと似て、スクリプトで書けるのがわかりやすくて好き次に考えたいのは以下の2点です。