WSLとWindowsの設定ファイルを「chezmoi」を使って安全に管理しよう

- 1 はじめに
- 2 dotfilesとは
- 3 chezmoiとは
- 4 chezmoiコマンドをインストールしよう
- 5 dotfilesリポジトリを作成しよう
- 6 ローカルリポジトリに移動してみよう
- 7 設定ファイルを追加しよう
- 8 設定ファイルの中身を表示してみよう
- 9 設定ファイルを変更してみよう
- 10 設定ファイルの変更点を確認しよう
- 11 設定ファイルの変更点をホームディレクトリに適用しよう
- 12 不要なファイルをchezmoiの管理から外すには
- 13 Gitで管理しよう
- 14 Windowsでchezmoiをセットアップしよう
- 15 リモートリポジトリの変更を取り込もう
- 16 chezmoiをカスタマイズしてみよう
- 16.1 chezmoi cdのシェルを変更しよう
- 16.2 Gitの操作を自動化しよう
- 16.3 設定ファイルを暗号化しよう
- 17 システムワイドな設定ファイルを管理するには
- 18 おわりに
はじめに
第7回ではシェルのカスタマイズ方法について解説しました。いかがでしょう、自分好みのシェルに育ってきたでしょうか。
Unix系のシステムでは多くのソフトウェアが設定ファイルをテキストで管理します*1。せっかく自分好みに育ってきた設定ファイルを操作ミスなどの事故で失なってしまうのは痛いですよね。しっかりバックアップを取得して、他の環境でも使えるようにしておきたいところです。
*1: ソフトウェアによっては設定値を内部のDBやバイナリデータで管理している場合もあります。そこで、エンジニアの間では「dotfiles」というリポジトリを使うのが一般的です。今回はdotfilesで設定ファイルを安全に管理できるツール「chezmoi」について解説します。
dotfilesとは
Unix系のシステムでは、ソフトウェアの設定をプレーンテキスト形式のファイルに保存します。そのようなファイルを「設定ファイル」と呼びますが、この設定ファイルや設定ファイルが保存されるディレクトリ名がドット(.)から始まるため、これらを管理するリポジトリのことをdotfilesと呼びます*2。
*2: Unix系のシステムでは、ドット(.)から始まるファイルやディレクトリはWindowsでいうところの「隠しファイル」にあたります。dotfilesでは.bashrcや.tmux.confなど、自分がよく使うソフトウェアの設定ファイルをバージョン管理しておきます。設定ファイルは一度設定が固まってしまうと、その後なかなか変更することがありません。後から見たときに「なぜこのような設定をしたのだろう?」と分からなくなっていることもしばしばあります。そこでバージョン管理をしてエビデンスを残すことで、何の設定だったのか追えると便利です。また、このリポジトリをリモートリポジトリと定期的に同期しておくことでバックアップとしても役立ちます。
では、どのように設定ファイルを管理するのが理想的でしょうか。実は明確な答えはありません。GitHubなどで公開されているdotfilesを見てみると、各々が好きなように管理していることが分かります。それぞれのdotfilesで大きく変らない点は、設定ファイルがリポジトリで管理され、それを何らかの方法でホームディレクトリにコピー、あるいはSymlinkを作成して設定を反映しているところです。
この辺りを上手く実装するのが腕の見せどころでもあるのですが、これからdotfilesを始めようとしている方や設定ファイルの管理さえできていれば良いという方にとっては大きな一手間です。そのような手間を避けるために、dotfilesを管理するためのツールがいくつか用意されています。
なお、具体的にどのような管理方法があるのかについては、GitHubのトピック「#dotfiles」や「#dotfiles-manager」で公開されているリポジトリが参考になります。
chezmoiとは
「chezmoi」はdotfilesを安全に管理するためのソフトウェアです。読み方は「シェモア」、フランス語で「私の家」という意味があるそうです。
Go言語で開発されており、シングルバイナリで配布されています。Linux、macOS、Windowsなどに対応しているため、本連載にぴったりのツールではないでしょうか。
chezmoiの何が安全なのかというと、暗号化ツールと連携し、指定のファイルを暗号化できるところにあります。例えば.bashrcに機密情報が含まれていたとしても、暗号化することで安全に共有できます。対応している暗号化ツールは「GnuPG」と「age」です。
chezmoiの仕組みは簡単です。大まかに説明すると「chezmoi init」コマンドを実行するとローカルにGitリポジトリを作成します。「chezmoi add」コマンドで特定のファイルをdotfilesの管理下に置き、「chezmoi edit」コマンドで設定ファイルを編集します。このままでは変更が反映されないため「chezmoi apply」コマンドでホームディレクトリに設定を反映します。「chezmoi git」コマンドでdotfilesリポジトリに対しGitの操作を行えるので、変更をコミットしたりリモートにプッシュしたりできます。

