はじめに
みなさまこんにちは。
こちらはJenkins Advent Calendar 2日目の記事になります。
Jenkinsには、過去大変お世話になったのですが、最近キャッチアップできておらず...。
またいつか、ユーザとして、1ファンとして関わりたいなと思っていたところ、下記のTweetを発見しました。
作者の川口さんが、この継続的インテグレーションツールを作り始めたのが2004年。
前身のHudsonの時代を含め、15年にもなるんですね!
Jenkinsのコミュニティやカンファレンスといったものには参加できず、詳しいことは語れない1ユーザではありますが、この機会に、Jenkinsの公式のブログを斜め読みしてご紹介してみようと思います。
(なんとか理解できるもののみですが...)
12月の間で、いくつか取り上げできそうであれば、アドベントカレンダーに他に記載していこうと思います。
今回のななめ読み
今回は、Oleg Nenashevさんからの記事を眺めてみます。
11/25: Jenkins macOS native installer deprecation
Jenkinsは、WARファイル、Dockerイメージ、そしてOSのネイティブのインストーラで提供されています。これらは、週1回の最新版リリースと、LTSという12週(およそ3ヶ月)に1回の安定版リリースがあります。
MacOS版ネイティブインストーラー提供の取りやめについて
この記事では、MacOS版のネイティブインストーラー提供を取りやめるとのアナウンスになっています。また、その代替手段の提供についても触れられています。
In this blog post, we announce the upcoming deprecation of the macOS native installer. We will review the replacement options and the rollout plan.
Why?
取りやめの理由や流れについては、こんな感じです。
- 各種のインストラーを提供するのは大変な労力がかかること
- テストや環境の用意といった点で大変
- そのインストーラーを必要としているユーザが少なくなってきたら、取りやめるか3rdパーティにお願いして提供してもらうかのどちらかになる
- MacOSに関してはGUIのネイティブインストーラと、Homebrew での提供の2つがある
- 現在の主流はHomebrewとなっており、ネイティブインストーラーは取りやめるのが妥当との判断になった
なぜこのタイミングで取りやめ?
- 端的に言うと、Jenkinsのリリースパイプラインを、Microsoft Azure上のKubernetesを利用するように進めているから
- この環境ではMacOSマシンとインストーラを提供することができない
- このあたりの件は、12/5開催の[Jenkins World 2019 Europe in Lisbon] (https://devopsworldjenkinsworld2019lisbo.sched.com/event/Uara) でお話があるよ、とのこと
- MacOSだけ別のプラットフォームを用意したり、メンテナンスするのは非常にコストがかかるので、取りやめの方向で
- Developer向けのJenkinsメーリングリストでお話が決まった模様
Replacing native installers
- MacOSのネイティブインストーラの代替手段としては、手動でサービスを起動させるか、Homebrewを使うかのどちらか
- ネイティブインストーラを使っている場合は、バックアップを行ってからの移行するように呼びかけ
それぞれの詳細や留意点は、以下に続きます。
Managing Jenkins with WAR file on macOS
ネイティブインストーラがすでに入っていて、Jenkinsも稼働しているならば、アップデートは WARファイルを差し替えるだけで良いとのこと。
(/Applications/Jenkins/jenkins.war を差し替え)
Managing Jenkins with Homebrew
Homebrewを使う場合は、Weeklyリリース版と、LTSリリース版の2つがあるので、それぞれ別のFormulaeを使う形になるとのこと。
- https://formulae.brew.sh/formula/jenkins (jenkins)
- https://formulae.brew.sh/formula/jenkins-lts (jenkins-lts)
上記は、Homebrewコミュニティによる3rdパーティからの提供の位置付けになるので、Jenkinsのメインのリリースのタイミングとは少し遅れる可能性はあるとのことです。
ネイティブインストーラからHomebrew版への移行の注意点
バックアップが強く推奨されています。
現時点で利用しているバージョンと、Homebrewでインストールされる新しいバージョンとの間で、自動での移行ツールは提供されないので、最悪JENKINS_HOME/ 以下の設定などが壊れる可能性があるから、とのこと。
Homebrewを使っての移行の手順は、Jenkins公式サイトでは提供しないようですが、以下のようなサンプルコマンドが提示されています。
- Install the latest Weekly version: brew install jenkins
- Install a specific Weekly version: brew install jenkins@YOUR_VERSION
- Start the Jenkins service: brew services start jenkins
- Restart the Jenkins service: brew services restart jenkins
- Update the Jenkins version: brew upgrade jenkins
Rollout plan
提供の停止は、Jenkinsのリリースフローが切り替わり次第とのことです。
- Jenkins 2.206とJenkins LTS 2.204.1から、MacOS版インストーラーはDeprecatedになる旨を提示する
- Jenkinsの新しいリリースフローが整い次第、Weekly版のインストーラーは提供が停止される
- 過去分のリリースに関してはアーカイブから取得できる
- LTS版についても、Jenkinsの新しいリリースフローが整い次第提供停止になる
- 同じく、過去分のリリースに関してはアーカイブから取得できる
Questions and feedback
メーリングリストのスレッドを参照の上、プラットフォーム毎の専用のSIG (special interest group)でやりとりを、とのことです。
MacOS以外にも、インストーラーの見直しが将来ありそうです。
ななめ読みの雑感
久しぶりにJenkinsの公式サイトを覗いてみましたが、「Jenkinsのリリースパイプラインとして、Microsoft Azure上のKubernetesを利用する」といったあたりに、知らぬは自分ばかりなり、な感想でした。
確かに、公式サイトのコミュニティサポーターのロゴに、一番最初にMicrosoft (Azureへのリンク)が貼られています。
気がついたら、Azure Kubernetes Service(AKS)でのJenkinsの利用についてのドキュメントも、たくさん出ているのですね....。
さて、この次ですが、テクニカルな内容は追いつける自身がないのですが、ドキュメンテーションやプラグイン情報について、また斜め読みしてご紹介できたらと思います。
ともあれ、Jenkins 15years、すごいことですね!