①仮想サーバー作成
- インフラストラクチャーーから仮想サーバーを選択
- 作成を押す
- ロケーション選択
- サーバー名入力
- OS・プロファイル(CPU, GPU, RAM, ROM)
- SSH鍵作成&ダウンロード
- ストレージ選択
- ネットワーク設定(VPC, VNI)
- 作成を押す
デフォルトVPCのサブネットのACLは、パブリックで、VSIのセキュリティグループはプライベートだがSSH鍵を作成するとUDP 443ポートが開くので、そのままSSHできる。
RHELでは下記コマンドでSSH可能
ssh vpcuser@サーバーIPアドレス -i sshkey名_rsa.prv
ssh root@サーバーIPアドレス -i sshkey名_rsa.prv
②証明書の発行
SSHで入ったサーバー上で作業する
クライアントからサイトへの認証のセットアップ | IBM Cloud 資料
- sudo yum install gitEasy-RSA
- リポジトリーをローカル・フォルダーに複製します。
git clone https://github.com/OpenVPN/easy-rsa.gitcd easy-rsa/easyrsa3 - Public Key Infrastructure (PKI) と認証局 (CA) を作成します。
/easyrsa init-pki./easyrsa build-ca nopass - VPNサーバー証明書を生成する
./easyrsa build-server-full vpn-server.vpn.ibm.com nopass - VPNクライアント証明書を生成する
./easyrsa build-client-full client1.vpn.ibm.com nopass
証明書がクライアントを認証するためのVPNクライアント証明書として使用される場合は、 証明書ファイルと中間証明書ファイルをアップロードする必要があります。 例えば、異なるクライアント証明書を使用して異なるユーザーを認証する場合は、これらの証明書が同じ CA によって署名されていること、およびクライアント証明書の 1 つ (証明書ファイル および 中間証明書ファイル のみ) を Secrets Managerにアップロードしたことを確認してください。
③シークレットマネージャーの作成
VPN接続するために使用する鍵と証明書を保存する
- secret Managerのコンソールを開く
- 作成タブで、インスタンスをプロビジョニングする
- 地理的領域を表すリージョンを選択
- インスタンスの名前を入力
- リソース・グループを選択
- インスタンスでお客様管理の暗号化を有効にする(オプション)
- Secrets Managerに接続するためのオプションを選択
- public-and-privateを選択作成を押す
④Secrets Manager への VPN サーバー証明書のインポート
- リソースリストからSecrets Manager のインスタンスを選択
- シークレットテーブルで追加をクリック
- インポートされた証明書 をクリックし、次へをクリック
- 下記手順にて証明書を追加
シークレットを容易に識別できる名前と説明を追加します。
シークレットに割り当てるシークレット・グループを選択します。
オプション: インスタンス内の類似シークレットを検索しやすくするためのラベルを追加します。
オプション:あなたの秘密、またはあなたの秘密の特定のバージョンにメタデータを追加します。
Next をクリックし、 Import a certificate タイルを選択します。
**「参照」**をクリックし、証明書ファイルとして ./pki/issued/vpn-server.vpn.ibm.com.crt を選択します。
**「参照」**をクリックし、証明書の秘密鍵として ./pki/private/vpn-server.vpn.ibm.com.key を選択します。
**「参照」**をクリックし、中間証明書として ./pki/ca.crt を選択します。 - 次へ をクリックします。
- 証明書の詳細を確認し、Addをクリックします。
※Secrets Manager で証明書を更新した場合、VPNサーバーは証明書の更新を認識しません。 別のCRNで証明書をインポートし直し、新しい証明書のCRNでVPNサーバーを更新する必要があります。
⑤VPNへシークレットの権限を付与する
- 下記コンソールを開く
https://cloud.ibm.com/iam/authorizations - 作成を押す
- サービス:VPC Infrastructure Services
- サービスリソース:resourceType ストリングが等しい
- vpn-serverターゲットサービス:Secrets Manager
- 次へを押して、許可を押す
⑥Client VPN for VPCの作成
- クライアントサイト間のVPNサーバー
- クライアントIpv4 アドレスプール:192.168.0.0/16
- スタンドアロンモード
- サブネットを選択※VPCサーバー用に作成したパブリックサブネット
- PCサーバーのセキュリティグループの作成
- VPNの経路設定
https://cloud.ibm.com/docs/vpc?topic=vpc-vpn-client-to-site-routes&interface=ui
⑦OpenVPNファイルの作成・VPN接続
クライアントVPN環境の構築とVPNサーバーへの接続
https://cloud.ibm.com/docs/vpc?topic=vpc-vpn-client-environment-setup
OpenVPNのインストール
https://cloud.ibm.com/docs/vpc?topic=vpc-client-to-site-vpn-planning#vpn-client-software
余談
仮想サーバーへGPU使用のPyTorchを設定する方法
- pipをインストール
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py - ハード情報の確認
lspci | grep -i nvidia => GPU情報
hostnamectl => OSやCPU情報 - Cコンパイラのインストール
sudo yum install gcc]
CUDA tool kitとNVIDIA Driverのインストール後
- Pytorchのインストール
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 - Pythonライブラリのインストール
pip install –r requirements.txt
CUDA Toolkit 12.4のインストール
- CUDA Toolkit 12.4 Downloads | NVIDIA Developer
- sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
- sudo dnf clean allsudo dnf -y install cuda-toolkit-12-4
- sudo dnf install kernel-devel-matched kernel-headers
- 正常にインストールされたか確認
nvcc --versionを実行
NVIDIA ドライバーのインストール
Introduction — NVIDIA Driver Installation Guide r575 documentation
- 外部パッケージ(EPEL)のインストール
sudo dnf install wget -y
sudo subscription-manager repos –enable rhel-9-for-x86_64-appstream-rpms
sudo subscription-manager repos –enable rhel-9-for-x86_64-baseos-rpms
sudo subscription-manager repos –enable codeready-builder-for-rhel-9-x86_64-rpms
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
※認証キーでエラー
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpmsudo rpm -ivh epel-release-latest-9.noarch.rpm
sudo dnf -y module install nvidia-driver:latest-dkms - 正常にインストールされたか確認nvidia-smiコマンドを実行