2021-05-05

Fedora Silverblue と Toolbox (2)

2014年に Red Hat 社が発表した Project Atomic [1] は、コンテナ向け OS を開発する取り組みでしたが、2018 年に CoreOS を買収したことでプロジェクト名が Fedora CoreOS へと変わりました [2]。デスクトップ用途の OS への応用として公開された Fedora Atomic Workstation は、Fedora Silverblue とブランド名を変えて Fedora 29(2018 年 10 月 30 日リリース)から Fedora Workstation の変種 (varianbt) として加えられました。

Fedora Silverblue は immutable(変更されない = read only)なデスクトップ用途の OS で、コンテナを中心としたワークフローのサポートを目的としています。Fedora Silverbllue は下記の構成になっています。

  • rpm-ostree
    • OSTree は、ファイルシステムツリー(= OS 環境)を管理するツールです。このファイルシステムは起動可能で immutable(変更されない = read only)です。ファイルシステムツリーのイメージは Git のような使い方でバージョン管理をすることができます。
    • OSTree と、rpm によるパッケージ管理機能を組み合わせたシステムが rpm-ostree です。rpm-ostree は OSTree による OS イメージの管理と rpm によるパッケージ管理を併せ持つので、ハイブリッドシステムと呼ばれています。
  • Flatpak
    • Flatpak とは、Linux デスクトップ向けのソフトウェアデプロイメント・パッケージ管理・アプリケーション仮想化(アプリケーション・コンテナ)を行うユーティリティです。
  • Toolbox
    • Fedora Toolbox は開発者のためにユーザーアカウント単位でコンテナ環境を提供するコマンドラインツールです。

Fedora Silverblue および rpm-ostree については、本ブログで既に紹介しています [3]。Fedora Silverblue は Fedora Workstation の未来だと考えて動向をウォッチしていますが、現時点では正式な Fedora のエディションにはなっていません。次期 Fedora 35 の ChangeSet が出来つつありますが、現時点では Fedora Silverblue に関連するような記述はありません。

Toolbox についても、過去記事 [4] で詳しく紹介しました。なお、rpm-ostree 以外、Flatpak と Toolbox は、他の Fedora でも利用できます。

今回のトピックは Toolbox を使って RHEL のコンテナイメージを扱う方法の紹介です。動作環境は下記の通りです。

Fedora Silverblue 34 x86_64
- toolbox-0.0.99.1-1
Fedora Silverblue 34 のデスクトップ画面

今回は Fedora Silverblue で Toolbox を使っていますが、Fedora Workstation / Server でも Toolbox を利用できます。

Toolbox で RHEL コンテナを扱う

4 月 27 日に Fedora 34 がリリースされたと同時に、Fedora Magazine のサイトで下記の記事が掲載されました。

Toolbox のセクションで Fedora 上に RHEL 環境を作成する方法が紹介されていましたので、早速、確認してみました。そろそろ RHEL 8.4 がリリースされる時期ですが、ブログ執筆時点ではまだリリースされていないので、RHEL 8.3 のコンテナを読み込んでみます。

[bitwalk@silverblue ~]$ toolbox create --distro rhel --release 8.3
Image required to create toolbox container.
Download registry.access.redhat.com/ubi8/ubi:8.3 (500MB)? [y/N]: y
Created container: rhel-toolbox-8.3
Enter with: toolbox enter rhel-toolbox-8.3
[bitwalk@silverblue ~]$ toolbox list
CONTAINER ID  CONTAINER NAME    CREATED            STATUS   IMAGE NAME
13919c108d2a  rhel-toolbox-8.3  About an hour ago  running  registry.access.redhat.com/ubi8/ubi:8.3
[bitwalk@silverblue ~]$ 

以下のようにして RHEL 8.3 のコンテナに入ります。

[bitwalk@silverblue ~]$ toolbox enter rhel-toolbox-8.3

Welcome to the Toolbox; a container where you can install and run
all your tools.

 - Use DNF in the usual manner to install command line tools.
 - To create a new tools container, run 'toolbox create'.

For more information, see the documentation.

[bitwalk@toolbox ~]$ 

行の先頭の は、Toolbox のコンテナ内であることを示しています。

デフォルトでは、ルート権限が必要な時に sudo が使えないので su(パスワード無し)でルートになります。

[bitwalk@toolbox ~]$ su

Welcome to the Toolbox; a container where you can install and run
all your tools.

 - Use DNF in the usual manner to install command line tools.
 - To create a new tools container, run 'toolbox create'.

For more information, see the documentation.

[root@toolbox bitwalk]# 

試しになにかパッケージをインストールしてみます。

[root@toolbox bitwalk]# dnf install redhat-lsb-core
Failed to set locale, defaulting to C.UTF-8
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Last metadata expiration check: 0:02:48 ago on Wed May  5 19:43:43 2021.
Dependencies resolved.
================================================================================
 Package                   Arch   Version                 Repository       Size
