2019-10-26

【備忘録】CentOS 8 と R

CentOS 8 上に R をインストールする時にハマったので備忘録として書き留めました。

R の開発環境を設定するのに必要なパッケージが PowerTools にあるため、このリポジトリを有効にします。

[bitwalk@centos-pc ~]$ sudo dnf config-manager --set-enabled PowerTools

たったこれだけなのですが、やり方が判るまで手間取ってしまいました。

[bitwalk@centos-pc ~]$ sudo dnf install R-core-devel
CentOS-8 - AppStream                            1.9 kB/s | 4.3 kB     00:02    
CentOS-8 - Base                                 1.5 kB/s | 3.9 kB     00:02    
CentOS-8 - Extras                               593  B/s | 1.5 kB     00:02    
CentOS-8 - PowerTools                           458 kB/s | 1.8 MB     00:04    
CentOS-8 - Plus                                 1.3 kB/s | 3.0 kB     00:02    
Extra Packages for Enterprise Linux 8 - x86_64  2.1 kB/s | 3.3 kB     00:01    
依存関係が解決しました。
================================================================================
 パッケージ                          アーキテクチャー
                                            バージョン         リポジトリ サイズ
================================================================================
Installing:
 R-core-devel                        x86_64 3.6.1-1.el8        epel       113 k
依存関係をインストール中:
 gcc-gfortran                        x86_64 8.2.1-3.5.el8      AppStream   12 M
 libXft-devel                        x86_64 2.3.2-10.el8       AppStream   25 k
 ...
(途中省略)
 ...
 texinfo                             x86_64 6.5-4.el8          PowerTools 1.2 M
 texinfo-tex                         x86_64 6.5-4.el8          PowerTools 160 k
 R-core                              x86_64 3.6.1-1.el8        epel        57 M
 libRmath                            x86_64 3.6.1-1.el8        epel       143 k
 tre                                 x86_64 0.8.0-27.20140228gitc2f5d13.el8
                                                               epel        46 k
 tre-common                          noarch 0.8.0-27.20140228gitc2f5d13.el8
                                                               epel        37 k
 tre-devel                           x86_64 0.8.0-27.20140228gitc2f5d13.el8
                                                               epel        17 k
弱い依存関係をインストール中:
 perl-Encode-Locale                  noarch 1.05-9.el8         AppStream   21 k
 perl-File-ShareDir                  noarch 1.104-3.el8        AppStream   29 k

トランザクションの概要
================================================================================
インストール  344 パッケージ

ダウンロードサイズの合計: 356 M
インストール済みのサイズ: 645 M
これでよろしいですか? [y/N]: y
...

参考サイト

  1. Centos 8 and R - CentOS

 

ブログランキング・にほんブログ村へにほんブログ村

2019-10-22

Cockpit を使う (2)

Cockpit とは、使い易く (easy-to-use)、統合されており (integrated)、一目で判る (glanceable)、ウェブベースの GNU/Linux 向けシステム管理ツールです [1]

Cockpit をインストールすると、以下のような処理をウエブブラウザから行えるようになります [2]

  • サービスの管理
  • ユーザーアカウントの管理
  • システムサービスの管理および監視
  • ネットワークインターフェースおよびファイアウォールの設定
  • システムログの確認
  • 仮想マシンの管理
  • 診断レポートの作成
  • カーネルダンプ構成の設定
  • SELinux の構成
  • ソフトウェアの更新

古い PC にインストールしてテストしている CentOS 8 で Cockpit を使ってみましたので、前回 [3] に続き、Cockpit の機能を紹介します。

CentOS 8 での使用例

使用した環境は以下の通りです。

OS
CentOS 8-1905 (CentOS-8-x86_64-1905-dvd1.iso)
Cockpit
cockpit-185.1-1.el8_0.x86_64

まずは Cockpit にログインします。

この例では、Cockpit で監視するホストが 192.168.0.22 です。

インターネットブラウザを起動して https://192.168.0.22:9090 を URL に入力します。ポート番号はデフォルトで 9090 です。ログインするホストにあるユーザーアカウントとパスワードでログインします。

システム

「システム」のページでは、ハードウェアやOS の情報、各種時系列のトレンド(CPU 稼働率、メモリー&スワップ使用量、ディスク I/O アクセス量、ネットワークトラフィック)が表示されます。

