2022年のふりかえり

By ftake @ 2022-12-25 16:52

openSUSE Advent Calendar 2022 にご参加ありがとうございました。

最終日は毎年恒例の1年のふりかえりをしたいと思います。

5月

OSC/Online 名古屋に参加し、久しぶりにまとまったセミナーを開催しました。タイトルは「たまには日本語入力 Mozc の話でもしようか〜新機能の紹介とコードコミットができないプロジェクトとの関わり方」で、Tumbleweed では既に配信されている開発が再開後のバージョンの Mozc をパッケージングするにあたり、やってきたことをまとめてみました。

7月

openSUSE Leap 15.4 のリリースパーティをオンライン(Gather Town)で開催しました。

8月

コミックマーケット C100 に参加し、Geeko Magazine 2022夏号を頒布しました。台風が近づく荒天での開催でしたが、来場者数の上限が引き上げられたこともあり、久しぶりの賑わいを感じることができました。

9月

ODC 2022/Online に Cross Distro Developers Camp (XDDC) の名義で参加しました。「Linux ディストリビューション開発の近況」というタイトルで、Debian、openSUSE、Ubuntu の開発の近況について話をしました。

10月

openSUSE.Asia Summit 2022 を開催しました。昨年は完全なオンラインでしたが、今年はオンラインのイベントに加え、オフラインサテライト会場を東京、台北、ジャカルタに用意しました。オフライン会場ではオンラインでの発表を一緒に聴講したり、各地域ごとの講演を行いました。オフラインでの懇親会も久しぶりでした。

PA013265
openSUSE.Asia Summit 2022フォトアルバム

OSC Online/Fall では、修太さんが「YAML に書いた宣言的な定義から VM を作ってみた 〜一般のご家庭向けver〜」というタイトルで発表しました。

11月

オフラインでの展示が復活したということで関西オープンフォーラム2022に参加しました。

12月

openSUSE Advent Calendar 2022 を開催しました。今年は無事に完走できました。

12月31日にコミックマーケットC101に参加し、Geeko Magazine 2022冬を頒布します。

まとめ

後半から少しずつ対面のイベントが増えてきた1年でした。

来年は OSC も展示イベントを東京・名古屋で開催することになっており、参加イベントも増えそうな気がします。来年も引き続き、openSUSE ユーザ会の活動にご参加ください。

Geeko Magazine Special Edition 2022 冬

By ftake @ 2022-12-17 13:01

Geeko Magazine の新刊を発行します。最初の頒布はコミックマーケット C101 2日目 12/31(土)です。スペースは西地区 “さ” ブロック 22b です。
https://webcatalog.circle.ms/Perma/Circle/10269059/

今回の記事は以下のとおりです

  • iPXE を使って openSUSE を自動インストール
    Proxmox VE 上で AutoYaST を使う
  • openSUSE で iSCSI
    QNAP に iSCSI で繋げてみる
  • openSUSE で Qsync を動かす
    QNAP を使ったファイル同期機能
  • WordPressがメモリー不足で落ちた!
    いまさらだけどApacheのMPMを見直した話
  • CombustionでMicroOSをプロビジョン
  • eBPFとLinux カーネルコードリーディング
  • 小説: エーデル・シュティメ 〜とあるカメレオンの雪解けな平日〜

コロナ禍で過去号を手にしていない方も多いと思いますので、2022年夏号、2021年冬号とのセットも予定しています。コミックマーケットC101への参加には入場券の事前購入が必要ですのでお気をつけください。最後までいますので、午後券でも大丈夫です。

はじめに

先日、C100 と Geeko Magazine の告知を出した際、geeko.jp のウェブサーバーが落ちてしまいました。普段は全然問題ないのですが、512 MB の VPS のため、ほんの少しアクセスが増えるとメモリーを使い果たしてしまうようです。

