【Jenkins】Jenkinsのインストール

https://qiita.com/nejioooo/items/c5081a5b5f6775189bb3

参考にしたサイト:Jenkinsインストール【Windows環境】

今回は、上記のサイトを参考にJenkinsのインストールを行いました。

インストールには、JDKが必要になります。JDKのインストールついては、こちらに作業記録をまとめてあります。

まずは公式サイトへいき、Downloadボタンからインストーラーをダウンロードします。

https://www.jenkins.io/

https://www.jenkins.io/download/

Long term support (LTS) release の方が、長いサポートという扱いのようです。LTSをダウンロードすることにしました。

今回は、Java21 を利用したいと思います。Long term support (LTS) release の公式情報をみていましょう。

https://www.jenkins.io/doc/book/platform-information/support-policy-java/

ドキュメント上は2.479.1ですが、ダウンロードできるバージョンの 2.4942.2 LTS というものが最新のようです。 

Windows版をダウンロードします。

インストーラーをクリックしましょう。

jenkins.msi をクリックすると、Jenkins 2.492.2 のインストールが開始しました。

執事のようなおじさんが案内してくれるようですね。

Run serviceアカウントを利用したかったのですが、私は設定できませんでした。WindowsのMicrosoftアカウントが原因かとおもい、ローカルアカウント(管理者権限)を用意してみましたが、Jenkinsからはログイン認証が通過しません

おすすめされているローカルユーザでの起動はあきらめて、LocalSystemユーザを選択することにしました。

続いてポートの設定はデフォルトで進みます。

ポートは通過しました。

http://localhost:8080/login?from=%2F

ローカルホストにアクセスすると、初期パスワードの入力が必要とのことです。赤文字のパスを開くと、初期パスワードがありましたのでテキストファイルを開いてコピぺして入力しましょう。

初期設定が自動で開始しました。

管理者ユーザーを登録しましょう。

URLを個別に変更できるようなので、登録してみました。

転送されるようです。http://localhost:8080/jenkins/ を登録してみましたが、http://localhost:8080/jenkins/ から http://localhost:8080/ へ転送される動きのようです。

作成した管理者でログインすることができました。

ちなみに、エラーになると、おじさんがまるでプーチンさんみたいになるようです。

アプリケーション・ライフサイクル・マネジメント(ALM)

アプリケーションのライフサイクルマネジメントについて調べてみました。

ALM(アプリケーション・ライフサイクル・マネージメント)の導入による効果については、WIKIに下のように紹介されていました。

コンピュータープログラムの開発・保守における製品ライフサイクル管理のこと。各アプリケーションのライフサイクルにわたって継続的にプロセス管理をする考え方である。

出典:Wikiより アプリケーション・ライフサイクル・マネジメント (英: Application lifecycle management、ALM)

導入の効果としては、主に下記の効果が挙げられることがWIKIに紹介されていました。

  • 品質が向上し、最終的にユーザーの期待に合致するアプリケーション開発ができる
  • コラボレーションの壁が無くなりスムーズに情報が流れる シンプルなシステム開発を推進する
  • アプリケーションと設計の同期をすることで維持管理の時間を削減する
  • スキルとプロセス、技術の向上のための投資を最大化できる
  • 状況に合わせるための時間を削減し、変化するビジネス戦略に合致するための柔軟性が向上する

ALMの役割は、要件、ソフトウェア開発から販売を行い、保守、サポート終了までの範囲を含めて管理することになります。

ALM(アプリケーション・ライフサイクル・マネージメント)を管理する製品の種類を調べてみたところ多くの製品があるようです。

ソリューション・製品名会社特徴参考サイト
EndevorCA TechnologiesOpen Sourcehttps://ja.wikipedia.org/wiki/CA%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E3%82%BA
https://endeavour-mgmt.sourceforge.net/
Enterprise ArchitectSparx SystemsUML/SysML/BPMNモデリングツールhttps://www.sparxsystems.jp/
Helix ALMPerforceGain end-to-end traceability across the entire product lifecycle with Perforce ALM (formerly Helix ALM) – application lifecycle management from Perforce.https://www.perforce.com/products/helix-alm
HP Application Lifecycle ManagementMicro Focus International plchttps://support.microfocus.com/kb/kmdoc.php?id=KM01413261&fileName=ALM12.20_WhatsNew_ja.pdf
IBM Rational Team Concerthttps://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB

https://www.itmedia.co.jp/im/articles/0306/24/news001_2.html
JIRAアトラシアンhttps://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%88%E3%83%A9%E3%82%B7%E3%82%A2%E3%83%B3

https://www.atlassian.com/ja/software/jira/service-management
MylynEclipse Foundation
Parasoft DTPParasoft
Protecode System 4Protecode
PTC IntegrityParametric Technology Corporation(パラメトリック・テクノロジー・コーポレーション)
PTC CodebeamerPTChttps://www.ptc.com/ja/products/codebeamer?utm_source=Google_Search&utm_medium=cpc&utm_campaign=ALM_General_Google_Search_CLC&utm_content=ALM_General_Google_Search_CLC-cpc-product_page_03_ALM_Brand-57189&cl1=ALM_General_Google_Search_CLC-cpc-product_page_03_ALM_Brand-57189&cmsrc=Google_Search&cid=7016e000002VyAJAA0&elqCampaignId=32593&gad_source=1&gclid=Cj0KCQjw4v6-BhDuARIsALprm32X3LkuvJckz1BLrSiK0esAT7uZyYcXXMePJFoCOgX9e0OglVnBg3MaAjhgEALw_wcB
PulseGenuitec
Rational solution for Collaborative Lifecycle ManagementIBM
Rocket Aldonロケット・ソフトウェア(英語: Rocket Software)DevOps tools deliver true end-to-end CI/CD for IBM i environments, empowering businesses to implement holistic DevSecOps best practices.https://www.rocketsoftware.com/en-us/products/devops
SAP Solution ManagerSAPhttps://support.sap.com/ja/alm/solution-manager.html
StarTeamボーランド (Borland、Borland International、Inprise Corporation、Borland Software Corporation)https://ja.wikipedia.org/wiki/StarTeam

https://www.amc.rocketsoftware.co.jp/starteam/features/
TeamForge コラブネット (CollabNet)Ensure governance, compliance, and code security standards are maintained in development.https://digital.ai/products/teamforge/
Azure DevOpsマイクロソフト
Visual Studio Application Lifecycle Management

※Microsoft Visual Studio ALM
マイクロソフトVisual Studio Application Lifecycle Management は マイクロソフトが提供する、統合されたソフトウェア開発ツールであり、統合開発環境(IDE)、バージョン管理、作業管理機能、自動ビルド、レポーティング生成を行う機能を含む。Visual Studio 2005 から Visual Studio 2008 までは Microsoft Visual Studio Team System(VSTS)というブランド名であったが、2009年10月に Visual Studio 2010 の一部として Microsoft Visual Studio ALMと改称しリリースされた。https://ja.wikipedia.org/wiki/Visual_Studio_Application_Lifecycle_Management
TuleapEnaleanProduct Management, Agile Planning, Project Tracking, Test Management, Software Development. All-in-one.https://www.tuleap.org/
Jama SoftwareJama Softwarehttps://www.jamasoftware.com/platform/jama-connect/trial/?utm_source=guru99&utm_medium=ranking-site-paid&utm_campaign=30-best-alm-tools-june-2021-list&utm_content=free-trial-url
SpiraTeamInflectra CorporationpiraTeam is the all-inclusive platform for managing your software development and application lifecycle.https://www.inflectra.com/Products/SpiraTeam/
monday devmonday.com Ltd.lan roadmaps, manage sprints, and release products fast – on one flexible platform.
ヘリックスALMImprove your delivery time by utilizing software that integrates Application Lifecycle Management (ALM) and regulated Design Control.https://www.perforce.com/products/helix-alm
OrcanosOrcanos Ltd.achieve and maintain compliance with ease. We offer a range of cutting-edge software tools and services designed to simplify compliance management, automate processes, and improve overall efficiency.https://www.orcanos.com/application-lifecycle-management
ポラリオン
Polarion
SIEMENSEverything you need to achieve agility and have full control over your cyber-physical systems application lifecycle.https://polarion.plm.automation.siemens.com/
Apprendahttps://slashdot.org/software/p/Apprenda/integrations/
Kovair ALMKovair Software, LLC.https://www.kovair.com/presentations/kovair-alm-overview/
SwiftALMNimbleWork, Inc.Auto Detection of Configuration Changes through Smart Import
View Trend Line on Dashboard Widgets
Revamped Item Status Widget Settings Page
Mobile App Improvements
https://www.nimblework.com/webinar/swiftalm-3-0-webinar/