ログ

「ログ」のページでは、システムのログを閲覧することができます。またログレベルでフィルターすることもできます。

ストレージ

「ストレージ」のページでは、読み取り/書き込みのトラフィック、ファイルシステムのマウント情報、デバイスの情報、ストレージに関わるログが表示されます。

ネットワーキング

「ネットワーキング」のページでは、送信/受信のトラフィック、ファイアウォールのオン/オフのコントロール、インターフェースの情報、ネットワークに関わるログが表示されます。

アカウント

「アカウント」のページでは、登録されているアカウントの一覧が表示され、個々をクリックするとアカウントの詳細が表示されます。

アカウントについては削除を含め、一通りの管理ができるようになっています。

サービス

「サービス」のページでは、登録されているサービスの一覧が表示されます。

各サービスをクリックすると、そのサービスの状況が詳細に表示されて、停止、再起動および Enable/Disable などのコントロールができるようになっています。

左図は、The Apache HTTP server の例です。

Diagnostics Report

「Diagnostics Reports」のページでは、システムの問題の診断で使用するためにシステムからシステム設定と診断情報を収集して、ローカル(ブラウザを起動しているシステム)に保存することができます。

SELinux

「SELinux」のページでは、SELinux ポリシーの適用オン/オフのコントロールと、SELinux アクセス制御エラーの一覧が表示されます。

アプリケーション

「アプリケーション」のページでは、Cockpit のアプリケーションの一覧が表示されますが、CentOS 8 の現バージョン 185.1 では何も表示されていません。

ちなみに、Fedora 31 の Cockpit 203 では左図のように、一部の機能が Cockpit のアプリケーションに分離され、さらにいくつかのアプリケーションが利用可能になっています。

カーネルダンプ

「カーネルダンプ」のページでは、kdump 設定のテストをします。そのため、システムをクラッシュさせることによってテストをします。

ソフトウェア更新

「ソフトウェア更新」のページでは、システムに更新できるパッケージがないかを確認し、更新する場合はシステムを再起動させてパッケージ更新を行います。

端末

「端末」のページでは、ウェブベースの端末エミュレータを利用できます。

Fedora 31 での使用例

Fedora 31 で利用できるもっと新しいバージョンの Cockpit 203 では、複数のホストの状態をダッシュボードを利用して一元監視/管理できます。

OS
  Fedora 31 beta
Cockpit
  cockpit-203-1.fc31.x86_64
 Fedora 31 / Cockpit 203 のホストタブ 
 Fedora 31 / Cockpit 203 のダッシュボードタブ 

参考サイト

  1. Cockpit Project — Cockpit Project
  2. RHEL 8 で Web コンソールを使用したシステムの管理 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
  3. bitWalk's: Cockpit を使う (1) [2019-10-12]

 

ブログランキング・にほんブログ村へにほんブログ村

2019-10-20

Jumper EZpad 6 Pro と Fedora 31 beta

Jumper EZpad 6 Pro は 2-in-1 タイプの 11.6 インチタッチスクリーンタブレットノートパソコンです。

格安 PC に Linux をインストールすることを趣味としているので、前々から注目していた製品だったのですが、遂に Amazon.jp で買ってしまいました。

 Jumper EZpad 6 Pro / Windows 10 のデスクトップ画面 

仕様は以下のようになっています。

CPU Intel® Atom™ E3950
RAM 6GB (DDR3L)
ストレージ 64GB (eMMC)
ディスプレイ 11.6 inch IPS 1920x1080
カメラ フロント : 2.0 MP
無線 WiFi 802.11b/g/n (2.4GHz), Bluetooth 4.0
I/O ポート 1xマイクロ USB, 1×DC充電ポート, 1×type-C, 1×USB 3.0
1x microSD カードスロット(最大 128GB)
1x micro HDMI, 1x 3.5mm イヤフォン・マイク ジャック
バッテリー 4500mAh / 7.6V
重量、サイズ 1.05 kg, 30 x 18.6 x 1.1 cm

Fedora 31 beta をインストール

購入目的が Linux をインストールして使うことだったため、早速 Fedora 31 beta のライブイメージを起動したところ、問題なく起動できたので、そのままインストールしてしまいました。不具合があれば、おいおい解決する方法を探して行くつもりです。

 Jumper EZpad 6 Pro / Fedora 31 beta のデスクトップ画面 

