AlmaLinux 8 WSL を用いたHPCIログイン

0. 変更履歴

0.1 主な変更内容

2024.04.05

  • ログイン手順の一部を利用者の環境に合わせて修正しました。

2023.07.31

  • 一部の項目で文章表現や構成を修正しました。

  • 本書のテキスト版の提供を終了しました。

2023.05.09

  • curl コマンドの入手について追記しました。

  • いくつかの誤記を修正しました。

2023.04.28

  • 参照するドキュメントの URL を修正しました。

2022.12.19

  • 初版を公開しました。

1. 概要

本書は、Windows 10 の利用者を対象に、AlmaLinux 8 WSL アプリを利用して HPCI 環境にログインする方法について解説したマニュアルです。

  • 本書で説明する方法は、AlmaLinux 8 WSL だけを対象にしています。WSL2 以外の環境で実行する AlmaLinux は対象外です。

  • AlmaLinux 8 WSL では、GCT (Grid Community Toolkit) および GSI-OpenSSH の RHEL8 向けの RPM パッケージを利用します。Docker は使用しません。

1.1 AlmeLinux 8 WSL について

AlmaLinux 8 は RHEL 8 とバイナリ互換性のある Linux ディストリビューションです。AlmaLinux 8 WSL は、Microsoft Store で配布されているアプリケーションで、Windows マシンで AlmaLinux ターミナル環境を実行できます。

AlmaLinux および AlmaLinux WSL の詳細は下記の URL を参照してください。

1.2 動作環境

Windows マシンが以下を満たしていることが必要です。

WSL を導入するために必要なシステムの要件

  • Windows 10 64bit version 2004 (build 19041) or higher

1.3 WSL のインストール

Windows マシンに WSL、および Linux ディストリビューションとして Ubuntu をインストールします。

  • インストール手順の詳細は Microsoft のドキュメント WSL のインストール を参照してください。

  • 既に Docker Desktop for Windows を WSL2 バックエンドで利用している環境では、本手順を実施する必要はありません。

インストール手順

  1. PowerShellを管理者として実行します。

  • [クイックリンク] メニューを表示します。
    • 表示するには、 [ スタート ] ボタンを右クリック、または Windows ロゴ キー + X キー を押します。

  • [Windows PowerShell (管理者)] を選択します。

  • 「このアプリがデバイスに変更を加えることを許可しますか?」と確認を求めてきたら [ はい ] を選択して続行します。

  1. wsl コマンドでインストールを実行します.

  • PowerShell で以下を実行します。

wsl --install
  • WSL およびデフォルトの Linux ディストリビューションとして Ubuntu がインストールされます。

PS C:\WINDOWS\system32> wsl --install
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
PS C:\WINDOWS\system32>
  1. メッセージに従い、WSL のインストールを完了するため、システムを再起動します。

  2. デフォルト UNIX ユーザアカウントを設定します。

Windows にログインし直した後、Ubuntu を実行してデフォルト UNIX ユーザアカウントを作成する必要があります。

デフォルト UNIX ユーザアカウントの詳細は Microsoft のドキュメント Linux ユーザー名とパスワードを設定する を参照してください。

Ubuntu は再起動後の Windows へのログインで自動的に起動します。Ubuntu が起動しない場合は下記の操作により起動してください。

  • [ スタート ] ボタンを押して、アプリの一覧から [ Ubuntu ] を選択します。

以上で WSL および Ubuntu のインストールは完了です。

パッケージの更新とアップグレード

パッケージマネージャを使用して、パッケージを定期的に更新およびアップグレードすることをお勧めします。次のコマンドを使用します。

$ sudo apt update && sudo apt upgrade

1.4 AlmaLinux 8 WSL のインストール

ここでは、WSL2 をインストール済みの環境に AlmaLinux 8 WSL をインストールする手順を説明します。

AlmaLinux 8 WSL のインストール手順の詳細は、AlmaLinux wiki の Installation steps を参照してください。

インストール手順

  1. タスクバーからアプリ [ Microsoft Store ] を選択します。

  2. 検索ボックスに "AlmaLinux 8 WSL" と入力して、AlmaLinux 8 WSL アプリを検索します。

  3. 検索結果の AlmaLinux 8 WSL を選択してダブルクリックします。

  4. [ 入手 ] を押してアプリをインストールします。

  5. [ 開く ] を押します。AlmaLinux ターミナルが起動します。

  6. デフォルト UNIX ユーザアカウントを設定します。

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
  • 画面の指示に従い、新しいユーザー名、パスワード、およびパスワードをもう一度入力します。

    • Enter new UNIX username:

    • New password:

    • Retype new password:

  • 登録完了すると、シェルのプロンプトが表示され、Linux のコマンドが実行できる状態になります。

以上で AlmaLinux 8 WSL のインストールは完了です。

2. AlmaLinux 8 WSL への GSI-OpenSSH のインストール手順

2.1 事前準備

