20H1 updateに伴うWSL1→WSL2への移行

随分古い話になってしまいましたが、メモに記録していたのをここに転記しておきます。

前提

当方の環境は次の通りです。

  • Windows 10 Pro (20H1 に update済)
  • WSL1セットアップ済み(WSL機能は有効済み)
  • Dockerエンジンは Docker Desktop for Windows を利用し、Dockerクライアントは WSL1 上の Ubuntu 18.04 LTS の docker-ce を利用

WSL1でも十分だったこともあり、WSL2にすると機構的に処理が遅くなるのではという懸念もあって、WSL1のままで運用していましたが、20H1に更新したことを機に、色々なサイトを参考にしながら WSL1 から WSL2 に移行しました。何をいまさらっていう感じだと思いますが、忘れっぽいので備忘録として書いておきます。

“20H1 updateに伴うWSL1→WSL2への移行” 続きを読む

CentOS 7 によるセッション記録(Tlog)ログのElasticsearchへの転送

CentOS 8の新機能 Cookpit の Session Recordingは、ユーザが端末に対し行った操作(入出力)をログに記録し、後で再生して見られる機能であり、その元となっているプログラムがTLogです。

cockpit

GitHub – Scribery/tlog: Terminal I/O logger
Package tlog – man pages | ManKier

ユーザが行った操作は、tlog-rec あるいは、tlog-rec-session によってJournalログ(syslog)に記録され、それを再生するコマンド、tlog-play が用意されています。Journal に記録してもログローテーションによりいずれは消えてしまいます。監査証跡としてこの操作記録ログ(Tlogログ)を永続的に残す方法として、ログの保存先をMongoDBなど、JSON形式で保存できるストアなどがありますが、tlog-playがその再生元データストアをElasticsearchにできることから、TlogログをRsyslog経由でElasticsearchに転送する方法があります。

今回は、それらをCentOS 7にて実装したいと思います。

“CentOS 7 によるセッション記録(Tlog)ログのElasticsearchへの転送” 続きを読む

2020年振り返り

夜明けの桜島です。今年(2020年)の11月のとある日の早朝の写真です。

2020年はいわゆるコロナ禍の年でした。

2009年に流行った新型インフルエンザの時は、PCR検査だったり、自粛だったり、これ程の状況ではなかったように記憶しています。

3月頃、息子が家に戻ってきて、しばらく3人で一緒に生活でき、息子の20歳の誕生日を一緒に過ごせたのも良い思い出でした。

子供たちにとっては、ある意味足止めを食らったような年ではありましたが、それぞれ自分を見つめ直す意味では良い一年であったのだと思います。集団行動が苦手な私としては、人から干渉されず、ある意味過ごしやすい状況下でもありました。

さあ、2021年、私としては、私に課せられたタスクを1つ1つこなしていき、家族が引き続き幸せに生活できるように行動していくのみです。

2021年も何卒よろしくお願いいたします。

Rails5でのWebpackerによるBootstrapの利用

はじめに

Rails6からWebpackerが標準で入っているようですが、ここではRails5での導入を試みてみます。

今までは、JQueryやBootstrapを導入するには、それぞれのGemをインストールする必要があり、SprocketsというGemによって複数のアセットファイル(JS、CSSや画像)をコンパイル(結合や圧縮)を行うアセットパイプラインという仕組みを実装していました。

今後は、GemではなくyarnにてJSやCSSのパッケージを管理し、Webpackというアセットファイルを1のJSファイルにまとめて管理するモジュールバンドラをWebpackerというGemで利用するのが主流のようです。

Webpackerは、rails new コマンド実行の際に、次のオプションをつけることで導入できます。

--webpack --skip-coffee --skip-turbolinks --skip-sprockets

要は、Gemfileにwebpackerを登録し、sprocketsなんかのGemの記述を削除するだけです。
また、予めシステムにyarnとnode.jsをインストールしておく必要があります。

yarnでbootstrapを入れる

その際に、jquery、 popper.js も依存ライブラリなので入れます。
その前に、現在の package.json の内容を確認しておきます。

package.json

{
  "name": "sample_app",
  "private": true,
  "dependencies": {
    "@rails/webpacker": "5.2.1"
  },
  "devDependencies": {
    "webpack-dev-server": "^3.11.0"
  }
}

yarnにてセットアップします。

$ bin/yarn add bootstrap jquery popper.js @popperjs/core

※Docker環境で動いている場合は、コンテナ内で実行します。
追記(2021/05/17): セットアップすべきライブラリとして「@popperjs/code」を追記しました。

“Rails5でのWebpackerによるBootstrapの利用” 続きを読む

Rails5 + MariaDB 10.3 + Nginx をDockerで環境構築

はじめに

まずは、Docker Composeのベースとなるディレクトリ(例として「rails5-docker-compose」)を作成します。このディレクトリに「docker-compose.yml」を置くことになります。

$ mkdir rails5-docker-compose
$ cd rails5-docker-compose

構築する3つのコンテナ、Rails、MariaDB、Nginx、それぞれで管理するためのディレクトリを作成します。

$ mkdir -p mariadb/sql
$ mkdir -p rails/src
$ mkdir nginx

ベースとなるディレクトリのPATHが環境によって異なるので、docker-compose.ymlで参照できる環境設定ファイル「.env」をカレントディレクトリに準備します。

.env

HOSTSRCPATH=c:/Users/foo/devel/rails5-docker-compose

ここでは、ベースとなるディレクトリまでの絶対パスを、「HOSTSRCPATH」という環境変数にセットしておきます。普段私は、Docker Desktop for Windows、つまりWindows上のDockerエンジン(Hyper-V)を利用し、DockerクライアントはWSL上のubuntuのdocker-cliを利用しているので、上のような例になっています。

前は、「c:/Users/foo/」の部分は「~/」でマウント(bind)できていましたが、Docker Desktopをupdateしていつの間にかできなくなりました。

“Rails5 + MariaDB 10.3 + Nginx をDockerで環境構築” 続きを読む