【Jenkins】(ジェンキンス)ソースコードのビルド、コンパイル、テスト、デプロイを自動化

AIによると、下のような機能、特徴があります。

Jenkins(ジェンキンス)は、ソフトウェア開発の自動化を目的としたオープンソースのサーバーソフトウェアツールです。

【主な機能】

  • ソースコードのビルド、コンパイル、テスト、デプロイを自動化できる
  • ビルドやテストの結果を開発者に通知できる
  • バージョン管理システムと連携して、コードの更新を検知して自動的にビルドを実行できる

【メリット】

  • 開発プロセスの自動化や開発コストの削減につながる
  • ソフトウェアの問題を早期に発見できる
  • 開発の品質と生産性を高めることができる
  • 豊富なプラグインにより、多様なカスタマイズが可能

【環境】

  • Javaランタイム環境(JRE)上で動作するため、特定のバージョンのJavaが必要
  • 安定したネットワーク接続が必要
  • JenkinsのWebインターフェースは主要なブラウザ(Chrome、Firefox、Safariなど)でアクセス可能

【使い方】

  • インストールや設定が簡単で、Webインターフェース経由で行うことができる
  • 分散ビルドやテスト環境での運用も可能である
  • スクリプトを記述することで任意の処理を実行したり、GitHubと連携したりすることが可能

Jenkins は下記サイトが公式サイトとなるようです。

https://www.jenkins.io/

CI(継続的インテグレーション) と DevOps(Development(開発)とOperations(運用))

AIからの引用です。

CI/CDとは「Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続的デリバリー)」の略称。

CI/CDはDevOpsの文化に欠くことのできない部分ですが、DevOpsはCI/CDのみに限定されません。DevOpsは、開発と運用の連携を包括的に指す手法であり、CI/CDはそのプロセスの一部という関係性になります。

【CI/CD】

  • 継続的インテグレーション(CI)と継続的デリバリー(CD)の略称
  • 開発から本番リリースまでを自動化するための仕組み
  • 開発の各段階に自動化を取り入れることで、開発効率の向上やヒューマンエラーの防止を図る

【DevOps】

  • Development(開発)とOperations(運用)を密接に連携させる手法
  • 開発チームと運用チームが連携して開発を進めることで、運用に合うソフトウェアを開発する
  • ソフトウェアの導入や更新を迅速に進めることを目指す
  • コラボレーション、チーム構造、観測、バージョン管理など、ソフトウェア開発ライフサイクル全体に及ぶ

validation「妥当性確認、入力規則」、verification「検証」

verification:「検証」客観的証拠を提示することによって、規定要求事項が満たされていることを確認すること。

検証、要求事項の確認。イメージしやすい例では、SalesforceではEmailが存在確認をするときに、実際にEmailを送信してURLをクリックして妥当性を確認しています。

validation:「妥当性の確認、チェック」

イメージしやすい例では、Data Validationというと、データが正しいかチェックをする場合にValidationを行います。

Salesforceでは、データを登録する前に入力規則(Validation Rule)がチェックしていますね。

最終成果物が顧客の期待にそっているかどうかを確認するときにもValidationということがあるようです。

UAT(ユーザー受け入れテスト)や運用開始後の評価後にもValidationということがあるようです。

【Java】Microsoft Build of OpenJDKをインストールする(OpenJDK21)

参考にさせていただいたサイトは、下記です。 https://qiita.com/nejioooo/items/c5081a5b5f6775189bb3   Jenkinsインストール【Windows環境】

Javaがパソコンにインストールされているか確認するところから開始しました。今回使用するパソコンはインストールされていない状態でした。

Java を確認する。 c:\>java -version

Microsoft Build of OpenJDK をダウンロードする https://learn.microsoft.com/ja-jp/java/openjdk/download

今回は、Jenkinsをインストールしたいので、Jenkinsの公式サイトから、Jenkinsが対応するJavaバージョンを確認しておきます。

Jenkinsの公式サイトで、Jenkinsの対応Javaバージョンを確認する。 https://www.jenkins.io/doc/book/platform-information/support-policy-java/

Java21に対応しているようです。

Microsoft Build of OpenJDK をダウンロードする