chezmoiの公式ドキュメントより【出典】Start using chezmoi on your current machine
chezmoiコマンドをインストールしよう
インストール方法は公式ドキュメントに詳しく書かれています。操作に迷ったら、こちらを参照してください。
chezmoiはGitにも依存しています。もしGitコマンドが未インストールの場合はGitのインストールも同時に進めます。
今回はWSLとWindowsの間で設定ファイルを共有して管理したいため、WSLとWindowsの両方にchezmoiをインストールしてみます。Linux版とWindows版でchezmoiの使い方自体には違いがないため、まずはWSLでセットアップや使い方について解説していきます。WSLを起動しておいてください。
・chezmoiのインストール
Ubuntuから利用できるパッケージはSnap Storeで公開されています。snapコマンドを使用してchezmoiをインストールします。snapコマンドについては第4回で解説していますので、不明な点があればこちらを参考にしてください。
$ sudo snap install chezmoi --classic
・Gitコマンドのインストール
(※既にGitコマンドがインストール済みの方は読み飛ばしてください)
GitコマンドはAPTでインストールします。aptコマンドについては第3回で解説していますので、不明な点があればこちらを参考にしてください。
$ sudo apt install -U -y git
セットアップが完了したら「chezmoi doctor」コマンドを実行し、「RESULT」列にエラーが出ていないことを確認しましょう。
dotfilesリポジトリを作成しよう
dotfilesを管理するため、ローカルにリポジトリを作成します。下記のコマンドを実行してください。「$HOME/.local/share/chezmoi」にリポジトリが作成されます。
$ chezmoi init
ローカルリポジトリに移動してみよう
作成されたローカルリポジトリに移動するには「chezmoi cd」コマンドを使用します。
$ chezmoi cd
cdコマンドはリポジトリルートで新しいシェルを起動します。シェルを終了すると、簡単に「chezmoi cd」を実行した時点のディレクトリに戻れます。シェルを終了するには「exit」コマンドを実行します。
シェルを新たに起動するのではなく、単に移動したい場合は「chezmoi source-path」コマンドでリポジトリのパスを確認し、cdすると良いでしょう。
$ chezmoi source-path ~/.local/share/chezmoi $ cd ~/.local/share/chezmoi
下記のようにコマンド置換を使用する方法もあります*3。
*3: Bash同様、PowerShellでも「$()」でコマンド置換ができます。$ cd $(chezmoi source-path)
設定ファイルを追加しよう
リポジトリに設定ファイルは追加するには「add」コマンドを使用します。addコマンドは引数に与えられたファイルをローカルリポジトリにコピーします。ここではホームディレクトリにある「.bashrc」を追加してみましょう。
$ chezmoi add ~/.bashrc
addコマンドを実行すると「$HOME/.local/share/chezmoi/dot_bachrc」というファイルが作成されます。このファイルはaddで追加した.bashrcと全く同じ内容ですが、dotfilesリポジトリにコピーされた別のファイルとして管理されているため、どちらかのファイルを変更したとしても変更内容が自動で同期されることはありません。また、デフォルトの状態ではaddしただけではGit管理になりません。Gitで管理する方法については後述の「設定ファイルをGitで管理にしよう」で解説します。
設定ファイルの中身を表示してみよう
設定ファイルの中身を表示するには「cat」コマンドを使用します。chezmoi catコマンドを使用すると直接リポジトリに移動することなく、リポジトリ内のファイルをcatできます。
$ chezmoi cat ~/.bashrc
暗号化したファイルの中身を表示する場合にもchezmoi catコマンドを使用するので覚えておきましょう。
設定ファイルを変更してみよう
設定ファイルに変更を加えるには「edit」コマンドを使用します。editコマンドではdotfilesのリポジトリ直下「$HOME/.local/share/chezmoi/dot_bashrc」が修正されます。直接ホームディレクトリの.bashrcが変更されることはありません。変更に問題がないことを確認して「apply」コマンドなどで反映します。applyコマンドについては後述します。
editコマンドは、環境変数のVISUALかEDITORの内容を見て、適切なエディタを起動します。どちらの環境変数も未定義の場合はデフォルトのエディタが起動します。
$ chezmoi edit ~/.bashrc
変更を即座に反映する場合は、editコマンドの引数に「--apply」オプションも指定しましょう。
$ chezmoi edit ~/.bashrc --apply
設定ファイルの変更点を確認しよう
変更点を確認するには「diff」コマンドを使用します。今回は第7回で紹介したHISTSIZEの値を「1000」から「2000」に変更してみました。
$ chezmoi diff diff --git a/.bashrc b/.bashrc index e8117c62d4a39ba4f0bdb36c546dfd1a69ad7826..b19223b0f4dfa4341c350c5c1aa25028faa94d0d 100644 --- a/.bashrc +++ b/.bashrc @@ -1 +1 @@ -HISTSIZE=1000 +HISTSIZE=2000
diffコマンドの引数が未指定の場合は、リポジトリで管理されている全ファイルの差分が表示されます。特定ファイルの差分のみ表示したい場合はdiffコマンドの引数に差分を表示したいファイルを指定しましょう。
$ chezmoi diff ~/.bashrc
設定ファイルの変更点をホームディレクトリに適用しよう
addやeditコマンドで「--apply」オプションを指定していなかった場合、設定ファイルの変更を反映するには手動で「apply」コマンドを実行します。
$ chezmoi apply
applyコマンドの引数にファイルを指定すると、指定されたファイルのみ設定を反映できます。
$ chezmoi apply ~/.bashrc
不要なファイルをchezmoiの管理から外すには
様々な設定ファイルを管理していると「管理を止めたい」という設定ファイルも出てきます。そのようなときはforgetコマンドを使用します。
$ chezmoi forget ~/.bashrc
forgetコマンドを実行すると「Remove /Users/ttanaka/.local/share/chezmoi/dot_bashrc? yes/no/all/quit」のようにプロンプトが表示されます。「y」もしくは「a」をタイプすることでリポジトリからのみ設定ファイルが削除されます。
リポジトリだけではなく、ホームディレクトリからも削除したい場合はdestroyコマンドを使用しましょう。
$ chezmoi destroy ~/.bashrc
destroyコマンドを実行すると「Destroy /Users/ttanaka/.bashrc and /Users/ttanaka/.local/share/chezmoi/dot_bashrc? yes/no/all/quit」のようにプロンプトが表示されます。「y」もしくは「a」をタイプすることでリポジトリとホームディレクトリから設定ファイルが削除されます。
Gitで管理しよう
リポジトリのファイルはGitでバージョンを管理していきます。デフォルト状態のchezmoiでは、addやeditコマンドを実行してもファイルが自動的にGitの管理下に置かれることはありません。後述の「chezmoiをカスタマイズしてみよう」でaddやeditコマンドの実行時に自動でコミットする方法を解説しますが、ここではデフォルトの状態でどのように操作していくかを解説します。
chezmoiにはGitを操作するために「chezmoi git」コマンドが用意されています。しかし、chezmoiを通してGitを操作するには少々クセ*4*5があるため、今回は素のGitを操作します。
*4: 「chezmoi git」コマンドにgitコマンドのオプションをchezmoiに解析させないため「chezmoi git --」でchezmoiがオプションとして解析する位置を知らせる必要があります。 *5: 「chezmoi git commit ~/.bashrc」の様にしてしまうと正しく動作しません。リポジトリ内のファイルを指定して「chezmoi git commit dot_bashrc」とする必要があります。・リポジトリルートに移動
$ chezmoi cd
・設定ファイルをGitに追加
chezmoi addを実行し、リポジトリにファイルが作成されたらこちらの操作も実行するようにしましょう。
$ git add.
・変更をコミット
$ git commit -m 'Add bashrc' dot_bashrc
「-m」オプションはコミットメッセージを指定するためのオプションです。「-m」に続く文字列がコミットメッセージになります。
・リモートリポジトリと同期
今回はGitHubにリモートリポジトリを用意します。リポジトリの作成方法についてはこちらを参考にしてください。
リモートリポジトリをローカルリポジトリに追加します。
$ git remote add origin https://github.com/OWNER/REPOSITORY.git
リモートリポジトリの変更を取り込みます。
$ git pull origin main
リモートリポジトリにpushします。
$ git push origin main
以上で、リモートリポジトリとの同期は完了です。
Windowsでchezmoiをセットアップしよう
WindowsとWSL間で設定ファイルを共有するため、Windows側にもchezmoiをインストールします。PowerShellを起動してください。
・chezmoiのインストール
Windowsへのインストールには「Chocolatey」「Scoop」「Winget」いずれかのパッケージマネージャーを使用できます。筆者の環境ではWingetがデフォルトで使用できたので、Wingetを使用してインストールを進めていきます。
下記のコマンドをWindows Terminalの「PowerShell」で実行します。
$ winget install twpayne.chezmoi
Windowsにパッケージマネージャーがインストールされていない場合、GitHub Releasesからプレビルドされたバイナリデータをダウンロードし、パスの通ったフォルダに配置するだけでも使用できます。
Assetsに列挙されている「chezmoi\_VERSION\_windows\_ARCHITECTURE.zip」ファイルをダウンロードします。「VERSION」は最新のものをダウンロードしましょう。「ARCHITECTURE」はお使いのコンピューターのCPUアーキテクチャに合わせます。簡単にまとめると64ビットのWindowsをお使いの方は「amd64」、32ビットの方は「i386」、ARMの64ビットは「arm64」、32ビットは「arm」をダウンロードしてください。
ダウンロードしたZipファイルを解凍しておきます。種類がアプリケーションになっている「chezmoi」というファイルをパスの通ったフォルダに配置することで、PowerShellからchezmoiコマンドが実行できるようになります。
今回はホームに「bin」フォルダを作成し、ここにchezmoiを設置します。binフォルダを作成してパスを通します。
$ mkdir $HOME\bin $ $ENV:Path="$HOME\bin;"+$ENV:Path
このままではターミナルを立ち上げ直す度にパスの設定をやり直す必要があります。下記のコマンドでパスを永続化しておきましょう。
$ [Environment]::SetEnvironmentVariable("Path", $ENV:Path, "User")
エクスプローラーなどからbinフォルダにダウンロードしたchezmoiをコピーします。エクスプローラーで簡単にbinフォルダを開くにはPowerShellで下記のコマンドを実行します。
$ Invoke-Item $HOME\bin
エクスプローラーでbinフォルダを開けたら、先ほど解凍したchezmoiをbinフォルダにドラッグ&ドロップで移動してください。
・Gitコマンドのインストール
(※既にGitコマンドがインストール済みの方は読み飛ばしてください)
インストール方法についてはこちらを参考に進めます。
Wingetが使用できる場合は、下記のコマンドをPowerShellで実行します。
$ winget install --id Git.Git -e --source winget
Wingetが使用できない場合は「Standalone Installer」か「Portable ("thumbdrive edition")」からインストーラーをダウンロードして、インストールを行ってください。
セットアップが完了したら「chezmoi doctor」コマンドを実行し、「RESULT」列にエラーが出ていないことを確認しましょう。
・ローカルリポジトリの作成
前述の「dotfilesリポジトリを作成しよう」ではinitコマンドを実行してローカルリポジトリを作成しましたが、initコマンドの引数にリポジトリのURLを指定することで、initコマンド実行時にリモートリポジトリをクローンできます。
$ chezmoi init https://example.com/REPOSITORY
「https://example.com/REPOSITORY」が「$HOME/.local/share/chezmoi」にクローンされます。GitHubにリポジトリがあり、リポジトリ名が「dotfiles」である場合にはユーザー名を指定するだけでもクローンできます。
$ chezmoi init OWNER
この場合、リモートリポジトリのURLは「https://github.com/OWENER/dotfiles.git」を指定しているのと同じです。リポジトリ名がdotfiles以外の場合は「OWNER/REPOSITORY」のように指定します。
SSHフォーマットのURLで指定したい場合は、initコマンドに「--ssh」オプションを指定します。
$ chezmoi init OWNER/REPOSITORY --ssh
この場合、リモートリポジトリのURLは「git@github.com:OWNER/REPOSITORY.git」になります。
リモートリポジトリの変更を取り込もう
リモートリポジトリの変更をローカルにも反映する場合は「update」コマンドを使用します。
$ chezmoi update
updateコマンドはローカルに変更を取り込むだけなので、このままでは変更がホームディレクトリに反映されません。updateコマンドに「--apply」オプションを指定するか、applyコマンドを実行しましょう。
$ chezmoi update --apply or $ chezmoi update $ chezmoi apply
chezmoiをカスタマイズしてみよう
ここまではデフォルトの状態でchezmoiを操作してきました。多くの場合はデフォルトの状態で問題ないのですが、より使いやすくするためchezmoi自体の設定ファイルを使って動作をカスタマイズしていきます。
まずは、chezmoiの設定ファイルを置くディレクトリを作成します。
$ mkdir -p $HOME/.config/chezmoi
このディレクトリに「chezmoi.FORMAT」のファイルを作成することで、chezmoi実行時に設定ファイルが読み込まれます。FORMATと記載した部分には、そのフォーマットに合った拡張子が設定されます。設定ファイルのフォーマットは「JSON」「JSONC」「TOML」「YAML」です。今回はTOMLフォーマットで解説を進めていきます。
chezmoiに設定できる値については、こちらに詳しく記載されているので参考にしてください。
chezmoi cdのシェルを変更しよう
この値を変更して効果があるのは、どちらかと言うとWindowsです。Linuxの場合は現在使用しているシェルが起動するためそれほど不都合ありません。しかし、Windowsの場合はchezmoi cdコマンドを実行すると「cmd.exe」で新しいシェルが起動します。せっかくPowerShellを使える環境なのでcmd.exeが起動してくるのは混乱しますよね。そこで、cdのときに実行されるシェルを変更します。
[cd] command: "C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"
上記のテキストを「$HOME/.config/chezmoi/chezmoi.toml」にペーストします。
値が設定できたら「chezmoi doctor」を実行してみてください。「cd-command」の値が「C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe」になっていれば正しく設定できています。
Gitの操作を自動化しよう
「設定ファイルをGitで管理にしよう」では、Gitを操作して設定ファイルを管理しました。しかし、chezmoiには自動でGit管理する設定があります。下記のコードをchezmoi.tomlに追記してください。
[git] autoCommit = true autoPush = true
この設定を追加した状態でchezmoi addやeditを行うと、自動でgit add、commit、pushが行われます。pushを自動で行わない場合は「autoPush」の行を削除してください。
設定ファイルを暗号化しよう
chezmoiは設定ファイルをGnuPG、もしくはageで暗号化できます。今回は暗号化ツールとして一般的に使用されるGnuPGを使っていきます(Ubuntu 24.04にはデフォルトでGnuPGインストールされているためインストール作業は不要です)。
WindowsにGnuPGをインストールします。Wingetが使用できる場合は下記コマンドをPowerShellで実行してください。
【補足】: ここからの作業はWSLとPowerShellの両方を使います。シェルを表す「$」の前に「(WSL)」と書かれたコマンドはWSLで、「(PS)」と書かれたコマンドはPowerShellで実行してください。何も書かれていない場合は両方で同じコマンドを実行します。
(PS)$ winget install --id GnuPG.Gpg4win -e --source winget
インストール直後はgpgコマンドが認識されていないかもしれません。gpgコマンドを実行してみてエラーが出るようならターミナルの再起動を試してください。
Wingetが使用できない場合はこちらからインストーラーをダウンロードしてインストールを行なってください。
こちらを参考に鍵を発行します。
・鍵の生成
コマンド実行中に「名前」「メールアドレス」「パスワード」を聞かれるので設定します。
$ gpg --gen-key
・WindowsとUbuntuで公開鍵を交換
公開鍵のIDを取得します。
$ gpg -k
Ubuntuで公開鍵をエクスポートします。
(WSL)$ gpg --armor --export KEY-ID > ubuntu-pub.key
Windowsで公開鍵をエクスポートします。
(PS)$ gpg --armor --export KEY-ID > $(wsl wslpath -w ~/windows-pub.key)
「$(wsl wslpath -w ~/windows-pub.key)」はUbuntu側のホームディレクトリ直下に置かれたwindows-pub.keyのパスに変換されます。
Ubuntuで公開鍵をインポートします。
(WSL)$ iconv -f UTF16 -t UTF8 windows-pub.key | gpg --import
WindowsでエクスポートしたファイルがUTF-16であるため、そのままではインポートできません。iconvコマンドを使ってUTF-16からUTF-8に変換しています。
Windows側で公開鍵をインポートします。
(PS)$ gpg --import $(wsl wslpath -w ~/ubuntu-pub.key)
「$(wsl wslpath -w ~/ubuntu-pub.key)」はUbuntu側のホームディレクトリ直下に置かれたubuntu-pub.keyのパスに変換されます。
※田中さま:図12のデータがないようなのでご確認いただけますか。
インポートした公開鍵の信用度を設定します。下記コマンドを実行すると1〜5で信頼度を聞かれます。自分しか使わない鍵なので「5」を設定してください。
$ gpg --edit-key KEY-ID trust quit
暗号化に必要な設定が完了しました。今回は適当なファイルを作って、暗号化addしてみます。
$ echo test > dummy.txt $ chezmoi add --encrypt dummy.txt
無事に完了すると「$HOME/.local/share/chezmoi/encrypted_dummy.txt.asc」というファイルが作成されます。試しにファイルを開いてみると「-----BEGIN PGP MESSAGE-----」で始まり「ーーーーーEND PGP MESSAGE-----」で終る文字列が確認できると思います。
ファイルに書き込まれた「test」という文字が見られるか確認してみましょう。catコマンドを使用します。
$ chezmoi cat dummy.txt
testという文字が標準出力されます。editで変更できるかも確認しておきましょう。
$ chezmoi edit dummy.txt
システムワイドな設定ファイルを管理するには
ここまで、各ユーザーのホームディレクトリにある設定ファイルの管理について解説してきました。しかし、システムワイドな設定ファイルを管理するソフトウェアもchezmoiで良いのでしょうか。
答えは「NO」です。システムワイドな設定ファイルは「/etc」以下に格納されていますが、このディレクトリには一般ユーザーに書き込み権限を与えていません。もっと言えば、読み込みすら許可されていないファイルも存在します。一般ユーザー権限で書き換えられては困るファイルや、機密情報が記載されているが故に一般ユーザーには見せられないファイルであるからです。chezmoiはユーザー固有の設定ファイルを管理するためのツールなので、管理者権限が必要となるシステムワイドな設定を管理するには不向きと言えます。
もし、システムワイドな設定ファイルを管理するのであれば「etckeeper」を推奨します。etckeeperは/etc以下の設定ファイルをGitなどのVCSで管理します。設定ファイルをバージョン管理しておくことで、誤った設定を追加してソフトウェアが動作しなくなったとしても、変更を1つ前に戻すだけで復旧できます。リモートリポジトリに設定をプッシュしておけばバックアップにもなるでしょう。ただし、誰でもアクセスできるリモートリポジトリにプッシュしてしまうと、パスワードハッシュや秘密鍵などの機密情報が漏洩する可能性があります。この点は気をつけて使用してください。
興味があれば、etckeeperの公式サイトを参照してください。また、Ubuntuではこちらのドキュメントが役に立ちます。
おわりに
今回は、chezmoiの基本的な使い方について解説しました。dotfilesの管理はベストプラクティスがないため、その管理手法に迷いがちです。chezmoiは設定ファイルを管理するための機能を十分に備えていますし、使用方法も簡単です。今回は紹介していませんが、テンプレート機能やOSを判定してファイルの出し分けなどもできる高機能なツールです。ぜひこの機会にchezmoiデビューして、快適なdotfilesライフを送りましょう!
次回は、Windows上でDockerを使うためのWSLとの関係や使用方法について解説します。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 「GitHub」にリポジトリを作成してみよう
- Node.jsとExpress.jsで開発したWebアプリをeXcaleで動かす
- 「Bash」をカスタマイズして、Linuxをより便利に使いこなそう
- DevOpsのアプリ開発にも欠かせない「Git」を活用したソースコードのバージョン管理
- PHPとMySQLが利用できるWebサイトを、Windows Azureを使って手軽に作ってみよう
- 「WSL2」をインストールしよう
- DevOpsにおける開発者の振る舞いを理解しよう
- Windows Subsystem for Linux 2 でDocker を使用する(その2)
- Elasticsearch Logstash Kibanaの環境構築
- VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編)