DNET_Ubuntu2404OnAzureBastion - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

Ubuntu 24.04 on Azure via Bastion 2025/2/27

概要

Azure上にUbuntu 24.04を構築(BastionのRDP経由)

詳細

基本環境

Azure Bastion構築

Azure Bastion

参考の「DxCommon/AzureIaC/Simplest」を動かすパラメタの例

  • 基本

    location=japaneast
    azureBastionName=AzureBastion
    azureBastionRgName=AzureBastionRG
    azureBastionVnetName=AzureBastionVnet
    azureBastionSubnetName=AzureBastionSubnet
    jumpboxSubnetName=JumpboxSubnet
    azureBastionPubIPName=AzureBastionPubIP
    
  • VM系

    vmSize=Standard_E2s_v3
    vmOS=Ubuntu2404
    vmName=JumpboxVM1
    vmUser=XXXX
    vmPassword=XXXX
    

※ vm系パラメタは都度変えて運用。

SSHで接続しRDP設定

メンテナンス

ライブアップデート

UnattendedUpgrades

ウィルススキャン

ClamAV

補足

Bastionの都度削除

参考の「Azure Bastionの自動起動停止方法」同じこと考えてる奴いて草

  • 一先ず、BastionをGUIから削除して、BastionをShellで作成するようにする。

  • 必要に応じて、Logic AppsのワークフローでBastionをREST APIから削除

  • 再作成時は以下

    az network bastion create \
      --resource-group $azureBastionRgName \
      --name $azureBastionName \
      --vnet-name $azureBastionVnetName \
      --public-ip-address $azureBastionPubIPName \
      --location $location
    

ターミナル化

JumpboxVM1とは、本来、踏み台VM。

  • 踏み台VMをマルチユーザ化しておく。

    • rootユーザで

      • Bastionはキーボード入力が微妙(日本語入力の問題?)なので、
        ココでは、PWD入力があるのでSSHでログインして作業を行う。

      • ユーザを追加(パスワードを設定)

        sudo adduser [username]
        sudo passwd [username]
        
      • 権限を追加

        sudo usermod -aG xrdp [username]
        sudo usermod -aG sudo [username]
        groups [username]
        
    • 追加したユーザで

      • SSHでターミナルに(リモート)ログインし、以下を実行

        echo xfce4-session >~/.xsession
        sudo systemctl restart xrdp
        
      • RDPでデスクトップに(リモート)ログインできるか確認する。

  • RDPクライアントをインストールしておく。

    • インストール

      sudo apt install remmina
      
    • 設定

      • 「基本設定」→「解像度」で「クライアントの解像度を使う」にチェック
      • 「高度な設定」→「品質」を「最高」
    • 接続

ディスク追加

AzureのVMディスク容量が微妙なので、必要に応じて、都度追加が必要になる。

  • 環境変数

    diskName=MyDisk
    
  • Azure CLI

    • 新しいディスクを VM に接続

      • 既定のディスクタイプは StandardSSD_LRS(Standard SSD)
      • Standard SSDが64GBで5$、128GBで10$
      az vm disk attach \
         -g $azureBastionRgName \
         --vm-name $vmName \
         --name $diskName \
         --new \
         --size-gb 64
      
    • 既存のディスクを接続する

      az vm disk attach \
         -g $azureBastionRgName \
         --vm-name $vmName \
         --name $(az disk show -g AzureBastionRG -n $diskName --query 'id' -o tsv)
      
  • Ubuntuで

    • ディスクを見つける

      • lsblkで接続されているブロックデバイス(ディスク、パーティションなど)を表示

        lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
        
      • Azure VMで、SCSIコントローラ1に接続されたのが追加ディスク(データディスク)
        ちなみに、SCSIコントローラ0に接続されているのがOSディスク

        ls -l /dev/disk/azure/scsi1
        
    • 得られたディスク、sdxをパーティション&フォーマット

      • GPTパーティションテーブルを作成

        sudo parted /dev/sdx --script mklabel gpt mkpart xfspart xfs 0% 100%
        
      • カーネルに新しいパーティション構成を通知

        sudo partprobe /dev/sdx
        
      • 作成したパーティションをXFSでフォーマット

        sudo mkfs.xfs /dev/sdx1
        
    • ディスクをマウントする

      • ファイル システムをマウントするディレクトリを作成

        sudo mkdir /datadrive
        
      • mount を使用して、ファイル システムをマウント

        sudo mount /dev/sdx1 /datadrive
        
      • マウントを永続化する
        ・新しいドライブの UUID を確認

        $ sudo blkid
        /dev/sdx1: UUID="xxxxx" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"
        

        ・ディスクを /etc/fstab ファイルに追加

        sudo bash -c 'echo "UUID=xxxxx   /datadrive   xfs   defaults,nofail   1   2" >> /etc/fstab'
        
    • マウント先ディレクトリの所有者を現在のユーザーに変更する

      sudo chown -R [user-name]:[group-name] /datadrive
      

      ※ [user-name]:[group-name]ともにwhoamiで表示される現在のユーザーで良い。

Python環境の構築

WSL2 Ubuntu 24.04 LTS 2025/1/21と同じ手順でPython(LLMツール)環境を構築する。

参考

Linuxの各種 手順

Linuxの各種 手順

基本(クラウド&VM)環境

移行メモ

  • 「AzureC CLI」→「Azure CLI」に修正した。
  • 「ちなみに、SCSIコントローラ1二接続されているのがOSディスク」は、 直前の記述(コントローラ 1 に接続されるのがデータディスク)と矛盾するうえ、 Azure VM では OS ディスクは SCSI コントローラ 0 に接続されるため、 「SCSIコントローラ0に接続されているのがOSディスク」に修正した。
  • az vm disk attach-g $AzureBastionRG は、上に列挙された環境変数名と 一致しないため -g $azureBastionRgName に修正した(併せて \ 継続行の 直前に半角空白を補った)。
  • マウントの例が sudo mount /dev/sdc1 /datadrive となっていたが、 前後の記述(/dev/sdx)と揃えて /dev/sdx1 に修正した。
  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「Azure Bastion構築」「Linuxの各種 手順」)は、GitHub Wiki では 見出しからアンカが生成されるため、見出しをプレーン・テキストとし、 リンクは直下の本文に置いた。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Azure Bastion に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, Azure, Ubuntu 24.04, Azure Bastion, xrdp, RDP, ディスク追加, Azure CLI, Python

⚠️ **GitHub.com Fallback** ⚠️