インストール後に確認した機能を下記にまとめました。大変残念なことに内蔵の WiFi デバイスは認識されているものの、接続の確立を確認できていません。画面のタッチスクリーンが使えませんでしたが、実用上、キーボードを使う用途ですので、取り敢えず良しとします。

Fedora 31 beta で利用できる Jumper EZpad 6 Pro の機能(上から順に優先度が高い)
WiFi WiFi デバイスは認識しているのですが WiFi のパスワードを入力しても接続が確立しません。やむなく USB の WiFi 子機 (TL-WN725N) を使って対応しています。パスワードの入力を必要としない公衆アクセスポイントで使用できるかどうかは未確認です。
オーディオ  
Bluetooth ロジクールの Bluetooth マウス M557 を接続して使っています。
カメラ  
タッチスクリーン ×  
画面自動回転 ×  

画面

普段、出張にプライベート用途の PC として携行している ASUS TransBook T100HA は、大きさも手頃で、カメラ機能を除けば Linux で問題なく使えるようになったので、大変気に入っていました。ただ、画面の解像度 1280 × 800 は画面の狭さを感じておりそれが不満の種でした。

一方、この手の用途の PC に求める画面サイズは 11 ~ 12 インチに抑えたいと考えています。そのためむやみに解像度が高い画面の PC を選ぶと、GNOME の画面が 100% か 200% のサイズ調整しかできないため、読み易いフォントと画面の情報量確保のバランスが難しくなります。

※ 他のデスクトップ環境、例えば Deepin Desktop Environment (DDE) ではもっと細かく画面サイズを調整することができます。

今回買った Jumper EZpad 6 Pro の画面解像度 1920 × 1080 では、右のようにユニバーサルアクセスの設定で画面のデフォルトのフォントのサイズを大きくしたところ丁度良くなりました。

ディスプレイが 11.6" (Jumper EZpad 6 Pro) と 11.1" (ASUS TransBook T100HA) というように同じような大きさでも、解像度がそれぞれ 1920 × 1080 と 1280 × 800 と異なれば、画面の情報は下記のようにずいぶん異なります。

 Jumper EZpad 6 Pro(左)と ASUS TransBook T100HA(右)の画面 

キーボードと日本語変換

Jumper EZpad 6 Pro に付属していたキーボードは英語用レイアウトです。そのためキーボードレイアウト(+インプットメソッド)には、英語(US)、日本語、日本語(かな漢字)の三種類を設定しています。

GNOME では ⊞ Win + SPACE を押下すると利用可能なキーボードレイアウトが下図のように表示されます。⊞ Win を押したまま SPACE を離したり押したりすることで有効なレイアウトを切り替えることができます。これを日本語レイアウトのキーボードにある(IME の ON / OFF に使っている)半角/全角 キーの代わりに使っています。

 キーボードレイアウトの表示・選択 

バッテリー

バッテリー容量が 4500 mAh ということで、容量がやや小さいかなって感じましたが、はたして予想どおりでした。実際に使ってみて評価する必要はありますが、2 ~ 3 時間しかバッテリーは持たないと思っていた方が良さそうです。

搭載している CPU、Intel® Atom™ E3950TDP が 12W と、他の同世代の Atom プロセッサ(Celeron N3450 など)に較べて高いことも効いているのでしょう。

パフォーマンス

クロスプラットフォームで比較できる Geekbench 5 で、CPU 性能を計測して比較しました。

Jumper EZpad 6 Pro を、Windows の時と、Fedora 31 beta をインストールした時とを計測しました。下表の名前 (Name) が 'Jumper Ezpad' になっているのが今回の PC です。

なお、リファレンスとして三段目に、普段、出張に携行している T100HA (ASUSTeK COMPUTER INC. T100HAN) の結果 (Fedora 31 beta) を、四段目に、安価に惹かれて買った ALLDOCUBE iwork10 Pro の結果を載せました。

