Jenkins2インストールと初期設定〜ユーザ、権限、git連携〜

2016年6月18日

Jenkins2初期設定まとめ

Jenkins2 を試しました。今回から 3 回にわたって Jenkins2 のメモが続きます。初回は Jenkins2 を CentOS7.2 にインストールする方法と、アカウント認証周り、バージョン管理ツールとの連携の設定をまとめました。

目次

  1. Vagrantfile
  2. Jenkins2 をインストール
  3. ユーザ登録
  4. ユーザの権限設定
  5. 環境変数の設定
  6. git サーバと連携する

Vagrantfile

今回の例は Vagrant 上で動作確認しました。Vagrantfile は以下の通り。

Vagrant.require_version ">= 1.7.0"
Vagrant.configure(2) do |config|
  config.vm.box = "bento/centos-7.2"
  config.vm.hostname = "vm1"
  config.vm.network :private_network, ip: "192.168.33.11"
  config.vm.provider :virtualbox do |vb|
    vb.gui = false
    vb.memory = "1024"
    vb.cpus = "2"
  end
end

Jenkins2 をインストール

インストールは公式ドキュメントを参考にしました。

Installing Jenkins on Red Hat distributions - Jenkins Wiki

Vagrant 上で実行したコマンドは以下。

$ 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
$ sudo yum install java
$ sudo service jenkins start

インストール後、ブラウザのアドレスバーに「192.168.33.11:8080」と入力して Jenkins にアクセスします。

パスワードを求められるので、画面に案内が出ているとおり /var/lib/jenkins/secrets/initialAdminPassword に書かれたパスワードを入力します。

Jenkins2ロック解除

Customize Jenkins では左側の「Install suggested plugins」を選択しました。

推奨プラグインのインストール

プラグインがたくさんインストールされます。数分待ちます。

Jenkins2推奨プラグインインストール中

ユーザ登録

初期状態では管理者ユーザしかいませんので、作業用のユーザを作成します。作成したユーザはこの後の権限設定でジョブの閲覧と実行しかできないようにします。

Jenkinsの管理 > ユーザーの管理 > ユーザー作成

ユーザ作成

ユーザの権限設定

作成したユーザの権限を設定します。

Jenkinsの管理 > グローバルセキュリティ

以下の設定になっていることを確認します。デフォルトでこの設定になっていると思います。

  1. 「セキュリティを有効化」にチェック
  2. アクセス制御 > ユーザ情報 >「Jenkinsのユーザーデータベース」を選択
  3. >「ユーザーにサインアップを許可」のチェックをはずす
アクセス制御

続いてユーザの権限を細かく設定します。

  1. アクセス制御 > 権限管理 > 「行列による権限設定」を選択
  2. テキストボックスに登録したユーザを入力し、「追加」ボタンをクリック
  3. ユーザごとに許可したい操作にチェックをつける
権限管理

上記の例では、admin に全権限を、user に読み取り権限とジョブの実行権限を与えています。

権限の設定ミスに注意

権限の設定を間違えると、設定変更後に何もできなくなることがあります。その場合は /var/lib/jenkins/config.xml の useSecurity タグの値を false に変更して Jenkins を再起動してください。管理者権限で Jenkins を開くことができます。復旧後、再度セキュリティの設定をやりなおします。

環境変数の設定

Jenkins で利用する環境変数を設定します。

Jenkinsの管理 > システムの設定

  1. グローバル プロパティ > 「環境変数」にチェック
  2. キーと値を入力
Jenkins2環境変数

git サーバと連携する

Jenkins と git サーバを ssh で通信できるように git サーバに公開鍵をアップロードしておきます。

次にターミナルによる操作。Jenkins サーバの /var/lib/jenkins.ssh ディレクトリを作成します。

$ cd /var/lib/jenkins
$ sudo mkdir .ssh

続いて、git サーバに接続ができる ssh の秘密鍵を Jenkins サーバに SCP などで転送し、/var/lib/jenkins/.ssh に配置します。

Jenkins サーバのターミナル

$ sudo mv id_rsa /var/lib/jenkins/.ssh/

最後に権限を設定します。

$ cd /var/lib/jenkins
$ sudo chown -R jenkins. .ssh
$ sudo chmod 700 .ssh
$ sudo chmod 600 .ssh/id_rsa

今度は Jenkins 管理画面で操作します。

認証情報 > Domains (global) グローバルドメイン > 認証情報の追加

  1. 種類:「SSH ユーザ名と秘密鍵」を選択
  2. ユーザ名:「jenkins」と入力
  3. 秘密鍵:「Jenkins マスター上の ~/.ssh から」を選択
  4. 説明:管理しやすい情報を入力
Jenkins2 github認証の追加

これで、ジョブを追加するときの Git の Credentials に、以下のように認証情報を選択できるようになります。

Jenkins2 github 認証を選択

まとめ

Jenkins をインストールして、ジョブを作成する前に毎回設定していることをまとめました。

この後ジョブを登録して、ユーザが増えてくると、「この人にはあのジョブを実行させたくない」みたいなことが出てくると思います。このことは次の記事で書きます。

Jenkins2 ジョブ毎に権限設定する
Jenkins2でジョブごとに権限を設定する

前回は Jenkins2 をインストールする方法と、認証周りの設定をまとめました。 Jenkins を運用してプロジェク ...

続きを見る

-技術ブログ
-