Other articles


  1. Mastodon のインスタンスをたてた

    昔も作った気がするけど、Mastodonインスタンスを立てました。

    https://social.ikata.co/

    single user mode なのでいわゆるおひとりさま仕様となっております。

    セットアップ

    昔はDockerで立ち上げるのが流行ってた気がしますが、今回は Production guide に従ってDockerコンテナではなくKVM仮想マシン上にRailsインスタンスを立てることにしました。 Ubuntu bionic 推奨のようですが、 xenial でも大丈夫でした。

    DockerじゃなくてもRailsアプリの開発・デプロイ経験があれば、結構すんなりセットアップできると思います。

    静的コンテンツが 404 Not Found になる

    今回はフロントエンド用のWebサーバはMastodonサーバとは別のサーバを使いました。しかしMasotodonのデフォルト構成では静的コンテンツは Puma ではなくローカルのNginxやApache等のWebサーバが配信することを期待しているため、うまくCSSやJavaScriptが読み込めないという問題が発生します。

    ~/live/.env.production に以下を追加しておけば、静的コンテンツの配信も Puma にやらせることができます。

    RAILS_SERVE_STATIC_FILES=true
    

    これで静的コンテンツも正しく出るようになりました。

    パフォーマンス的にはNginx/Apacheにやらせたほうがいいんでしょうが、おひとりさまインスタンスならこんなもんでいいんじゃないでしょうかね。

    read more
  2. Gentoo Linux で Btrfs+Snapper

    気がついたら最後のポストから1年経ってました。

    Gentoo で Snapper 入れて壊れたらロールバックできるように設定したメモです。

    Snapper は openSUSE 由来のスナップショット管理ツールです。 スナップショットの取得を自動化したり、スナップショットに名前をつけて管理したり、溜まったスナップショットを cleanup したりする機能があります。

    スナップショットを取るためにはファイルシステムが Btrfs であるか、LVMスナップショットが取れるようにストレージが LVM で構成されている必要があります。 なお openSUSE では Btrfs の方を推奨しているようです。 今回は Btrfs を使います。

    Btrfs サブボリューム設計

    サブボリュームとは、一つの Btrfs ファイルシステムを分割して使う仕組みです。 分割したサブボリュームは他のファイルシステムと同様に mount コマンドでマウントして使うことができます。

    Snapper が利用する Btrfs のスナップショット機能はこのサブボリューム機能を利用しています。 サブボリュームでファイルシステムを分割することで、スナップショットに含めたいディレクトリと含めたくないディレクトリに分けることができます。

    以下は openSUSE 15.0 デフォルトのファイルシステムを参考にした Gentoo 向けのサブボリュームレイアウトです …

    read more
  3. btrfs の透過圧縮を有効にしてみる

    btrfs は透過圧縮が使える。

    圧縮を有効にすると Disk I/O の負荷が減るので 素の btrfs よりも速くなる ようです。 (リンク先はカーネルが古すぎるので参考にならんかもですが・・・)

    というわけで すでに btrfs で構築済みの / の圧縮を有効にしてみます。

    マウントオプションを変える

    /etc/fstab を編集して、 / のマウントオプションに compress=lzo を追加します。

    UUID=b2ea3bb7-9a9d-4487-93e6-279934821f06 / btrfs defaults,compress=lzo 0 0
    

    追加したら再起動。

    既存のファイルを圧縮する

    マウントオプション変えただけでは既存のファイルは未圧縮状態なので、 btrfs filesystem defragment -clzo で圧縮をかけます。

    $ sudo btrfs filesystem defragment -clzo -v
    

    スナップショットがある場合

    この時ファイルシステムのスナップショットがあると、ファイルシステムの空き領域がもりもりと減っていきます …

    read more
  4. KVM上のWindows 10でやっていくメモ

    ギョーミングPCを mac mini 上に openSUSE Leap 42.3 を入れて仕事してるんですが、なんやかんやで Excel や Word が必要になるのでデスクトップ仮想化用として VMware Workstation を使っていました。 しかし環境を mac mini に移してからなぜか VMware 上の Windows のパフォーマンスが激悪い。Windows 7もWindows 10も重い。

    SSDを載せたラップトップ(こちらも openSUSE)では特に問題ないので I/O wait が悪いのか?と思って調べてみましたが、どうやらI/Oが発生していなくてもCPUが常時50%程度 VMware に喰われているようで、mac mini の粗末なファンから爆音がなりっぱなしになる始末。 これではしんどいので、VMware をやめて libvirt+KVM …

    read more
  5. openSUSE 42.3 の機能リストで気になったこと

    openSUSE Leap 42.3 の 機能リスト を見て気になった点を2つ。

    zypper lifecycle

    zypper lifecycle でインストールされているパッケージがメンテナンスされているかどうかを調べることができるようです。

    $ sudo zypper in lifecycle-data-openSUSE
    $ zypper lifecycle
    

    実行すると以下のような出力になりました。

    Product end of support
    Codestream: openSUSE Leap 42                            2019-01-31
        openSUSE Leap 42.3                                  2019-01-31
    
    No packages with end of support different from product.
    

    lynis

    セキュリティ監査ツール。lynis audit system でローカルシステムの監査ができるほか、リモートシステムの監査も実行できるようです。

    $ sudo …
    read more
  6. openSUSE Leap 42.3 に mikutter を入れる

    mikkuter のインストール方法 には openSUSE がないので以下メモ。なお openSUSE Leap 43.2 です。

    ソースをダウンロードする

    探せば誰かOBSでパッケージ作ってるのかもしれないけど今回はソースから入れました。

    $ wget https://mikutter.hachune.net/bin/mikutter.3.6.4.tar.gz
    $ tar xf mikutter.3.6.4.tar.gz
    $ cd mikutter
    

    必要なライブラリを準備する

    mikutter は Ruby でできてますが、Ruby 以外に必要なものがいろいろあるので入れます。

    最近の mikutter は Ruby 2.3 以上でないと動かないようなので Ruby …

    read more
  7. Ruby をコンパイルして direnv で使う

    あえて rbenv (+ruby-build) を使わないという道を往きます。

    Ruby のインストール

    わけあって 2.3.3 をインストール。 ~/.rubies/2.3.3 に置きます。

    $ wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.gz
    $ tar xf ruby-2.3.3.tar.gz
    $ cd ruby-2.3.3/
    $ sudo zypper in openssl-devel readline-devel tk-devel
    $ mkdir ~/.rubies/2 …
    read more
  8. openSUSE Leap 43.2 インストール記

    業務で使うPC(ゲーミングPCとかけてギョーミングPCと呼んでいる)に今まで KDE neon を使っていたのだけど、もっとエンタープライズ寄りな環 境に仕立て上げたくなったので、新しめの KDE が使えてエンプラ系も意識している openSUSE Leap に乗り換えてみることにしました。

    そのインストールの記録。

    インストール中にやること

    • 暗号化LVMを有効にする。
    • たくさんアプリ入れると思うので、ルートパーティションを40GB->80GBに変更。 btrfsのスナップショット機能用に、見積の2倍のサイズを設定したほうがよいと思わ れる。
    • swapは4GB確保。
    • 残りすべてを /home に確保。ファイルシステムはXFS。
    • 自動ログインは無効。
    • デスクトップ環境は KDE Plasma 5 にする。
    • パッケージは後々の作業用に、devel_basis(基本的な開発)、devel_kernel(Linux カーネル開発)、devel_C_C++(C/C++ 開発)、devel_python3(Python 3 開発)、devel_java(Java …
    read more
  9. imapfilter でメール振り分け

    様々なサーバからメールが来てメールボックスが破滅してきたので、 imapfilter で整理するようにしました。 imapfilter を使うと、IMAPサーバをLuaスクリプトでメールの振り分け等できるようになります。

    インストール

    Ubuntu (KDE neon) で使う場合は Lua をインストールする必要があります。 私は lua5.3-dev を入れました。ただこれだとビルドエラーになるので、以下のようにインクルードパスとライブラリのパスを直す必要がありました。

    INCDIRS = -I/usr/include/lua5.3
    LIBLUA = -llua5.3
    

    make && sudo make install/usr/local 以下にインストールされます。

    imapfilter の設定

    設定は ~/.imapfilter/config.lua に書きます。ソースの samples と man imapfilter_config を見れば雰囲気でわかると思います。 私は以下のような感じにしました …

    read more

Page 1 / 2 »

social