Geekbench 5 によるベンチマーク
#NamePlatformArchitectureSingle-core ScoreMulti-core Score
417797 Jumper Ezpad
Intel Atom x7-E3950 2000 MHz (4 cores)
Linux 64 x86_64 297 1069
416988 Jumper Ezpad
Intel Atom x7-E3950 1592 MHz (4 cores)
Windows 64 x86_64 284 977
421531 ASUSTeK COMPUTER INC. T100HAN
Intel Atom x5-Z8500 2240 MHz (4 cores)
Linux 64 x86_64 226 794
424392 ALLDOCUBE i1002SG
Intel Atom x5-Z8350 1920 MHz (4 cores)
Linux 64 x86_64 190 583

ベンチマークのスコアでは、Jumper EZpad 6 Pro に搭載されているプロセッサ x7-E3950 は、ひとつ前の世代の x5-Z8500 に比べ 1.3 倍以上、x5-Z8350 に比べ 1.5 倍以上の性能を達成しています。格安 PC の中ではお得感が高いです。

まとめ

約 2 万 7 千円の格安 PC にしては CPU の性能が高いので、コストパフォーマンスの良い買い物をしたと思います。あとはどこまで壊れずに使い続けることができるかです。今までの ASUS TransBook T100HA の代わりに持ち歩いて使ってみることにします。

 Jumper EZpad 6 Pro 

参考サイト

  1. 深圳中柏科技有限公司 (Jumper)
  2. bitWalk's: ASUS TransBook T100HA と Fedora 29 [2019-03-09]

 

eMMC の容量が 6 Pro では 64GB、6s Pro では 128GB。値段差を鑑みて今回は 64GB の 6 Pro を選びました。

ちなみに 6 Pro と 6s Pro の差は他にバッテリーの容量の差(4500mAh と 9000mAh)があります。

 

ブログランキング・にほんブログ村へにほんブログ村

2019-10-14

[CentOS 8] Podman の設定

Podman は、ほとんどの Linux プラットフォームで利用でき、GitHub を開発拠点とするオープンソースプロジェクトです。 Podman は、Linux システムで Open Container Initiative(OCI)のコンテナーおよびコンテナーイメージを開発、管理、および実行するための daemon を使用しない Docker 互換のコンテナーエンジンです。

Podman は RedHat Enterprise Linux (RHEL) / CentOS 7.6 以降で配布されはじめ、RHEL 8.0 では Podman がデフォルトになり Docker が同梱されなくなりました。これは CentOS 8 でも同じです。自分は CentOS 7 で https://download.docker.com/ の Docker-CE を利用していますが、テスト用に使い始めた CentOS 8 では RedHat が配布している podman を使ってみようと設定してみました。


使用した OS は前述のとおり、CentOS 8 です。

OS
CentOS Linux release 8.0.1905 (Core)

podman のインストール

念の為、docker を削除するコマンドを実行してから podman をインストールしました。

podman のインストール 
$ sudo dnf remove docker
一致した引数がありません: docker
削除対象のパッケージはありません。
依存関係が解決しました。
行うべきことはありません。
完了しました!
$ sudo dnf list podman
利用可能なパッケージ
podman.x86_64      1.0.5-1.gitf604175.module_el8.0.0+194+ac560166      AppStream
$ sudo dnf install podman
CentOS-8 - AppStream                            1.6 kB/s | 4.3 kB     00:02    
...
(途中省略)
...

トランザクションの概要
================================================================================
インストール  8 パッケージ

ダウンロードサイズの合計: 12 M
インストール済みのサイズ: 46 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード中です:
CentOS-8 - Base     206% [=========================================] 603  B/s | 
(1/8): containers-common-0.1.32-3.git1715c90.mo  28 kB/s |  31 kB     00:01    
...
(途中省略)
...

インストール済み:
  podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166.x86_64                  
  fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_64                        
  slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7.x86_64            
  container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7.noarch       
  containers-common-1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7.x86_64     
  oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7.x86_64      
  runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7.x86_64            
  fuse3-libs-3.2.1-12.el8.x86_64                                                

完了しました!
$ podman version
Version:       1.0.5
Go Version:    go1.11.6
OS/Arch:       linux/amd64
$ 

podman のコマンド

podman のコマンドを確認します。厳密にくらべてはいませんが、docker と同じコマンドで、docker を podman に置き換えるだけで同じように使えそうです。

podman のインストール 
$ podman --help
NAME:
   podman - manage pods and images

