すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:オンプレミス仮想マシンでのAlibaba Cloud Linuxイメージの使用

最終更新日:Jul 17, 2024

Alibaba Cloud Linuxイメージは、VHDおよびQCOW2形式で利用でき、組み込みのcloud-initを備えています。 オンプレミス仮想マシンでイメージを使用できます。 カーネルベースの仮想マシン (KVM) のみがサポートされています。 このトピックでは、オンプレミス仮想マシンでAlibaba Cloud Linux 3イメージとAlibaba Cloud Linux 2イメージを使用する方法について説明します。

背景情報

このトピックでは、オンプレミスオペレーティングシステムはAnolis OSです。 Alibaba Cloud LinuxイメージはKVMの作成に使用され、cloud-initはKVMのシステム設定の初期化に使用されます。NoCloudデータソースは、オンプレミスの構成ファイルを作成するために使用されます。 構成ファイルが仮想ディスクとしてKVMにアタッチされた後、KVMを起動できます。 Anolis OSをダウンロードするには、Anolis OSダウンロードページに移動します。このトピックは、KVMに精通しているユーザーを対象としています。

手順1: Alibaba Cloud Linuxイメージをオンプレミス仮想マシンにダウンロードする

次のURLから、VHDまたはQCOW2形式のAlibaba Cloud Linuxイメージをオンプレミス仮想マシンにダウンロードできます。

ステップ2: オンプレミス仮想マシンからseed.imgブートイメージを取得する

Alibaba Cloud Linuxイメージは、仮想マシンを直接起動できません。 seed.imgブートイメージと、ブートイメージのネットワーク、アカウント、YUMリポジトリなどの情報を設定する必要があります。

重要
  • ほとんどの場合、画像の名前はseed.imgです。 画像の名前は変更できますが、画像の名前は変更しないことをお勧めします。

  • seed.imgブートイメージには、cloud-initを起動するために必要な設定ファイルのみが含まれています。 イメージにはAlibaba Cloud Linuxシステムファイルが含まれていません。

seed.imgブートイメージを取得するには、次のいずれかの方法を使用します。

  • 方法1: seed.imgブートイメージをダウンロードする

    Alibaba Cloud Linux 3およびAlibaba Cloud Linux 2は、seed.imgブートイメージファイルを提供します。 seed.imgブートイメージは、次のURLからダウンロードできます。

    説明

    イメージ内の設定は変更できません。 この場合、画像は特定のシナリオに適していない可能性があります。 画像を使用する前に、画像に精通していることを確認してください。

  • 方法2: NoCloudデータソースを使用してseed.imgブートイメージを手動で生成する

    説明

    NoCloudデータソースは、オンプレミス環境で設定ファイルを提供できるcloud-initデータソースです。 ファイルは、仮想マシンで読み取り、使用できます。

    1. オンプレミスディレクトリに、という名前の2つの構成ファイルを作成します。meta-datauser-data.

      2つのファイルは、seed.imgブートイメージの一部として含まれています。 仮想マシンが起動すると、cloud-initは設定ファイルを読み取り、設定ファイルに基づいて仮想マシンを初期化します。

      1. シードという名前のディレクトリを作成します。ディレクトリに移動します。

        sudo mkdir seed
        sudo cd seed/
      2. という名前の構成ファイルを作成します。メタデータ.

        次の例は、設定ファイルの内容を示しています。 仮想マシンの名前はalinux-hostです。 ビジネス要件に基づいて名前を変更できます。

        #cloud-config
        #vim:syntax=yaml
        
        local-hostname: alinux-host                 
      3. という名前の構成ファイルを作成します。user-data.

        次の例は、設定ファイルの内容を示しています。 コンテンツを変更できます。

        Alibaba Cloud Linux 3

        #cloud-config
        #vim:syntax=yaml
        
        # Create an account named alinux and grant the account the permissions to run sudo commands. 
        users:
          - default
          - name: alinux
            sudo: ['ALL=(ALL)   ALL']
            plain_text_passwd: aliyun
            lock_passwd: false
        
        # Create a YUM repository for Alibaba Cloud Linux 3. 
        yum_repos:
            alinux3-module:
                name: alinux3-module
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/module/$basearch/
                enabled: 1
                gpgcheck: 1
                gpgkey: https://mirrors.aliyun.com/alinux/$releasever/RPM-GPG-KEY-ALINUX-3
            alinux3-updates:
                name: alinux3-updates
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/updates/$basearch/
                enabled: 1
                gpgcheck: 1
                gpgkey: https://mirrors.aliyun.com/alinux/$releasever/RPM-GPG-KEY-ALINUX-3
            alinux3-plus:
                name: alinux3-plus
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/plus/$basearch/
                enabled: 1
                gpgcheck: 1
                gpgkey: https://mirrors.aliyun.com/alinux/$releasever/RPM-GPG-KEY-ALINUX-3
            alinux3-powertools:
                name: alinux3-powertools
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/powertools/$basearch/
                gpgcheck: 1
                enabled: 1
                gpgkey: https://mirrors.aliyun.com/alinux/$releasever/RPM-GPG-KEY-ALINUX-3
            alinux3-os:
                name: alinux3-os
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/os/$basearch/
                gpgcheck: 1
                enabled: 1
                gpgkey: https://mirrors.aliyun.com/alinux/$releasever/RPM-GPG-KEY-ALINUX-3

        Alibaba Cloud Linux 2

        #cloud-config
        #vim:syntax=yaml
        
        # Create an account named alinux and grant the account the permissions to run sudo commands. 
        users:
          - default
          - name: alinux
            sudo: ['ALL=(ALL)   ALL']
            plain_text_passwd: aliyun
            lock_passwd: false
        
        # Create a YUM repository for Alibaba Cloud Linux 2. 
        yum_repos:
            base:
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/os/$basearch/
                enabled: true
                gpgcheck: true
                gpgkey: https://mirrors.aliyun.com/alinux/RPM-GPG-KEY-ALIYUN
                name: Aliyun Linux - $releasever - Base - mirrors.aliyun.com
            updates:
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/updates/$basearch/
                enabled: true
                gpgcheck: true
                gpgkey: https://mirrors.aliyun.com/alinux/RPM-GPG-KEY-ALIYUN
                name: Aliyun Linux - $releasever - Updates - mirrors.aliyun.com
            extras:
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/extras/$basearch/
                enabled: true
                gpgcheck: true
                gpgkey: https://mirrors.aliyun.com/alinux/RPM-GPG-KEY-ALIYUN
                name: Aliyun Linux - $releasever - Extras - mirrors.aliyun.com
            plus:
                baseurl: https://mirrors.aliyun.com/alinux/$releasever/plus/$basearch/
                enabled: true
                gpgcheck: true
                gpgkey: https://mirrors.aliyun.com/alinux/RPM-GPG-KEY-ALIYUN
                name: Aliyun Linux - $releasever - Plus - mirrors.aliyun.com
    2. (条件付きで必要) Alibaba Cloud Linux 3オペレーティングシステムを使用している場合は、epel-testingリポジトリを有効にします。

      1. epel-testing.repoファイルを開きます。

        sudo vim /etc/yum.repos.d/epel-testing.repo
      2. iキーを押して編集モードに入り、enabled=0enabled=1に置き換えます。

        [epel-testing]
        name=Extra Packages for Enterprise Linux 8 - Testing - $basearch
        baseurl=http://mirrors.cloud.aliyuncs.com/epel/testing/8/Everything/$basearch
        enabled=0
        gpgcheck=1
        countme=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
      3. Escキーを押し、:wqと入力して変更を保存します。

    3. 次のコマンドを実行して、cloud-utilsソフトウェアパッケージをインストールします。

      sudo yum install -y cloud-utils
    4. 次のコマンドを実行して、seed.imgブートイメージを生成します。

      sudo cloud-localds seed.img user-data meta-data

