By Syuta Hashimoto @
2023-12-21 08:00
さて、毎度ながらの説明ですが、ALP (Adaptive Linux Platform)は、SUSEとopenSUSEで開発している次世代OSのベースです。イミュータブルで軽量な仕様となっています。
この冬発売のGeeko MagazineにインストールとCockpitというブラウザから管理できるアプリの体験記を書いていますので、ぜひ皆さん試してみてください。
今日は19日の記事の続きで、alpで動かしたgrafana workloadの制御コマンドを見てみたいと思います。
grafana-container-manage.sh create
grafanaコンテナを作成します。
grafana-container-manage.sh install
grafanaコンテナを動かすのに必要なファイル類をホストの/usr/local/binや/etcにインストールします。
スクリプト内の処理は、ホストのルートをマウントして、label-installというスクリプトを実行していました。
grafana-container-manage.sh start
grafanaコンテナをスタートします。
grafana-container-manage.sh uninstall
installコマンドでインストールしたファイル類などを削除します。こちらもスクリプト内の処理はホストのルートをマウントして、label-uninstallというスクリプトを実行していました。
grafana-container-manage.sh stop
grafanaコンテナをストップします。
grafana-container-manage.sh rm
grafanaコンテナを削除します。
grafana-container-manage.sh rmcache
garfanaイメージを削除します。内部で実行されるコマンドは、podman rmiです。
grafana-conatiner-manage.sh run
grafanaコンテナを実行します。
grafana-container-manage.sh bash
grafanaコンテナ内のbashを実行します。
grafana-container-manage.sh logs
grafanaコンテナのログを表示します。
コンテナのライフサイクルがわかっていれば、各コマンドの意味がわかるかと思います。
uninstallを実行すると、当然grafana-container-manage.shも削除されます。再び使うためには、19日の方法でイメージのinstallラベルを実行します。
|
# podman container runlabel install registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/grafana:latest |
また、rmcacheでイメージを削除後、createをしようとするとイメージのpullが始まります。まぁ当然ですね。
実行時、runだとgrafanaのコンテナの中のシェルが動いたため、cerateからstartを実行する方法が安全そうでした。
基本的にはpodmanコマンドのラップですが、installなど一部処理を簡単に実行できるようになっているので、ぜひ試してみてください。
By Syuta Hashimoto @
2023-12-19 08:00
さて、毎度ながらの説明ですが、ALP (Adaptive Linux Platform)は、SUSEとopenSUSEで開発している次世代OSのベースです。イミュータブルで軽量な仕様となっています。
この冬発売のGeeko MagazineにインストールとCockpitというブラウザから管理できるアプリの体験記を書いていますので、ぜひ皆さん試してみてください。
ここ何回かalpについて記事を書いていて、やっとわかってきました。SUSE/openSUSEは、ホストとの連携が必要などの単に動かすだけでない処理が必要なアプリのインストールや準備処理を、コンテナに内包して、workloadとして動かす、という戦略をとってるものがります。その時に利用するのが、podmanのlabel付け(実行コマンドにlabelをつける)と、そのlabel名で呼び出すrunlabelオプションです。
今回はgrafanaをマニュアルに従って動かしてみます。
grafanaサーバーのセットアップ
まず、workload内包コンテナを探します。
あれ?一覧にworkloadのコンテナが出てきません。直接レジストリ名を指定してみます。
|
# podman search registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/grafana |
表示されました。
では、イメージをpullしてワークロードを実行します。
|
# podman container runlabel install registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/grafana:latest |
容量があり1分ほど時間がかかりましたが、準備が完了しました。
grafanaのworkloadは、grafana-container-manage.shというスクリプトを用意してくれ、これを使ってコンテナの作成や実行などを行います。
まずは、コンテナを作成します。
|
# grafana-container-manage.sh create |
すぐにコンテナが作成されました。
では、コンテナをgrafanaのサーバーと共に実行します。
|
# grafana-container-manage.sh start |
今は指示通りコマンドを叩いてるだけですが、それぞれが何をしているかを見てみるのも楽しそうですね。
grafanaクライアントのセットアップ
今回はalpを動かしているホストをクライアントにしようと思います。
クライアントには、以下の2つのパッケージをインストールし、サービスを再起動します。
パッケージのインストール
- golang-github-prometheus-node_exporter
- golang-github-prometheus-prometheus
サービスの再起動
- systemctl restart prometheus-node_exporter.service
- systemctl restart prometheus
grafanaでの表示
では、grafanaを設定していきます。
ブラウザからgrafanaにアクセスします。
http://[ALP_HOST_IP]:3000
ログイン画面が表示されるので、ログインします。初期設定は両方ともadminとなっています。ログイン後、パスワード変更画面になりますので新しいパスワードを設定します。
ログインしたら、ホストのprometheusからデータを取得します。
上段の真ん中にある「DATA SOURCES」をクリックし、種類の一覧が表示されるので一番上の「Prometheus」を選択します。
Prometheus server URLに、Prometheusを動かしているマシンのurlを指定します。デフォルトでポートは9090です。僕の場合、alpを動かしているホストなのでhttp://192.168.122.1:9090となりました。
ホストのlibvirtのゾーンで9090を開放し、画面下部の「Save & test」ボタンをおすと、Successfullyと出てきました。
サンプルで用意されているDashboardsを読み込んでみます。マニュアルはバージョンが古いようで、僕が試した時は以下の手順になりました。
- 左上のハンバーガーメニューから、Dashboardsを選択する
- 右側にある「New」のボタンをクリックして出てくるドロップダウンから、Importを選択する
- Import via grafana.comに、405と入力して「Load」をクリックする
- prometheusをクリックして、データソースを選択する 手順通りだと一つのため、それを選択する
- 設定が読み込まれるので、下の「Import」をクリックする
無事、グラフが表示されました。
grafanaを制御するスクリプトには他にもアンインストールやキャッシュ削除などのオプションがありますので、追って紹介しようと思います。
By Syuta Hashimoto @
2023-12-15 08:00
さて、毎度ながらの説明ですが、ALP (Adaptive Linux Platform)は、SUSEとopenSUSEで開発している次世代OSのベースです。イミュータブルで軽量な仕様となっています。
この冬発売のGeeko MagazineにインストールとCockpitというブラウザから管理できるアプリの体験記を書いていますので、ぜひ皆さん試してみてください。
今日はalpで動かしているCockpitから、podmanを制御してみたいと思います。
まず、左側に「Podmanコンテナー」というメニューがあるので、そこを選択します。
すると、画面にPodmanサービスを有効化というボタンが表示されるので、クリックして有効化します。(すみません、スクショを撮り損ねてしまいました)
すると、イメージやコンテナーなどを制御できる画面が表示されます。
かなり直感的な操作ができそうです。
では、コンテナーを作成してみます。右下にある「コンテナーの作成」をクリックすると、コンテナー作成ダイアログが表示されます。
試しでnginxを作成してみます。
イメージの所にnginxと入れると、候補が表示されて、そこから選ぶことができました。
また、ポートマッピングもしておきます。「インテグレーション」タブで設定できました。
左下の「作成して実行する」をクリックします。すると、イメージのダウンロードが始まりました。
少しすると、無事実行中になりました。
ホストのブラウザからアクセスすると、nginxが起動していることが確認できました。
停止や削除などの操作も一通り画面から行えました。Podman、というかコンテナーの基礎知識は必要だなとは思いましたが、かなり直感的で使いやすかったです。
By Syuta Hashimoto @
2023-12-12 22:22
ALP (Adaptive Linux Platform)は、SUSEとopenSUSEで開発している次世代OSのベースです。イミュータブルで軽量な仕様となっています。
この冬発売のGeeko MagazineにインストールとCockpitというブラウザから管理できるアプリの体験記を書いていますので、ぜひ皆さん試してみてください。
さて、今日は公式ドキュメントにある、firewolldをpodmanで動かす手順をやってみようと思います。
まず、alpにログインし、alp用のfirewalldのコンテナを特定します。
|
# podman search firewalld |
そうすると、ドキュメントにも乗っているalp用ワークロードが搭載された registry.opensuse.org/suse/alp/workloads/tumbleweed_images/suse/alp/workloads/firewalld のイメージが見つかります。
次に、手順の通り、alpからパッケージとしてのfirewalldを削除します。alpはイミュータブルなため、通常のzypperコマンドではなく、専用のtransactional-updateコマンドで暫定的な削除を行い、リブートすることでそれがシステムに適用されます。
|
# transactional-update pkg remove firewalld # reboot |
では、イメージのワークロードを実行します。
|
# podman container runlabel install \ registry.opensuse.org/suse/alp/workloads/tumbleweed_images/suse/alp/workloads/firewalld |
他のイメージの実行時にも触れましたが、podmanは実行コマンドにラベルを貼ることができ、runlabel コマンドでそのラベルを指定して実行することができます。一連のalpワークロード用イメージは、installといったラベルにホストの設定などの処理を持たせています。
ドキュメントによると、firewalldはpolkitやsystemdなどの準備をしてくれているようです。
そう言えば、冒頭にdbusとpolkitの設定ファイルが必要、と書いてあったのですが、特に用意はせず、、、さて、どうなるでしょうか。
インストールが終わったので実行します。
|
# podman container runlabel run \ registry.opensuse.org/suse/alp/workloads/tumbleweed_images/suse/alp/workloads/firewalld |
コンテナが実行されました。ではコンテナ経由でfirewall-cmdを実行してみます。
|
# podman exec firewalld firewall-cmd --list-all-zones |
すると、zoneが表示され、firewall-cmdが実行可能なことがわかりました。
なお、firewalldのコンテナはホストを制御する関係上、privilegedで動いています。また、podmanを使っている場合、systemdとも統合されていて、systemctlコマンドで制御することが可能です。例えば、コンテナの起動は以下のコマンドで代替できます。
|
# systemctl start firewalld |
なお、firewalldやfirewall-cmdのマニュアルをコンテナ経由で見る方法もドキュメントに書かれていました。
firewalldならば、
|
# podman run -i --rm \ registry.opensuse.org/suse/alp/workloads/tumbleweed_images/suse/alp/workloads/firewalld \ man firewalld |
firewall-cmdならば、
|
# podman run -i --rm \ registry.opensuse.org/suse/alp/workloads/tumbleweed_images/suse/alp/workloads/firewalld \ man firewall-cmd |
で参照可能です。 manコマンドをコンテナの中で呼び出しているわけですね。
個人的に、firewalldをコンテナで実行する利点欠点が見えていない所があり、そのあたりも追って調査考察してみたいと思います。
By ribbon @
2023-11-28 21:18
openSUSE 15.5 で試したのですが、GlusterFS の中の glusterd は peer との通信にデフォルトで IPv6 で通信しています。 /etc/hosts に IPv4 アドレスでホスト名を指定してもそこを見ません。
IPv4 で通信させるためには、 /etc/glusterfs/glsuterd.vol に
option transport.listen-backlog 1024
と言う行を追加する必要があります。
By ribbon @
2022-12-19 00:12
第四世代の Intel CPU を使ったマシンで openSUSE を使っていると、シャットダウンコマンドで電源をOffにしようとしても( poweroff など)電源が切れません。一旦切れたようになりますが、再度起動してしまいます。この動作は、なぜか Windows と BSD (Dragon Fly BSD)では起こらず Linux のみ起こる現象のようです。 openSUSE 意外に Debian でも現象を確認しています。
色々調べたのですが、正解にはたどり着けず、毎回手動で電源を落としていました。そうすると、マジックパケットを飛ばして WOL による起動ができなくなり、ちょっと不便に感じていました。
結局、Kernel の詳しい人に正解をいただきました。Grub のオプションに
xhci_hcd.quirks=0x2000
を付けるのだそうです。これでちゃんと電源が切れ、さらに WOL も動くようになりました。
Category
Tips,
サーバ,
デスクトップ |
受け付けていません
By ribbon @
2022-12-18 00:00
この記事は openSUSE Advent Calendar 2022 の18日目です。
systemd が使われるようになると、daemon の制御とかのやり方は大きく変わりました。/etc/init.d にあるスクリプトから、systemd パッケージに含まれるコマンドを使うようになってきました。それらのコマンドは、xxxxxctl という、末尾に ctl が含まれるものが多いように感じました。そこで、/usr/bin/ の中にある、末尾が ctl なプログラムがどんなものかを簡単に調べて見ることにしました。
今回は、wdctl を紹介します。
コマンド名: wdctl
パッケージ: util-linux-2.37.2-150400.8.8.1.x86_64
動作: ○
wdctl は、システムのウオッチドッグ情報を表示するコマンドです。引数なしで起動すると以下のように表示します。
|
% wdctl Device: /dev/watchdog0 Identity: Software Watchdog [version 0] Timeout: 10 seconds Pre-timeout: 0 seconds |
オプションによって表示形式を変更することは出来ますが、基本的に上記のような情報を表示するだけです。ですので、あまり使い道はないかと思います。
Category
openSUSE,
Tips,
サーバ,
デスクトップ |
受け付けていません