USAGE:
   podman [global options] command [command options] [arguments...]

VERSION:
   1.0.5

COMMANDS:
     attach           Attach to a running container
     commit           Create new image based on the changed container
     container        Manage Containers
     build            Build an image using instructions from Dockerfiles
     create           Create but do not start a container
     diff             Inspect changes on container's file systems
     exec             Run a process in a running container
     export           Export container's filesystem contents as a tar archive
     history          Show history of a specified image
     image            Manage images
     images           List images in local storage
     import           Import a tarball to create a filesystem image
     info             Display podman system information
     inspect          Displays the configuration of a container or image
     kill             Kill one or more running containers with a specific signal
     load             Load an image from docker archive
     login            Login to a container registry
     logout           Logout of a container registry
     logs             Fetch the logs of a container
     mount            Mount a working container's root filesystem
     pause            Pauses all the processes in one or more containers
     list, ls, ps     List containers
     pod              Manage pods
     port             List port mappings or a specific mapping for the container
     pull             Pull an image from a registry
     push             Push an image to a specified destination
     restart          Restart one or more containers
     rm               Remove one or more containers
     rmi              Removes one or more images from local storage
     run              Run a command in a new container
     save             Save image to an archive
     search           Search registry for image
     start            Start one or more containers
     stats            Display percentage of CPU, memory, network I/O, block I/O and PIDs for one or more containers
     stop             Stop one or more containers
     tag              Add an additional name to a local image
     top              Display the running processes of a container
     umount, unmount  Unmounts working container's root filesystem
     unpause          Unpause the processes in one or more containers
     version          Display the Podman Version Information
     volume           Manage volumes
     wait             Block on one or more containers
     help, h          Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --cgroup-manager value            cgroup manager to use (cgroupfs or systemd, default systemd)
   --cni-config-dir value            path of the configuration directory for CNI networks
   --conmon value                    path of the conmon binary
   --cpu-profile value               path for the cpu profiling results
   --hooks-dir value                 set the OCI hooks directory path (may be set multiple times)
   --log-level value                 log messages above specified level: debug, info, warn, error (default), fatal or panic (default: "error")
   --namespace value                 set the libpod namespace, used to create separate views of the containers and pods on the system
   --root value                      path to the root directory in which data, including images, is stored
   --tmpdir value                    path to the tmp directory
   --runroot value                   path to the 'run directory' where all state information is stored
   --runtime value                   path to the OCI-compatible binary used to run containers, default is /usr/bin/runc
   --storage-driver value, -s value  select which storage driver is used to manage storage of images and containers (default is overlay)
   --storage-opt value               used to pass an option to the storage driver
   --syslog                          output logging information to syslog as well as the console
   --help, -h                        show help
   --version, -v                     print the version
$ 

Red Hat UBI (Red Hat Universal Base Image) を使ってみる

podman では docker イメージをそのまま利用できるので、そのまま置き換えて使ってみれば良いのですが、参考サイト [3] によると、Red Hat 社のカスタマーポータルにログインする時に使う Red Hat ID があれば Red Hat UBI のコンテナーイメージを利用できるということですので、Podman の最初の動作確認に利用してみました。

※ Red Hat 社の製品を評価する目的で Red Hat ID を持っているので試してみました。

まず Podman から registry.redhat.io のレジストリにログインします。ここでは Red Hat ID の代わりに Registry Service Accounts で生成した Service Account を使用しました。Service Account は "|" 区切りで 7 桁の数字と任意のアルファベットから構成されます。パスワードとして約 700 文字の Token が割り当てられます。

Podman から registry.redhat.io へのレジストリにログイン 
$ podman login registry.redhat.io -u '11470127|bitwalk'
Password: 

Login Succeeded!
$ 

RHEL 8ベースの UBI のコンテナーイメージを検索すると以下のようになります。

