Ansibleのyum_repositoryとrpm_keyを使ったJenkinsインストール

2016.07.25

渡辺です。

JenkinsをAmazonLinuxにインストールする場合、次のようなコマンドを実行します( 公式Wiki より)。

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

要は、yumのリポジトリの追加 gpg鍵を登録して、yumでインストールします。 Ansibleのcommandモジュールやshellモジュールを利用すれば簡単に自動化できますが、冪等性を保つためにも標準モジュールを利用する方がベターです。 というわけで、yum_repositoryrpm_keyを使ってAnsibleのタスクを構成してみましょう。

なお、Javaはインストールされている前提となります。

AnsibleでJenkinsをインストールするコードスニペット

結論としては、こんな感じで。

- name: "jenkins yum repository"
  yum_repository:
    name: jenkins
    description: "jenkins YUM repo"
    baseurl: "http://pkg.jenkins-ci.org/redhat-stable/"
- name: "jenkins-ci.org.key installed"
  rpm_key:
    key: "http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key"
- name: "Jenkins installed"
  yum:
    name: jenkins
- name: "Jenkins service started"
  service:
    name: jenkins
    state: started
    enabled: yes

yum_repositoryでリポジトリを追加する

yum_repositoryモジュールは、yumリポジトリを追加/削除するコアモジュールです。 baseurlにJennkinsのリポジトリを指定し、namedescriptionを指定すれば、/etc/yum.repo.d/ 以下にリポジトリファイルが作成されます。

- name: "jenkins yum repository"
  yum_repository:
    name: jenkins
    description: "jenkins YUM repo"
    baseurl: "http://pkg.jenkins-ci.org/redhat-stable/"

なお、デフォルトで有効化しない場合は、enabledをnoとしてください。

rpm_keyでgpg鍵をインストールする

rpm_keyモジュールは、gpg鍵を追加/削除するコアモジュールです。 keyにgpg鍵のURLを指定してください。

- name: "jenkins-ci.org.key installed"
  rpm_key:
    key: "http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key"

まとめ

後はyumモジュール、serviceモジュールを使えば、Jenkinsのインストールと起動設定まで簡単です。

この書き方を覚えておけば、yumリポジトリ&gpg鍵追加でインストールできるタイプのパッケージは同様にインストールできるはずです。 Ansibleはパターン化しやすいので、1回覚えてしまえば応用が利いて楽ができることでしょう。