CRL の定期更新に必要な cron 関連パッケージのインストールと crond の起動設定を行います。

cron 関連パッケージのインストール

AlmaLinux ターミナルで操作します。

  1. [ スタート ] ボタンを押して、アプリの一覧から [ AlmaLinux 8 ] を選択し、AlmaLinux ターミナルを起動します。

  2. crontabs および依存パッケージをインストールします。

$ sudo dnf install crontabs
  1. exit コマンドで AlmaLiunx ターミナルを終了します。

$ exit

crond の起動設定

Windows のタスクスケジューラを使用して、Windows へのログオン時に AlmaLinux 8 WSL の crond を起動する設定を行います。

  1. タスクスケジューラを起動します。

  • [ スタート ] ボタンを押して、アプリの一覧から [ タスクスケジューラ ] を選択します。

    • [ タスクスケジューラ ] は [ Windows 管理ツール ] フォルダにあります。

  1. タスクの作成 」ウインドウで以下の操作を実施します。

  • 全般 」 タブ

    1. 名前(M): 」に任意のタスク名を入力します。

    • (例) AlmaLinux-8 crond

  • トリガー 」 タブ

    1. 新規(N)... 」ボタンを押します。

    2. 新しいトリガー 」ウィンドウで以下の設定を行います。

    • タスクの開始(G): 」ドロップダウンで [ ログオン時 ] を選択します。

    1. [OK] ボタンを押して「 新しいトリガー 」ウィンドウを閉じます。

  • 操作 」 タブ

    1. 新規(N)... 」ボタンを押します。

    2. 新しい操作 」ウィンドウで以下の設定を行います。

    • 操作(I): 」ドロップダウンで [ プログラムの開始 ] を選択します。

    • 設定 」枠内の各項目に以下を設定します。

      • プログラム/スクリプト(P):

      C:\Windows\System32\wsl.exe
      
      • 引数の追加(オプション)(A):

      -d AlmaLinux-8 bash -l -c "sudo /usr/sbin/crond"
      
    1. [OK] ボタンを押して「 新しい操作 」ウィンドウを閉じます。

  1. [OK] ボタンを押して「 タスクの作成 」ウィンドウを閉じます。

次回 Windows ログオン時から、crond デーモンが自動起動します。

2.2 インストール手順

AlmaLinux 8 WSL では、RHEL8 向けの GSI-OpenSSH のパッケージを使用します。 HPCI ログインマニュアル の「3.2.1.1. インストール手順」を併せて参照してください。

AlmaLinux ターミナルで操作します。

  1. [ スタート ] ボタンを押して、アプリの一覧から [ AlmaLinux 8 ] を選択し、AlmaLinux ターミナルを起動します。以後の操作はすべてターミナル上で行います。

  2. NII 版 GSI-OpenSSH をインストールするため、NII-GT6 リポジトリをインストールします。

  • 「3.2.1.1. インストール手順」の「(1) リポジトリファイルのインストール」を参照してください。

  • 下記の実行例では、 curl コマンドを使用してリポジトリファイルをダウンロードしています。もし AlmaLinux ターミナルに curl コマンドが存在しない場合は dnf コマンドで curl コマンドをインストールしてください。

    $ sudo dnf install curl
    
  • チェックサムファイルについて

    • Windows の Web ブラウザで NII版のGSI-OpenSSHのリポジトリファイル のページにアクセスして、リポジトリチェックサムファイルをダウンロードします。

    • Windows のダウンロードフォルダ (c:\Users\username\Downloads) にダウンロードしたファイルを AlmaLinux ターミナルからアクセスするには、ダウンロードフォルダのパス名を /mnt/c/Users/username/Downloads のように指定します。

      • username は利用者のユーザ名に置き換えてください。

$ curl -OR https://www.hpci.nii.ac.jp/gt6/stable/installers/repo/rpm/hpci-gt6-repo-latest.noarch.rpm
$ cp /mnt/c/Users/username/Downloads/hpci-gt6-repo-latest.noarch.rpm.sha512 .
$ sha512sum --check hpci-gt6-repo-latest.noarch.rpm.sha512
$ sudo rpm -ivh hpci-gt6-repo-latest.noarch.rpm
  1. EPEL リポジトリをインストールします。

  • GSI-OpenSSH が依存する GCT ライブラリのパッケージをインストールするため、 EPEL リポジトリをインストールします。

$ sudo dnf install epel-release
  1. NII 版 GSI-OpenSSH の gsi-hpn-openssh-clients パッケージおよび GridCF 版 myproxy をインストールします。

  • 「3.2.1.1. インストール手順」の「(2) GSI-SSH パッケージをインストールします」の「RHEL8 の場合」に記されているコマンドを実行します。

    • dnf install コマンドで gsi-hpn-openssh-clients および myproxy をインストールします。

$ sudo dnf install gsi-hpn-openssh-clients myproxy

GSI-OpenSSH のインストール手順は以上です。

2.3 インストール後の設定

操作は引き続き AlmaLinux ターミナルで行います。