RHEL 8 ベースの UBI のコンテナーイメージ検索 
$ podman search registry.redhat.io/ubi8
INDEX       NAME                                          DESCRIPTION                                       STARS   OFFICIAL   AUTOMATED
redhat.io   registry.redhat.io/ubi8                       The Universal Base Image is designed and eng...   0                  
redhat.io   registry.redhat.io/openjdk/openjdk-11-rhel8   OpenJDK S2I image for Java Applications on U...   0                  
redhat.io   registry.redhat.io/openjdk/openjdk-8-rhel8    OpenJDK 1.8 Image for Java Applications base...   0                  
redhat.io   registry.redhat.io/ubi8/nodejs-10             Platform for building and running Node.js 10...   0                  
redhat.io   registry.redhat.io/ubi8/php-72                Platform for building and running PHP 7.2 ap...   0                  
redhat.io   registry.redhat.io/ubi8/python-27             Platform for building and running Python 2.7...   0                  
redhat.io   registry.redhat.io/ubi8/s2i-core              Base image which allows using of source-to-i...   0                  
redhat.io   registry.redhat.io/ubi8/ubi                   Provides the latest release of the Red Hat U...   0                  
redhat.io   registry.redhat.io/ubi8/ubi-minimal           Provides the latest release of the Minimal R...   0                  
redhat.io   registry.redhat.io/ubi8/dotnet-21             .NET Core 2.1 SDK and Runtime on RHEL 8           0                  
redhat.io   registry.redhat.io/ubi8/perl-526              Platform for building and running Perl 5.26 ...   0                  
redhat.io   registry.redhat.io/ubi8/python-36             Platform for building and running Python 3.6...   0                  
redhat.io   registry.redhat.io/ubi8/ruby-25               Platform for building and running Ruby 2.5 a...   0                  
redhat.io   registry.redhat.io/ubi8/dotnet-21-runtime     Provides the latest release of Red Hat Enter...   0                  
redhat.io   registry.redhat.io/ubi8/s2i-base              Base image with essential libraries and tool...   0                  
redhat.io   registry.redhat.io/ubi8/ubi-init              Provides the latest release of the Red Hat U...   0                  
redhat.io   registry.redhat.io/ubi8-init                  The Universal Base Image Init is designed to...   0                  
redhat.io   registry.redhat.io/ubi8-minimal               The Universal Base Image Minimal is a stripp...   0                  
$ 

参考サイト [3] に倣ってレジストリから UBI 8 のコンテナーイメージを取得します。

registry.redhat.io/ubi8 のコンテナーイメージ取得 
$ podman pull registry.redhat.io/ubi8
Trying to pull registry.redhat.io/ubi8...Getting image source signatures
Copying blob c65691897a4d: 0 B / 67.74 MiB [-----------------------------------]
Copying blob c65691897a4d: 66.99 MiB / 67.74 MiB [=============================]
Copying blob c65691897a4d: 67.74 MiB / 67.74 MiB [=========================] 10s
Copying blob 641d7cc5cbc4: 1.48 KiB / 1.48 KiB [===========================] 10s
Copying config 11f9dba4d1bc: 4.43 KiB / 4.43 KiB [==========================] 0s
Writing manifest to image destination
Storing signatures
11f9dba4d1bc7bbead64adb8fd73ea92dca5fac88a9b5c2c9796abcf2e97846d
$ 

イメージのサイズを確認すると 200MB 程度です。

podman images の実行 
$ podman images
REPOSITORY                TAG      IMAGE ID       CREATED       SIZE
registry.redhat.io/ubi8   latest   11f9dba4d1bc   3 weeks ago   216 MB
$ 

イメージを起動してみます。

registry.redhat.io/ubi8 のコンテナーイメージの起動 
$ podman run -it registry.redhat.io/ubi8 bash
bash-4.4# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)
bash-4.4# df -h
Filesystem      Size  Used Avail Use% Mounted on
fuse-overlayfs  200G  2.9G  198G   2% /
tmpfs            64M     0   64M   0% /dev
tmpfs           367M   56K  367M   1% /etc/hosts
shm              63M     0   63M   0% /dev/shm
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
devtmpfs        1.8G     0  1.8G   0% /dev/tty
tmpfs           1.8G     0  1.8G   0% /proc/acpi
tmpfs           1.8G     0  1.8G   0% /proc/scsi
tmpfs           1.8G     0  1.8G   0% /sys/firmware
bash-4.4# dnf repolist
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.
Red Hat Universal Base Image 8 (RPMs) - AppStre 429 kB/s | 2.3 MB     00:05    
Red Hat Universal Base Image 8 (RPMs) - BaseOS  151 kB/s | 754 kB     00:04    
Last metadata expiration check: 0:00:03 ago on Mon Oct 14 09:24:16 2019.
repo id             repo name                                             status
ubi-8-appstream     Red Hat Universal Base Image 8 (RPMs) - AppStream     778
ubi-8-baseos        Red Hat Universal Base Image 8 (RPMs) - BaseOS        659
bash-4.4# exit
exit
$