今回は、 Windows x64 msi microsoft-jdk-21.0.5-windows-x64.msi sha256  のJAVA OpenJDK21を選択しました。

Windows x64のインストーラータイプを選択しました。Javaインストーラーをダウンロードしました。

続いてインストールしましょう。

コマンドプロンプトを一度再起動。 java と入力すると、ダダっと表示されます。

c:\>set JAVA_HOME JAVA_HOME=C:\Program Files\Microsoft\jdk-21.0.5.11-hotspot\

参考にしたサイトによると、ユーザー変数を作成して、JAVA_HOME を binの下へ変更して、PATHを通した方が良いそうです。

私の場合は、下の位置になります。

C:\Program Files\Microsoft\jdk-21.0.5.11-hotspot\bin

環境変数の設定をします。
コントロールパネルを開いて、開いたらさらにシステムを開きます。
システムの詳細設定をクリック。
環境変数をクリック。
新規ボタンをクリックしユーザー環境変数を追加します。
以下のように設定しOKボタンをクリック。
変数名:「JAVA_HOME」
変数値:1. JDK(Java Development Kit) のインストールにてJDKを保存した場所。
参考サイトより

それではJAVA_HOMEを変更してみましょう。

ユーザ環境変数のPATHに、%JAVA_HOME%\bin; を追加できればJavaのインストール完了となります。

コマンドプロンプトから Java -version を実行してみます。

c:\>java -version openjdk version “21.0.5” 2024-10-15 LTS OpenJDK Runtime Environment Microsoft-10377968 (build 21.0.5+11-LTS)

インストールできていますね。

(WorkSpaces) Amazon WorkSpaces の削除(解約)の方法

AmazonのWorkSpaces利用している OSのリプレースのためサーバー移行作業を実施しました。 WorkSpacesの作成は実施したことがありましたが、移行後の削除については実施したことがなかったための記録です。

実施方法です。Standard 80G/50G で実行モード Alwaysを利用していました、移行先の環境の確保が必要でした。

(移行前)Windows 2016 Server :Standard 80G/50G で実行モード:Always 

(移行後)Windows 2022 Server :Performance 80G/100G で実行モード:Always 

同様の方法で、現行2台を新規2台へ移行することができました。

この方法では、移行先のサーバーを確保しなければならないので、単純に2倍のサーバー同時契約が必要です。複数のサーバー移行作業を同時に行う場合は、作業タイミングをずらすことで月額費用を先に延ばして抑えることはできそうですが、移行完了までは費用がかかります。開始したサーバはなるべく一気に実施して終了した方がよいです。

移行作業が完了して、新しいサーバが完成したら不要になったWorkSpacesを削除して解約します。

WorkSpacesのIDとステータスを確認してチェックを入れて削除を押下します。今回の例は1番上のWorkSpacesを削除します。

WorkSapceを削除するかどうか確認画面が表示されました。「削除」と漢字でフィールドへ入力してから「削除」ボタンを押下します。

削除が完了し、4台から3台になりました。成功です。

【外部システム連携】REST API

異なるベンダー間の製品を連携するには複雑関係が必要になりますが、https://enterprisezine.jp/ のサイトに紹介されていましたので引用させていただきます。IBMが発起人の1社として、要素技術の仕様を策定してすすめたようです。

https://enterprisezine.jp/article/detail/3799?p=3

異なるベンダー間の製品を統合するにはデータの違いやAPIの実装技術の違いなどのハードルがあるものだが、Open Services for Lifecycle Collaboration(OSLC)という標準化団体で管理データのスキーマとAPIの標準仕様化を進めている。

要素技術は XLM とREST APIを使うことが決まっており汎用性が高い。IBMは発起人の一社として仕様策定の活動を行っている。まさにここで決まった仕様を実装したものがJazzプラットフォームなのである。

REST API(RESTful API)とは、Webアプリケーションやソフトウェア同士の通信を可能にするアプリケーション・プログラミング・インタフェース(API)の一種です。インターネットを介して情報を共有したり操作したりするための「共通の言語」のような役割を果たしています。

【特徴】

  • HTTPメソッドやJSON形式などの主流なWeb技術を採用しているため、シンプルかつ効率的に開発できる
  • URIの構造が確立されており、多くの開発者が理解しやすくなっている
  • ステートレス(Stateless)なため、拡張性が高い
  • 軽量で、IoT(モノのインターネット)、モバイル・アプリケーション開発、サーバーレス・コンピューティングなどの先進的なコンテキストに適している