openSUSE の Web サーバーは 2009 年頃から使い続けていることもあって Apache で、しかも MPM (Multi-processing modules) は prefork です。複数のアクセスに対してプロセスを作成して対応するので、メモリー使用量やプロセスの生成コストが課題です。設定変更前のメモリー使用量を見ると次のような状態で、1プロセスあたり 30 MB 前後使っています。とりあえずの対策としては、プロセスの最大数を抑えればよいのですが、メモリー使用量削減のため、これを機に MPM を event にすることにしました。

少し前までの Apache の MPM といえば worker で、スレッドを使って並列処理をします。私の知識もここで止まっていました。event は新しい MPM で、今どきのイベント駆動で実装されています。ワーカースレッド内で受信待ちやソケット書き込み待ちをせずに、パケット到着や書き込み可能になったイベントを受けてスレッドに処理を割り当てるようです。

MPM を prefork から event にするために必要なことは、次の通りです。

  • event MPM をインストールする
  • PHP を mod_php による実行から mod_proxy_fcgi + php_fpm (FastCGI) による実行に変える
  • php_fpm で Web アプリを実行できるように AppArmor のプロファイルを設定する

結構面倒くさいですね。

openSUSE のバージョンは Leap 15.4 です。

event MPM をインストールする

これは簡単で apache2-event をインストールするだけです。apache2-prefork もインストールされいる環境では、apache2-event が優先されます。

mod_proxy_fcgi + php_fpm への変更

これまでは mod_php でこの Word Press などを実行してきました。mod_php の場合、PHP のスクリプトは Apache のプロセスで実行されていました。マルチスレッドに対応していない mod_php は event や worker では使用できません。php_fpm で PHP を別プロセスで起動しておき、リクエスト時にこの PHP プロセスに処理を依頼する形に変更する必要があります。

セットアップ手順は以下の通りです。php7-fpm をインストールして、パッケージに含まれるデフォルトの設定を有効化します。

Apache 側の設定を変えます。openSUSE では Apache で使用するモジュールは /etc/sysconfig/apache2 で有効化します。php7 を削除し、proxy と proxy_fcgi を追加します。

次に、php ファイルのハンドリングを mod_php から php_fpm に切り替えます。/etc/apache2/conf.d/ に以下のファイルを作成します。openSUSE のデフォルト設定では php7_fpm は 9000 で待ち受けていますので、php へのアクセスを 127.0.0.1:9000 に転送するようにします。

ProxyErrorOverride on は php_fpm がエラーを返した場合に、php_fpm のエラーメッセージをそのままブラウザに返すのではなく、Apache 側で設定したエラー画面を表示するための設定です。

AppArmor の設定変更

openSUSE Leap 15.4 では php_fpm 用の AppArmor プロファイルが含まれており、php_fpm が行える操作に制限がかかっています。そのため、何も設定しないと、php-fpm が php ファイルにアクセスできません。/var/log/audit/ に次のようなログが出力され、403 が返ります。

php_fpm のプロファイルを調整するには、/etc/apparmor.d/php-fpm.d/ に次のような設定ファイルを作成し、php-fpm がアクセスできるディレクトリを設定します。

結果

設定後にメモリー使用量を見てみます。

php-fpm のプロセスが増えましたが、Apache のプロセスのメモリー使用量はぐっと小さくなりました。Apache と php-fpm の初期プロセス数、最大プロセス数はこれから調整したいと思います。

Geeko Magazine 2022 夏

By ftake @ 2022-08-07 21:45

今年の夏も Geeko Magazine を発行します。最初の頒布はコミックマーケット C100 1日目 8月13日(土)西2ホール す19b です。事前に入場券の購入が必要になりますので、ご注意ください。

Rancher Desktop はデスクトップ環境上に開発用の Kubernetes 環境や Docker 環境を構築できるアプリケーションです。Rancher は現在は SUSE の傘下にあり、Rancher Desktop も SUSE の Rancher チームを中心に開発されています。

先日、Docker Desktop が個人用途を除いて有償化されたため、代替として注目されています。

インストール

