Jenkinsとは?
オンプレミス型のCI/CDツールの1つ。
非常に汎用性が高く、多機能なツールらしい。(どのくらい優秀なのかは使ってみないとわからないw)
JenkinsはJavaでできているので、Javaが動く環境であれば、OSによらず動作させることができる。
コミュニティが大きいため、プラグインも豊富で、日本語の情報もたくさんある。
Jenkinsをインストールする環境
今回Jenkinsをインストールする環境は、
AWS環境構築7で作成したEC2とRDSに対して、ALBを追加したもの。
※この時点で、AWS上にEC2ができていて、自分のローカルPCにある秘密鍵でEC2にSSHで接続できる状態。
いざ、Jenkinsのインストール!
セキュリティグループのルール追加
Jenkinsは8080番ポートを使用するため、セキュリティグループのインバウンドルールに設定する。
マネジメントコンソールの EC2 > ネットワーク&セキュリティ > セキュリティグループ
今回の環境で使用するセキュリティグループを選択して、「インバウンドルール」タブの「インバウンドルールを編集」を選択
「ルールを追加」から、
- タイプ:カスタムTCP
- ポート範囲:8080
- ソース:0.0.0.0/0
- 説明:Jenkins
ルールを保存
EC2にJavaをインストール
JenkinsはJavaで動いているので、EC2にJavaを入れる。
・・・と思ったら、アレ?すでにJavaがインストールされているようだ。(入れた記憶はないのだが。)
[ec2-user@ip-172-16-16-180 ~]$ java -version openjdk version "11.0.10" 2021-01-19 LTS OpenJDK Runtime Environment Corretto-11.0.10.9.1 (build 11.0.10+9-LTS) OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode)
Since Jenkins 2.164 and 2.164.1 [1], Java 11 runtime environments are supported
と書いてあるので、Jenkinsバージョンが2.164以降なら、Java11でも行けそうだ。
Jenkinsのリポジトリを追加
wgetコマンドで、URLを指定してリポジトリをダウンロード
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
RPMパッケージの公開鍵をrpmコマンドでインポート
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
Jenkinsのインストール
sudo yum -y install jenkins
結果を見ると、Jenkinsの2.286がインストールされた模様。
Jenkinsを起動する
sudo service jenkins start
む。
Redirecting to /bin/systemctl start jenkins.service
Failed to start jenkins.service: Unit not found.
Jenkinsの起動ができない。
Jenkinsのインストール時のメッセージを見直してみる。
[ec2-user@ip-172-16-16-180 ~]$ sudo yum -y install jenkins Loaded plugins: extras_suggestions, langpacks, priorities, update-motd amzn2-core | 3.7 kB 00:00 jenkins | 2.9 kB 00:00 jenkins/primary_db | 168 kB 00:00 39 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package jenkins.noarch 0:2.286-1.1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: jenkins noarch 2.286-1.1 jenkins 71 M Transaction Summary ================================================================================ Install 1 Package Total download size: 71 M Installed size: 71 M Downloading packages: warning: /var/cache/yum/x86_64/2/jenkins/packages/jenkins-2.286-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY Public key for jenkins-2.286-1.1.noarch.rpm is not installed jenkins-2.286-1.1.noarch.rpm | 71 MB 00:04 Public key for jenkins-2.286-1.1.noarch.rpm is not installed
jenkins-2.286-1.1.noarch.rpmがインストールされていないと言われている。
ググってみると、GitHubにあるようだ。
インストールする
sudo rpm -ivh https://github.com/jenkinsci/jenkins/releases/download/jenkins-2.286/jenkins-2.286-1.1.noarch.rpm
インストールされたらしいので、気を取り直して、再度Jenkinsを起動
[ec2-user@ip-172-16-16-180 /]$ sudo service jenkins start Starting jenkins (via systemctl): [ OK ]
起動できたようだ
ブラウザからJenkinsのトップページにアクセス
http://インスタンスのIPアドレス:8080でアクセス
Jenkinsの設定
Jenkinsのトップページに書かれているパスにある initialAdminPassword というファイルにパスワードが記載されている。
/var/lib/jenkins/secrets/initialAdminPassword
secrets フォルダ以下は、アクセス権限がないとアクセスできないので、アクセス権を変更してcatコマンドで内容を確認。
[ec2-user@ip-172-16-16-180 jenkins]$ sudo chmod a+rwx ./secrets [ec2-user@ip-172-16-16-180 secrets]$ sudo chmod a+rwx initialAdminPassword [ec2-user@ip-172-16-16-180 secrets]$ cat initialAdminPasswordな
内容をそのまま Jenkinsのトップページに入力すればOK。
Install suggested plugins
しばらく待つ
必要事項を入力して、Save and Continue
URLは毎回変わるので、Not now で次へ
Jenkinsの準備が整った。Start using Jenkins
ダッシュボード
正直、これをどうやって使っていくのかさっぱりわかっていないが、とりあえず使える準備ができたということで良しとしよう。