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 を開催しました。昨年は完全なオンラインでしたが、今年はオンラインのイベントに加え、オフラインサテライト会場を東京、台北、ジャカルタに用意しました。オフライン会場ではオンラインでの発表を一緒に聴講したり、各地域ごとの講演を行いました。オフラインでの懇親会も久しぶりでした。
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 ユーザ会の活動にご参加ください。
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への参加には入場券の事前購入が必要ですのでお気をつけください。最後までいますので、午後券でも大丈夫です。
By ftake @
2022-08-21 21:30
はじめに
先日、C100 と Geeko Magazine の告知を出した際、geeko.jp のウェブサーバーが落ちてしまいました。普段は全然問題ないのですが、512 MB の VPS のため、ほんの少しアクセスが増えるとメモリーを使い果たしてしまうようです。
openSUSE の Web サーバーは 2009 年頃から使い続けていることもあって Apache で、しかも MPM (Multi-processing modules) は prefork です。複数のアクセスに対してプロセスを作成して対応するので、メモリー使用量やプロセスの生成コストが課題です。設定変更前のメモリー使用量を見ると次のような状態で、1プロセスあたり 30 MB 前後使っています。とりあえずの対策としては、プロセスの最大数を抑えればよいのですが、メモリー使用量削減のため、これを機に MPM を event にすることにしました。
|
# smem -U wwwrun -k PID User Command Swap USS PSS RSS 26053 wwwrun /usr/sbin/httpd-prefork -DS 24.2M 576.0K 1.3M 9.5M 23952 wwwrun /usr/sbin/httpd-prefork -DS 14.5M 20.8M 21.7M 30.4M 26051 wwwrun /usr/sbin/httpd-prefork -DS 5.6M 23.5M 24.4M 32.9M 23953 wwwrun /usr/sbin/httpd-prefork -DS 6.3M 23.7M 24.4M 31.8M 2023 wwwrun /usr/sbin/httpd-prefork -DS 5.4M 24.0M 24.8M 32.7M 7054 wwwrun /usr/sbin/httpd-prefork -DS 7.5M 26.0M 26.8M 35.0M 23955 wwwrun /usr/sbin/httpd-prefork -DS 5.0M 32.6M 33.6M 42.2M 23956 wwwrun /usr/sbin/httpd-prefork -DS 5.5M 34.2M 34.9M 43.1M 23959 wwwrun /usr/sbin/httpd-prefork -DS 5.5M 34.4M 35.3M 43.8M 2022 wwwrun /usr/sbin/httpd-prefork -DS 6.0M 34.7M 35.6M 43.6M |
少し前までの 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 をインストールして、パッケージに含まれるデフォルトの設定を有効化します。
|
zypper in php7-fpm cd /etc/php7/fpm mv php-fpm.conf.default php-fpm.conf cd php-fpm.d mv www.conf.default www.conf systemctl enable php-fpm systemctl start php-fpm |
Apache 側の設定を変えます。openSUSE では Apache で使用するモジュールは /etc/sysconfig/apache2 で有効化します。php7 を削除し、proxy と proxy_fcgi を追加します。
|
APACHE_MODULES="(省略)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 側で設定したエラー画面を表示するための設定です。
|
<filesmatch "\.ph(p[3457]?|tml)$"=""> SetHandler "proxy:fcgi://127.0.0.1:9000" </filesmatch> <filesmatch "\.php[3457]?s$"=""> SetHandler application/x-httpd-php-source </filesmatch> DirectoryIndex index.php4 DirectoryIndex index.php5 DirectoryIndex index.php7 DirectoryIndex index.php ProxyErrorOverride on |
AppArmor の設定変更
openSUSE Leap 15.4 では php_fpm 用の AppArmor プロファイルが含まれており、php_fpm が行える操作に制限がかかっています。そのため、何も設定しないと、php-fpm が php ファイルにアクセスできません。/var/log/audit/ に次のようなログが出力され、403 が返ります。
|
type=AVC msg=audit(1661003085.840:89050): apparmor="DENIED" operation="open" profile="php-fpm" name="/srv/www/htdocs/index.php" pid=20329 comm="php-fpm" requested_mask="r" denied_mask="r" fsuid=498 ouid=498 |
php_fpm のプロファイルを調整するには、/etc/apparmor.d/php-fpm.d/ に次のような設定ファイルを作成し、php-fpm がアクセスできるディレクトリを設定します。
|
# tmp へのアクセス include <abstractions user-tmp=""> # htdocs への読み書き # 読み取りだけであれば <abstractions/web-data> もあり owner /srv/www/htdocs/** rw, |
結果
設定後にメモリー使用量を見てみます。
|
PID User Command Swap USS PSS RSS 29193 wwwrun /usr/sbin/httpd-event -DSYS 208.0K 804.0K 1.3M 4.9M 29195 wwwrun /usr/sbin/httpd-event -DSYS 208.0K 1.6M 2.8M 11.0M 29194 wwwrun /usr/sbin/httpd-event -DSYS 208.0K 1.6M 2.8M 11.1M 29196 wwwrun /usr/sbin/httpd-event -DSYS 208.0K 2.2M 3.4M 11.6M 29278 wwwrun /usr/sbin/httpd-event -DSYS 208.0K 3.2M 4.4M 12.7M 29094 wwwrun php-fpm: pool www 208.0K 25.3M 30.3M 47.1M 29306 wwwrun php-fpm: pool www 208.0K 33.8M 38.4M 54.5M 29337 wwwrun php-fpm: pool www 208.0K 35.6M 39.5M 54.0M |
php-fpm のプロセスが増えましたが、Apache のプロセスのメモリー使用量はぐっと小さくなりました。Apache と php-fpm の初期プロセス数、最大プロセス数はこれから調整したいと思います。
By ftake @
2022-08-07 21:45
今年の夏も Geeko Magazine を発行します。最初の頒布はコミックマーケット C100 1日目 8月13日(土)西2ホール す19b です。事前に入場券の購入が必要になりますので、ご注意ください。
By ftake @
2022-02-12 21:33
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/
インストールはいつもの通りです。
|
sudo zypper ar -c https://download.opensuse.org/repositories/isv:/Rancher:/stable/rpm/isv:Rancher:stable.repo sudo zypper ref sudo zypper in rancher-desktop |
あとは、メニューから Rancher Desktop を選べば起動できます。
Kubernetes のインストール
起動すると、何をセットアップするか聞かれます。ここで、containerd を選ぶと nerdctl が使えるようになります。docker を選ぶと、docker コマンドや API が使えるようになるはずです。
しかし、何やらエラーが。
「Reset Kubernetes」でリセットしてみたところ、今度は何も出ませんでした。
クライアントコマンドは ~/.local/bin/ にインストールされるので、パスを通しておきます:
|
% ls ~/.local/bin docker@ helm@ kubectl@ nerdctl@ |
~/.kube/config は勝手に設定してくれるので、らくらくですね。
完了すると Kubernetes などが動いている VM (Lima) が走っていることが分かります。
|
% pgrep -a qemu 984 /usr/bin/qemu-system-x86_64 -cpu host -machine q35,accel=kvm -smp 2,sockets=1,cores=2,threads=1 -m 6144 -boot order=d,splash-time=0,menu=on -drive file=/home/geeko/.local/share/rancher-desktop/lima/0/basedisk,media=cdrom,readonly=on -drive file=/home/geeko/.local/share/rancher-desktop/lima/0/diffdisk,if=virtio -cdrom /home/geeko/.local/share/rancher-desktop/lima/0/cidata.iso -netdev user,id=net0,net=192.168.5.0/24,dhcpstart=192.168.5.15,hostfwd=tcp:127.0.0.1:45009-:22 -device virtio-net-pci,netdev=net0,mac=52:55:55:f4:b7:19 -device virtio-rng-pci -display none -device virtio-vga -device virtio-keyboard-pci -device virtio-mouse-pci -parallel none -chardev socket,id=char-serial,path=/home/geeko/.local/share/rancher-desktop/lima/0/serial.sock,server=on,wait=off,logfile=/home/geeko/.local/share/rancher-desktop/lima/0/serial.log -serial chardev:char-serial -chardev socket,id=char-qmp,path=/home/geeko/.local/share/rancher-desktop/lima/0/qmp.sock,server=on,wait=off -qmp chardev:char-qmp -name lima-0 -pidfile /home/geeko/.local/share/rancher-desktop/lima/0/qemu.pid |
使ってみる
簡単に何かを動かしてみましょう。
|
kubectl run redmine-test --image=redmine --port=3000 kubectl port-forward redmine-test 8080:3000 |
あとはブラウザで http://localhost:8080 にアクセス
kubectl によるトンネリングだけではなく、Rancher Desktop 側にもポートフォワーディング機能があるようですが、私の環境では出てきませんので、もう少し探してみます。
Category
openSUSE,
Rancher,
コンテナ |
受け付けていません
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 の最新バージョンへのアップデートなど、いろいろやりかけになってしまいました。なんとか時間を取れるようにしたいなと思います。
Category
openSUSE |
受け付けていません
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 はオンラインの予定ですので、どうするか検討します。
Category
Geeko Magazine,
openSUSE |
受け付けていません