パッケージレポジトリは通常の RHEL 8 のレポジトリではなく、UBI のレポジトリ ubi-8-baseos と ubi-8-appstream が参照されています。

Dockerfile を用いたコンテナイメージのビルド

下記のような CentOS 8 のコンテナイメージを作成するだけの単純な Dockerfile を用意して、コンテナイメージをビルドしてみました。

CentOS 8 用の Dockerfile 
FROM centos:centos8
MAINTAINER bitwalk

podman build コマンドでビルドします。

podman build の例 
$ podman build -t base:centos8 .
STEP 1: FROM centos:centos8
Getting image source signatures
Copying blob 729ec3a6ada3: 66.87 MiB / 68.21 MiB [=============================]
Copying blob 729ec3a6ada3: 68.21 MiB / 68.21 MiB [=========================] 11s
Copying config 0f3e07c0138f: 2.13 KiB / 2.13 KiB [==========================] 0s
Writing manifest to image destination
Storing signatures
STEP 2: MAINTAINER bitwalk
--> 5b2faaf200d323caf1f599e482d54d69713224ad8974fa4b62c81e700bb4fca8
STEP 3: COMMIT base:centos8
--> 65e7c22f21f47daa98db529bdc5f857db45fe031f277481537f0872f3f0a0e6c
$ podman images
REPOSITORY                 TAG       IMAGE ID       CREATED              SIZE
localhost/base             centos8   65e7c22f21f4   About a minute ago   227 MB
<none>                     <none>    5b2faaf200d3   About a minute ago   227 MB
docker.io/library/centos   centos8   0f3e07c0138f   12 days ago          227 MB
registry.redhat.io/ubi8    latest    11f9dba4d1bc   3 weeks ago          216 MB
$ 

IMAGE ID でコンテナイメージで bash を起動します。

