Jenkins2 を試しました。今回から 3 回にわたって Jenkins2 のメモが続きます。初回は Jenkins2 を CentOS7.2 にインストールする方法と、アカウント認証周り、バージョン管理ツールとの連携の設定をまとめました。
目次
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
に書かれたパスワードを入力します。
Customize Jenkins では左側の「Install suggested plugins」を選択しました。
プラグインがたくさんインストールされます。数分待ちます。
ユーザ登録
初期状態では管理者ユーザしかいませんので、作業用のユーザを作成します。作成したユーザはこの後の権限設定でジョブの閲覧と実行しかできないようにします。
Jenkinsの管理 > ユーザーの管理 > ユーザー作成
ユーザの権限設定
作成したユーザの権限を設定します。
Jenkinsの管理 > グローバルセキュリティ
以下の設定になっていることを確認します。デフォルトでこの設定になっていると思います。
- 「セキュリティを有効化」にチェック
- アクセス制御 > ユーザ情報 >「Jenkinsのユーザーデータベース」を選択
- >「ユーザーにサインアップを許可」のチェックをはずす
続いてユーザの権限を細かく設定します。
- アクセス制御 > 権限管理 > 「行列による権限設定」を選択
- テキストボックスに登録したユーザを入力し、「追加」ボタンをクリック
- ユーザごとに許可したい操作にチェックをつける
上記の例では、admin に全権限を、user に読み取り権限とジョブの実行権限を与えています。
権限の設定ミスに注意
権限の設定を間違えると、設定変更後に何もできなくなることがあります。その場合は /var/lib/jenkins/config.xml の useSecurity タグの値を false に変更して Jenkins を再起動してください。管理者権限で Jenkins を開くことができます。復旧後、再度セキュリティの設定をやりなおします。
環境変数の設定
Jenkins で利用する環境変数を設定します。
Jenkinsの管理 > システムの設定
- グローバル プロパティ > 「環境変数」にチェック
- キーと値を入力
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) グローバルドメイン > 認証情報の追加
- 種類:「SSH ユーザ名と秘密鍵」を選択
- ユーザ名:「jenkins」と入力
- 秘密鍵:「Jenkins マスター上の ~/.ssh から」を選択
- 説明:管理しやすい情報を入力
これで、ジョブを追加するときの Git の Credentials に、以下のように認証情報を選択できるようになります。
まとめ
Jenkins をインストールして、ジョブを作成する前に毎回設定していることをまとめました。
この後ジョブを登録して、ユーザが増えてくると、「この人にはあのジョブを実行させたくない」みたいなことが出てくると思います。このことは次の記事で書きます。
-
Jenkins2でジョブごとに権限を設定する
前回は Jenkins2 をインストールする方法と、認証周りの設定をまとめました。 Jenkins を運用してプロジェク ...
続きを見る