ステップ3: オンプレミス仮想マシンを起動する

KVMを起動するには、次のいずれかの方法を使用します。

libvirtを使用したKVMの起動

  1. オンプレミスのコンピューターでXML形式の構成ファイルを作成します。

    次の例は、設定ファイルの内容を示しています。 ファイル名は、Alibaba Cloud Linux 3ではalinux3.xml、Alibaba Cloud Linux 2ではalinux2.xmlです。 ビジネス要件に基づいて構成ファイルの内容を変更できます。

    Alibaba Cloud Linux 3

    <domain type='kvm'>
        <name>alinux3</name>
        <memory>1048576</memory><!-- Set the memory size to 1 GB.  -->
        <vcpu>1</vcpu>
        cpu mode='host-passthrough'><!-- Start the KVM on the server of the corresponding architecture.  -->
        </cpu>
        <os>
            <type arch='x86_64'>hvm</type><!-- If the architecture of the server is ARM 64-bit, set arch to aarch64.  -->
            <boot dev='hd'/>
        </os>
        <clock sync="localtime"/>
        <on_poweroff>destroy</on_poweroff>
        <on_reboot>restart</on_reboot>
        <on_crash>restart</on_crash>
        <devices>
            <emulator>/usr/bin/qemu-kvm</emulator><!-- Configure a KVM path based on the operating system. For example, the KVM path for Ubuntu is /usr/bin/kvm.  -->
            <disk type='file' device='disk'><!-- Specify the type parameter based on the image format. Set type to qcow2 if the image is in the QCOW2 format, and set type to vpc if the image is in the VHD format.  -->
                <driver name='qemu' type='qcow2' cache='none' dataplane='on' io='native'/> <!-- If you want to create a snapshot in the QCOW2 format, disable dataplane.  -->
                <source file='path'/> <!-- Enter the absolute path of the Alibaba Cloud Linux 3 image.  -->
                <target dev='vda' bus='virtio'/>
            </disk>
            <!-- Add information about the seed.img boot image.  -->
            <disk type='file' device='disk'>
                <driver name='qemu' type='raw'/>
                <source file='/path/to/your/seed.img'/> <!-- Enter the absolute path of the seed.img boot image.  -->
                <target dev='vdb' bus='virtio'/>
            </disk>
            <interface type='network'>
                <source network='default'/>
                <model type='virtio'/>
            </interface>
            <console type='pty'>
                <target type='virtio' port='0'/>
            </console>
            <video>
                <model type='cirrus' vram='9216' heads='1'/>
                <alias name='video0'/>
            </video>
            <input type='tablet' bus='usb'/>
            <input type='mouse' bus='ps2'/>
            <graphics type='vnc' port='-1' autoport='yes'/>
        </devices>
    </domain>

    Alibaba Cloud Linux 2

    <domain type='kvm'>
        <name>alinux2</name>
        <memory>1048576</memory> <!-- Set the memory size to 1 GB.  -->
        <vcpu>1</vcpu>
        <os>
            <type arch='x86_64'>hvm</type>
            <boot dev='hd'/>
        </os>
        <clock sync="localtime"/>
        <on_poweroff>destroy</on_poweroff>
        <on_reboot>restart</on_reboot>
        <on_crash>restart</on_crash>
        <devices>
            <emulator>/usr/bin/qemu-kvm</emulator><!-- Configure a KVM path based on the operating system. For example, the KVM path for Ubuntu is /usr/bin/kvm. -->
            <disk type='file' device='disk'><!-- Specify the type parameter based on the image format. Set type to qcow2 if the image is in the QCOW2 format, and set type to vpc if the image is in the VHD format.  -->
                <driver name='qemu' type='qcow2' cache='none' dataplane='on' io='native'/> <!-- If you want to create a snapshot in the QCOW2 format, disable dataplane.  -->
                <source file='path'/> <!-- Enter the absolute path of the Alibaba Cloud Linux 2 image.  -->
                <target dev='vda' bus='virtio'/>
            </disk>
            <!-- Add information about the seed.img boot image.  -->
            <disk type='file' device='disk'>
                <driver name='qemu' type='raw'/>
                <source file='/path/to/your/seed.img'/> <!-- Enter the absolute path of the seed.img boot image.  -->
                <target dev='vdb' bus='virtio'/>
            </disk>
            <interface type='network'>
                <source network='default'/>
                <model type='virtio'/>
            </interface>
            <console type='pty'>
                <target type='virtio' port='0'/>
            </console>
            <video>
                <model type='cirrus' vram='9216' heads='1'/>
                <alias name='video0'/>
            </video>
            <input type='tablet' bus='usb'/>
            <input type='mouse' bus='ps2'/>
            <graphics type='vnc' port='-1' autoport='yes'/>
        </devices>
    </domain>
  2. virshコマンドを実行して、KVMを起動します。コマンドのサンプルを次のコードに示します。

    説明

    デフォルトでは、libvirtは共通ユーザーによって起動されます。 一般ユーザーが画像ファイルおよび画像ファイルのパスを管理する権限を持っていることを確認してください。

    Alibaba Cloud Linux 3

    sudo virsh define alinux3.xml
    virsh start <KVMName>   # Enter the name of the KVM. You can run the sudo virsh list --name command to query the name of the KVM.

    Alibaba Cloud Linux 2

    sudo virsh define alinux2.xml
    sudo virsh start <KVMName>    # Enter the name of the KVM. You can run the sudo virsh list --name command to query the name of the KVM.