コンテナーイメージ localhost/base (65e7c22f21f4) の起動 
$ podman run -it 65e7c22f21f4 bash
[root@d7b310aea6e9 /]# cat /etc/centos-release
CentOS Linux release 8.0.1905 (Core) 
[root@d7b310aea6e9 /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
fuse-overlayfs  200G  2.6G  198G   2% /
tmpfs            64M     0   64M   0% /dev
tmpfs           367M   56K  367M   1% /etc/hosts
shm              63M     0   63M   0% /dev/shm
tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup
devtmpfs        1.8G     0  1.8G   0% /dev/tty
tmpfs           1.8G     0  1.8G   0% /proc/acpi
tmpfs           1.8G     0  1.8G   0% /proc/scsi
tmpfs           1.8G     0  1.8G   0% /sys/firmware
[root@d7b310aea6e9 /]# dnf repolist
Failed to set locale, defaulting to C
CentOS-8 - AppStream                            707 kB/s | 6.0 MB     00:08    
CentOS-8 - Base                                 1.0 MB/s | 7.9 MB     00:07    
CentOS-8 - Extras                               412  B/s | 2.1 kB     00:05    
Last metadata expiration check: 0:00:01 ago on Mon Oct 14 10:08:18 2019.
repo id                        repo name                                  status
AppStream                      CentOS-8 - AppStream                       5069
BaseOS                         CentOS-8 - Base                            2835
extras                         CentOS-8 - Extras                             3
[root@d7b310aea6e9 /]# exit
exit
$ 

Red Hat 社が中心となってオープンソースで開発中のコンテナエンジン Podman が、将来 Docker に置き換わることになるかは定かではありませんが、RHEL/CentOS 系 Linux をメインに使っているので、わざわざ Docker を導入することをせずに、Podman をもっと使い込んでみます。

参考サイト

  1. Podman | podman.io: Repository for podman.io website using GitHub Pages.
  2. 第6章 コンテナーに関する主な変更点 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
  3. CentOS 7とPodmanで触ってみようRed Hat UBI - 導入編 - 赤帽エンジニアブログ [2019-08-14]
  4. PodmanのセキュリティはDockerよりも何が優れているのか? - Qiita [2019-01-26]
  5. Intro to Podman (Red Hat Enterprise Linux 7.6 Beta) - Red Hat Developer [2018-08-29]

 

ブログランキング・にほんブログ村へにほんブログ村

2019-10-12

Cockpit を使う (1)

Cockpit とは、使い易く (easy-to-use)、統合されており (integrated)、一目で判る (glanceable)、ウェブベースの GNU/Linux 向けシステム管理ツールです [1]

Cockpit をインストールすると、以下のような処理をウエブブラウザから行えるようになります [2]

  • サービスの管理
  • ユーザーアカウントの管理
  • システムサービスの管理および監視
  • ネットワークインターフェースおよびファイアウォールの設定
  • システムログの確認
  • 仮想マシンの管理
  • 診断レポートの作成
  • カーネルダンプ構成の設定
  • SELinux の構成
  • ソフトウェアの更新

古い PC にインストールしてテストしている CentOS 8 で Cockpit を使ってみましたので、顛末をまとめました。

OS
CentOS 8-1905 (CentOS-8-x86_64-1905-dvd1.iso)

テストしている CentOS 8 は、インストール時にソフトウェアの選択でデフォルトの「サーバー (GUI 使用)」をそのまま選んでインストールしたのですが、cockpit はインストールされていました。インストールされていない場合は次のようにインストールします。

$ sudo dnf install cockpit
cockpit の起動 
$ sudo systemctl enable cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
$ sudo systemctl start cockpit.socket
$ sudo systemctl status cockpit.socket
 cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres>
   Active: active (listening) since Sat 2019-10-12 20:18:04 JST; 2h 6min ago
     Docs: man:cockpit-ws(8)
   Listen: [::]:9090 (Stream)
  Process: 790 ExecStartPost=/bin/ln -snf active.motd /run/cockpit/motd (code=e>
  Process: 782 ExecStartPost=/usr/share/cockpit/motd/update-motd  localhost (co>
    Tasks: 0 (limit: 23288)
   Memory: 1.4M
   CGroup: /system.slice/cockpit.socket

10月 12 20:18:04 centos-pc systemd[1]: Starting Cockpit Web Service Socket.
10月 12 20:18:04 centos-pc systemd[1]: Listening on Cockpit Web Service Socket.
$ sudo ss -tulpn | grep :9090
tcp   LISTEN  0       128                         *:9090                *:*      users:(("systemd",pid=1,fd=24))                                                
$

9090 番ポートにアクセスしてはじめて Cockpit のサービスを立ち上がります。ウェブブラウザで https://(Cockpitをインストールしたサーバーのアドレス):9090/ をアクセスします。

 証明書エラー 

Cockpit は起動時に /etc/cockpit/ws-certs.d 内を確認し、.cert で終わる証明書ファイルが存在しない場合は,自己署名証明書を自動生成します。そのため上図のようにSEC_ERROR_UNKNOWN_ISSUER のエラーが表示されます [3]危険性を承知で続行 をクリックするとログイン画面が表示されます。

 Cockpit のログイン画面 

ログインは、Cockpit がインストールされているサーバーのローカルユーザーのアカウントをそのまま利用します。「□ 特権タスクにパスワードを再使用します」にチェックを入れておくと、Cockpit の UI でパッケージのインストールや再起動などができます。ただし、ログインしているアカウントが sudoers である必要があります。

 Cockpit の画面 

ちなみに、CentOS 8 ではファイヤーウォールの設定をしなくとも、他の PC のウェブブラウザから Cockpit の 9090番のポートにアクセスできましたが、CentOS 7 では次のようにファイヤーウォールの設定をしないとアクセスできませんでした。

$ sudo firewall-cmd --add-port=9090/tcp --permanent
success
$ sudo firewall-cmd --reload
success
$

詳しい使い方を次回まとめます。

参考サイト

  1. Cockpit Project — Cockpit Project Running Cockpit - Red Hat Enterprise Linux
  2. RHEL 8 で Web コンソールを使用したシステムの管理 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
  3. 第480回 ウェブブラウザーから操作できる軽量管理ツール「Cockpit」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 [2017-07-19]

 

ブログランキング・にほんブログ村へにほんブログ村