信頼できるCAの設定

HPCI ログインマニュアル の「3.2.1.1. インストール手順」の「(3)信頼できるCAの設定」を併せて参照してください。

  1. ファイルを配置するディレクトリを作成します。

$ sudo mkdir -p /etc/grid-security/certificates
  1. 1.で作成したディレクトリに移動して、必要なファイルを取得します。

$ cd /etc/grid-security/certificates
$ sudo curl -OR https://www.hpci.nii.ac.jp/ca/61cd35bd.0
$ sudo curl -OR https://www.hpci.nii.ac.jp/ca/61cd35bd.signing_policy

失効リストの更新

失効リストを定期的に更新するため、失効リスト取得ツール fetch-crl を crond で定期的に実行します。

  1. fetch-crl をインストールします。

$ sudo dnf install fetch-crl
  1. 更新対象の URL を設定します。

  • 失効リスト hpcica.crl を取得して 61cd35bd.r0 という名前で保存するための設定です。

$ cd /etc/grid-security/certificates
$ sudo sh -c "echo 'https://www.hpci.nii.ac.jp/ca/hpcica.crl' > 61cd35bd.crl_url"
  1. crontab に fetch-crl を定期的に実行するためのエントリを追加します。

    • /etc/cron.d ディレクトリに作成します。

    • fetch-crl-boot は crond 起動時に 1 度 fetch-crl を実行するための設定です。

    • fetch-crl-regularly は定期的に fetch-crl を実行するための設定です。

$ cd /etc/cron.d
$ sudo sh -c "echo '@reboot root /usr/sbin/fetch-crl -q' > fetch-crl-boot"
$ sudo sh -c "echo '45 */6 * * * root /usr/sbin/fetch-crl -q -r 360' > fetch-crl-regularly"

3. HPCI 環境へのログイン手順

RHEL8 用 GSI-OpenSSH をインストールした環境では、AlmaLinux ターミナル上で myproxy-logon コマンドや gsissh コマンドをそのまま実行できます。HPCI ログインマニュアルの記述に従って実行してください。

3.1 AlmaLinux ターミナル の起動

AlmaLinux ターミナルを起動します。

3.2 ログインサーバへのログイン

本節ではログイン手順の概要を説明します。詳細は HPCI ログインマニュアル を参照してください。

代理証明書の発行

最初に、Web ブラウザで HPCI 証明書発行システム にアクセスして代理証明書を発行し、代理証明書リポジトリに格納する必要があります。

注意

  • 代理証明書の有効期限は最大168時間です。

  • 有効期限が切れたら、その都度発行 (格納) してください。

  • 発行 (格納) 手順は以下のドキュメントを参照してください。

代理証明書のダウンロード

AlmaLinux ターミナル に代理証明書をダウンロードします。

  1. myproxy-logon コマンドで、代理証明書をダウンロードします。

[hpciuser@XXXXXXXXXXXX ~]$ myproxy-logon -s portal.hpci.nii.ac.jp -l [HPCI-ID]
Enter MyProxy pass phrase: ********
A credential has been received for user <HPCI-ID> in /tmp/x509up_up2000.
[hpciuser@XXXXXXXXXXXX ~]$
  1. grid-proxy-info コマンドで、取得した代理証明書の情報を確認します。

[hpciuser@XXXXXXXXXXXX ~]$ grid-proxy-info
subject  : /C=JP/O=NII/OU=HPCI/CN=user/CN=proxy/CN=proxy/CN=proxy/CN=proxy
issuer   : /C=JP/O=NII/OU=HPCI/CN=user/CN=proxy/CN=proxy/CN=proxy
identity : /C=JP/O=NII/OU=HPCI/CN=user
type     : RFC 3820 compliant impersonation proxy
strength : 2048 bits
path     : /tmp/x509up_u2000
timeleft : 12:01:15
[hpciuser@XXXXXXXXXXXX ~]$

ログインサーバへのログイン

  1. ログインサーバにログインします。以下に東京工業大学のログインサーバ login.t3.gsic.titech.ac.jp にログインする例を示します。

[hpciuser@XXXXXXXXXXXX ~]$ gsissh -p 2222 login.t3.gsic.titech.ac.jp
Last login: Tue Jan 24 11:09:13 2023 from xxx.xxx.xxx.xxx
--------------------------------------------------------------------
Last modified: 2023-04-06 17:00:00 JST

 ** Do not run heavy programs like ISVs on login nodes login[01]. **

    (The current TSUBAME 3.0 operational status)
    https://www.t3.gsic.titech.ac.jp/      Twitter:@Titech_TSUBAME
--------------------------------------------------------------------
<HPCI-ID>@login1:~>
  1. ログインサーバ から exit すると、 AlmaLinux ターミナルのシェル に戻ります。

<HPCI-ID>@login1:~> exit
logout
Connection to login.t3.gsic.titech.ac.jp closed.
[hpciuser@XXXXXXXXXXXX ~]$