================================================================================
Installing:
 redhat-lsb-core           x86_64 4.1-47.el8              ubi-8-appstream  45 k
Installing dependencies:
 at                        x86_64 3.1.20-11.el8           ubi-8-baseos     81 k
 avahi-libs                x86_64 0.7-19.el8              ubi-8-baseos     63 k
   :
   :
 util-linux-user           x86_64 2.32.1-24.el8           ubi-8-baseos     99 k

Transaction Summary
================================================================================
Install  43 Packages

Total download size: 26 M
Installed size: 90 M
Is this ok [y/N]: y
Downloading Packages:
(1/43): patch-2.7.6-11.el8.x86_64.rpm           648 kB/s | 138 kB     00:00    
(2/43): cronie-1.5.2-4.el8.x86_64.rpm           503 kB/s | 119 kB     00:00    
   :
   :
(43/43): cups-client-2.2.6-38.el8.x86_64.rpm    129 kB/s | 169 kB     00:01    
--------------------------------------------------------------------------------
Total                                           2.3 MB/s |  26 MB     00:11     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : nspr-4.25.0-2.el8_2.x86_64                            1/43 
  Running scriptlet: nspr-4.25.0-2.el8_2.x86_64                            1/43 
  Installing       : nss-util-3.53.1-17.el8_3.x86_64                       2/43 
   :
   :
  Verifying        : nss-3.53.1-17.el8_3.x86_64                           43/43 
Installed products updated.

Installed:
  at-3.1.20-11.el8.x86_64                                                       
  avahi-libs-0.7-19.el8.x86_64                                                  
   :
   :
  util-linux-user-2.32.1-24.el8.x86_64                                          

Complete!
[root@toolbox bitwalk]# exit
exit
[bitwalk@toolbox ~]$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	RedHatEnterprise
Description:	Red Hat Enterprise Linux release 8.3 (Ootpa)
Release:	8.3
Codename:	Ootpa
[bitwalk@toolbox ~]$ 

パッケージのインストールはできますが、登録されていない旨のメッセージが表示されていますので、セキュリティなどパッケージの更新をするにはサブスクリプションの登録が必要になるようです。自分の場合、Red Hat Developer Subscription for Individuals のサブスクリプションを利用していますが、Toolbox の使い捨てコンテナで作業する分には、面倒なので登録しません。

RHEL で使用する予定のソフトウェアを Fedora 上で開発、あるいは RHEL で動作するかの動作検証をしたい場合に便利です。

Toolbox コマンド

Toolbox のコマンドの概略をまとめました。正式リリースまでまだまだ長い Toolbox のバージョン 0.0.99 ですが、それでもいつの間にかコマンドオプションが増えています。Docker のコマンドを使ったことがあれば容易に理解できると思います。

Toolbox コマンド概略
コマンド 説  明
toolbox create [--distro DISTRO | -d DISTRO] [--image NAME | -i NAME] [--release RELEASE | -r RELEASE] [CONTAINER]
  ツールボックスコンテナを作成します。デフォルトでは、ホストのバージョンと同じ Fedora のイメージをダウンロードします。オプションなしで使用すると、toolbox create は自動的に作成するコンテナに名前を付けます。
toolbox enter [--distro DISTRO | -d DISTRO] [--release RELEASE | -r RELEASE] [CONTAINER]
  toolbox のコンテナを対話的に使用するために入ります。オプションを指定せずに使用すると、デフォルトのコンテナを開きます。
toolbox run [--container NAME | -c NAME] [--distro DISTRO | -d DISTRO] [--release RELEASE | -r RELEASE] [COMMAND]
  toolbox のコンテナに入らずにコマンドを実行します。オプションなしで使用すると、デフォルトのコンテナに対してコマンドを実行します。
toolbox list [--containers | -c] [--images | -i]
  ローカルにある toolbox のイメージとコンテナの一覧を表示します。
toolbox rm [--all] [--force] [CONTAINER...]
  toolbox のコンテナを削除します。--force オプションを付けると、実行中であってもコンテナを削除します。
toolbox rmi [--all] [--force] [IMAGE...]
  toolbox のイメージを削除します。
toolbox init-container --home HOME --home-link --media-link --mnt-link --monitor-host --shell SHELL --uid UID --user USER
  新たに作成した実行中のコンテナを初期化します。
toolbox help [COMMAND]
  コマンドのヘルプを表示します。

参考サイト

  1. An overview of Project Atomic [LWN.net] [2018-02-21]
  2. Container Linuxの後継となる新たなコンテナ向けOS「Fedora CoreOS」 | さくらのナレッジ [2020-01-09]
  3. bitWalk's: Linux ディストロ探訪(10) 〜 Fedora Silverblue 〜 [2019-11-24]
  4. bitWalk's: Fedora Silverblue と Toolbox [2020-11-03]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

0 件のコメント: