page_adsence

2015年4月7日火曜日

AnsibleでJenkinsのインストールからJenkinsのプラグインインストールまで。

ローカルのVMにjenkinsをインストールして使おうと思ったのですが、調べてみたらyumでインストールしている記事ばかりだったので、 warファイルをダウンロードしてきて、それを起動するシェルスクリプトを作り、サービスとして登録し、起動させるという方法でやってみた。
最終的な成果物としては下記の様なplaybookとなった。
playbookで書かれているjenkins.shも書いておく。

files/jenkins.shの中身
#!/bin/sh
# chkconfig: 2345 70 30
# description: jenkins
# processname: jenkins

java -jar /usr/lib/jenkins/jenkins.war &

ここからAnsibleのプレイブック
---
- hosts: "target_host"
  sudo: yes
  remote_user: vagrant
  tasks:
    - name: JavaのOpenJDKをインストール
      yum: name=java-1.8.0-openjdk state=latest

    - name: JavaのOpenJDK develをインストール
      yum: name=java-1.8.0-openjdk-devel state=latest

    - name: Jenkinsのwarファイルの設置用ディレクトリを作成
      file: dest=/usr/lib/jenkins state=directory

    - name: jenkins.warファイルをサイトからダウンロード
      get_url: url=http://mirrors.jenkins-ci.org/war/latest/jenkins.war
               dest=/usr/lib/jenkins

    - name: ホストPCに置いておいたjenkins.shをリモートPCへコピー
      template: src=files/jenkins.sh
                dest=/etc/init.d/jenkins
                mode=0777

    - name: chkconfigにjenkinsを登録
      action: command chkconfig --add jenkins

    - name: jenkinsの起動レベルを変更
      action: command chkconfig --level 2345 jenkins on

    - name: jenkinsを起動
      service: name=jenkins state=started enabled=yes
      sudo: no

    - name: jenkinsのcliツールをダウンロード
      get_url: url=http://localhost:8080/jnlpJars/jenkins-cli.jar
               dest=/tmp

    - name: プラグインをインストール [build-pipeline-plugin]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin build-pipeline-plugin

    - name: プラグインをインストール [timestamper]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin timestamper

    - name: プラグインをインストール [git]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin git

    - name: プラグインをインストール [jobConfigHistory]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin jobConfigHistory

    - name: プラグインをインストール [cron_column]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin cron_column

    - name: プラグインをインストール [next-executions]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin next-executions

    - name: プラグインをインストール [ssh]
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin ssh

    - name: jenkins restart
      action: command java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 safe-restart


jenkinsのプラグインをコマンドラインからインストールする場合に、
java -jar /tmp/jenkins-cli.jar -s http://localhost:8080 install-plugin XXXXXX
と記載する必要があるのですが、このXXXXXの部分はPluginIDを入れる必要がある。
PluginIDの調べ方はJenkinsのプラグインの一覧があるページから入れたいプラグインをクリックすると、上のほうにある表の左上に「Plugin ID」の項目があるので、そこに書かれているIDを入れる。