XMLについては、SOAPで利用することが定められているそうです。下記サイト(Docomoのコラム)から引用させていただきます。

https://www.ntt.com/business/services/rink/knowledge/archive_18.html

「SOAP」は(Simple Object Access Protocol)

異なるプログラミング言語やプラットフォーム(オペレーションシステムなど)で開発されたアプリケーション間の通信ができるようにすることを目指して設計されたWebサービスアクセスプロトコルです。

「XML」(Extensible Markup Language)

HTMLと似ており文字をタグで囲んだ形式で記述されます。タグは任意に決められるため汎用性や拡張性が高く、アプリケーションに依存することなく利用できるといったメリットがありますが、その反面タグを用いるため編集がしづらくタグを解析するためにアプリケーションでの処理の負荷が大きくなるといったデメリットがあります。

【特徴】

SOAP API に送信されたデータ要求は、HTTP (Web ブラウザの場合)、SMTP (電子メールの場合)、TCP などの任意のアプリケーション・レイヤー・プロトコルを介して処理できます。しかし、要求が受信されると、SOAP メッセージは XML ドキュメント (人間も機械も読み取り可能なマークアップ言語) として返信される必要があります。完了した SOAP API への要求はブラウザでキャッシュできないため、API に再送信しない限り、後でアクセスすることはできません。

https://www.redhat.com/ja/topics/integration/whats-the-difference-between-soap-rest

RedHatトピックス 統合 REST と SOAPより

(WordPress) ファイルアップロードの上限引き上げ

WordPressのメディアのファイルアップロード上限が標準の2MBになっていたため、引き上げることにしました。

WEBサーバによって設定が反映される、反映されないことがあるようです。動作できた方法を記録しておきます。

・「 .htaccess 」ファイルによる制限解除を狙ったのですが、当方が利用しているサーバではエラーとなってしまいましたので中止しました。

そこでWordpressをインストールしている上のトップ階層にphp.ini ファイルを設置するという方法を行いました。

[PHP]
memory_limit = 8M
post_max_size = 8M
upload_max_filesize = 8M
[/PHP]

こちらを試しましたが、Internalエラーが発生することが分かったため、memory_limit = 8M を削除して再度アップロードすると上限引き上げに成功いたしました。


下記が今回動作できた php.ini ファイルです。

[PHP]
post_max_size = 8M
upload_max_filesize = 8M
[/PHP]

post_max_size = 8M を外して upload_max_filesize = 8M のみにした場合を試しましたが、サイトヘルスに警告が表示されましたので、セットで記述した方がよいようです。

php.ini をサーバへアップしました。例えばXサーバ社が推奨するパーミッションは、.htaccessファイルは 644 ですので近いパーミッションで良いようです。所有者以外の読み取り防止を行う場合は、600 を試してもよいのかもしれません。

※試していませんが、「.user.ini」ファイルを設置する方法もあるようです

php.iniを配置後、Wordpressを更新するとすぐにアップロードサイズの上限が2MB→8MBへ変更になりました。

最大アップロードサイズを変更することができました!

※ memory_limit = 8M については、サーバー側の設定を上書きしないようにしたかったので今回は見送りました。

(WordPress)「サイトに重大なエラーがありました。」と表示された場合の調査を行いました。

今回は、WordPressのメンテナンス作業としてプラグインを更新した直後にエラーが表示されたため、解決した方法をメモに残しました。

まず、Plug-In を更新したときにエラーが発生しましたので、とにかくプラグインが怪しいと考えます。

まずは、plugins フォルダを plugins__ のようにフォルダ名を変更してみました。

Plugins フォルダがWordpressから見つからない状態になりますが、この操作だけでWordPress は 「サイトに重大なエラーがありました。」 という表示がなくなり、プラグイン無しの状態で動作するようになりました。確実にプラグインの影響です。

そのあとも各Pluginごとに、正しいフォルダに戻すという作業を行った結果、「Search Regex」というプラグインがエラーになっているということを突き止めました。

「Search Regex」は日本語のSSH化を行う際に導入した検索強化のプラグインですが、今後は不要と考えて削除しました。

Pluginsフォルダの名称をもとに戻すと復旧することができました。

復旧後はバックアップを取得しておきましょう!

MPSブログ