|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
インストール時にサードパーティのRPMを追加する方法
この例は、追加のRPM(特定のハードウェアドライバーなど)がISOに含まれ、インストール中にOSイメージにインストールされるケースをカバーしています。
その使用ケースには、以下のファイルが必要です:
-
インストールする追加のRPM
-
バイナリをコピーしてインストールするためのフックを定義する追加のcloud-configファイル
追加のRPMがインストール時にリモートサーバーからダウンロード可能であると仮定して、すべてを単一の`SeedImage.spec.cloud-config`セクションにまとめることができます。
以下のcloud-configデータは、SeedImageリソースの`cloud-config`セクションの内容として使用できるものです。
name: "Install extra drivers"
stages:
before-install:
# Preload data to the persistent storage
# During installation persistent partition is mounted at /run/elemental/persistent
- downloads:
- path: /tmp/some_package.rpm
url: "<REMOTE_PACKAGE_URL>"
permissions: 0777
- commands:
- mkdir -o /run/elemental/persistent/extra-pkgs
- cp -p /tmp/some_package.rpm /run/elemental/persistent/extra-pkgs
after-install-chroot:
# Install the package at install time
- commands:
- rpm -iv /run/elemental/extra-pkgs/some_package.rpm
# Include to the install system analog upgrade and reset hooks
- files:
- path: /oem/extra-pkg.yaml
permissions: 0664
content: |
name: "Install extra drivers"
stages:
after-upgrade-chroot:
# Install the package after upgrading to a new image
- commands:
- rpm -iv /run/elemental/extra-pkgs/some_package.rpm
after-reset-chroot:
# Install the package on reset
- commands:
- rpm -iv /run/elemental/extra-pkgs/some_package.rpm
インストールフックはインストール手順のみをカバーしているため、追加のcloud-configデータもアップグレードやリセットプロセスの一部としてパッケージをインストールし続けるために、インストールされたシステムの一部である必要があります。
追加ファイルを含む生成されたISOイメージの再パック
また、インストール時にコンテンツを動的にダウンロードする動作が望まれない場合、かつすでにすべての追加バイナリを含むISOを作成することが実際の目的である場合には、手動でISOを再パックすることも可能です。ISOsを作成するためのLinuxユーティリティである`xorriso`を使用すると、これは比較的簡単なプロセスになります。
ISOルートに追加する必要があるディレクトリツリーを作成するために、`overlay`ディレクトリを作成しましょう。その場合、`overlay`ディレクトリには以下が含まれる可能性があります:
overlay/
data/
extra-pkgs/
some_package.rpm
iso-config/
install_hooks.yaml
`install_hooks.yaml`は、前のセクションで実際に公開されたcloud-configの内容であり、SeedImageリソースに埋め込まれるのではなく、手動でイメージに含まれると仮定しています。`data`フォルダーには、ISOに追加したいバイナリが最終的に含まれています。
特定のMachineRegistrationに結びついたElemental ISOをすでにダウンロードしたと仮定すると、次の`xorriso`呼び出しですべての`overlay`フォルダーの内容が新しいISOに含まれます:
xorriso -indev elemental.x86_64.iso -outdev elemental.custom.x86_64.iso -map overlay / -boot_image any replay
バージョン1.5以上の`xorriso`が必要です。
install_hooks.yaml`の内容は、前のセクションと同じである可能性がありますが、RPMパッケージのダウンロードを省略し、ISOルートフォルダーが/run/initramfs/live`にマウントされているため、RPMパスを`/run/initramfs/live/data/extra-pkgs/some_package.rpm`に適応させる必要があります。