Rancher Desktop の公式ページにも案内がありますが、RPM パッケージは以下の OBS リポジトリで配布されています。
https://download.opensuse.org/repositories/isv:/Rancher:/stable/rpm/

インストールはいつもの通りです。

あとは、メニューから Rancher Desktop を選べば起動できます。

Kubernetes のインストール

起動すると、何をセットアップするか聞かれます。ここで、containerd を選ぶと nerdctl が使えるようになります。docker を選ぶと、docker コマンドや API が使えるようになるはずです。

しかし、何やらエラーが。

「Reset Kubernetes」でリセットしてみたところ、今度は何も出ませんでした。

クライアントコマンドは ~/.local/bin/ にインストールされるので、パスを通しておきます:

~/.kube/config は勝手に設定してくれるので、らくらくですね。

完了すると Kubernetes などが動いている VM (Lima) が走っていることが分かります。

使ってみる

簡単に何かを動かしてみましょう。

あとはブラウザで http://localhost:8080 にアクセス

kubectl によるトンネリングだけではなく、Rancher Desktop 側にもポートフォワーディング機能があるようですが、私の環境では出てきませんので、もう少し探してみます。

2021年を振り返って

By ftake @ 2021-12-26 21:50

この記事は openSUSE Advent Calendar の25日目です。

今年も openSUSE Advent Calendar にご参加頂きありがとうございました。みなさん忙しかったからか、今年は13日目で力尽きてしまいました。

最終日は openSUSE 関連の活動を振り返ってみようと思います。

1〜5月

うーん。何かを行った記録がありません。15.3 向けの開発をしていたかもしれません。

6月

openSUSE Leap 15.3 がリリースされました。今年はリリースパーティーも mini Summit もできなかったので、来年はしたいですね。

8月

openSUSE.Asia Summit をオンラインで開催しました。もともとは昨年にインドで開催する予定でしたが、インドチームによるオンライン開催になりました。

https://events.opensuse.org/conferences/oSAS21

8月末に開催された Open Developers Conference (ODC) では、Cross Distro Developers Camp の枠で Leap 15.3 とリリースモデルの話をしました。

https://speakerdeck.com/ftake/opensuse-leap-15-dot-3-toririsumoderufalsehua

9月〜11月

同じく活動の記録が…。

12月

今年も Advent Calendar を作成しました。序盤は勢い良くスタートしましたが…途中でばったり力尽きてしまった感じになってしまいました。

大晦日には Geeko Magazine Special Edition を久しぶり発行します。2年ぶりとは思えないページ数になっています。オンラインイベントが続くため、頒布機会がなかなか確保できなさそうですが、機会があればお手にとって見たください。

来年は?

今年は仕事が忙しく、Mozc の最新バージョンへのアップデートなど、いろいろやりかけになってしまいました。なんとか時間を取れるようにしたいなと思います。

Geeko Magazine Special Edition 2021冬

By ftake @ 2021-12-19 22:43

openSUSE Advent Calendar の 19日目です。今年はすっかり力尽きてしまいました。クリスマス前にはもう少し投稿できるようにしたいと思います。

2年ぶりの Geeko Magazine Special Edition を発行します。最初の頒布はコミックマーケット C99 で、スペースは 2日目 東テ14b です。今年のコミックマーケットは事前チケットや、ワクチン接種証明書または PCR 検査結果が必要ですので、参加される方はご注意下さい。

今回の記事は次の通りです。久しぶりにも関わらず、例年通り集まりました。

  • SLE とパッケージがバイナリレベルで同じに!openSUSE Leap 15.3 リリース
  • これは使える!?パッケージの説明一覧から見つけた面白そうなソフトウェアはこれだ!?
  • OmegaT + TexTra で、Weblate による packages の説明を翻訳
  • マニフェストデバッグから入る Kubernetes 入門
  • 小説: 女子高生アイドルがギーコと戯れる忙しい日々

コミックマーケット以降の頒布機会は未定です。当面 OSC はオンラインの予定ですので、どうするか検討します。