qemu-kvmコマンドを実行してKVMを起動します。

次のパラメーター設定をqemu-kvmコマンドに追加します。

-drive file=/path/to/your/seed.img,if=virtio,format=raw
  • /path/to/your/seed.img: パスをseed.imgブートイメージファイルのパスに置き換えることができます。

  • if=virtio: virtioは仮想ディスクへの接続に使用されます。

  • format=raw: ディスクイメージファイルはRAW形式です。

サンプルコマンド:

sudo /usr/libexec/qemu-kvm -drive file=/home/ecs-user/seed/seed.img,if=virtio,format=raw

virt-managerグラフィカルインターフェイスを使用してKVMを起動

KVMを起動する前に、コンピューター上のKVMの構成ファイルを見つけ、seed.imgブートイメージの絶対パスを構成ファイルに追加します。

次に何をすべきか

KVMの起動後、user-data構成ファイルに含まれているユーザー名とパスワードを使用して、KVMにログインします。

説明

SSHキーペアを使用してKVMにログインする必要がある場合は、SSHキーペアの公開キーがcloud-init設定ファイルに追加されていることを確認してください。

関連ドキュメント

  • cloud-initは、Linux仮想マシンを自動的に初期化するために使用されるツールです。 このツールは、仮想マシンの起動時に、ホスト名の指定、ネットワークの構成、ソフトウェアパッケージのインストールなど、一連のタスクを実行できます。 詳細については、「cloud-initドキュメント」をご参照ください。

  • libvirt、qemu-kvm、およびvirt-managerは、kvmの管理と実行に一般的に使用されます。詳細については、「Red Hatドキュメント」をご参照ください。