chezmoiでdotfilesを管理する
コンピュータの初期セットアップって面倒ですよね。この手間を省くためにdotfilesを使ってる方も多いのではないでしょうか。dotfilesと言っても管理方法は人それぞれで、ツールを使ってる方もいれば自分なりのやり方で実践してる人もいるかと思います。私はalias dotfiles='git --git-dir ~/.dotfiles --work-tree ~'をSHELLの設定に入れているので、dotfiles add /path/to/file、dotfiles commit -m 'update' -aみたいなのでちまちま管理しています。 これでも十分といえば十分なのですが、設定ファイルってプレーンテキストなのでGitHubなどにコミットするには少し慎重になりますよね。機密情報が載ってないかなど心配になります。 そこで今回は安全にdotfilesを管理できるchezmoiを紹介します。 chezmoi www.chezmoi.io dotfilesを安全に管理するためのツールです。マルチプラットフォームに対応しているため、Linux、macOS、Windowsどこでも同じように管理できます。 執筆時点ではGitHub Topicsの「#dotfiles-manager」で1番人気でした。 インストール 公式ドキュメントのInstallを参考にしてください。 私の環境はMacなのでbrew install chezmoiしました。 管理してみる $ chezmoi init 初回は「init」サブコマンドでdotfilesを管理するためのリポジトリを作成します。 引数なしで実行した場合は~/.local/share/chezmoiにローカルリポジトリが作成されます。 既にリモートリポジトリを持っている場合はinitの後ろにリモートリポジトリのURLを指定します。すると~/.local/share/chezmoiにリポジトリがクローンされます。 $ chezmoi init git@github.com:/dotfiles.git またはURLを省略してGitHubのユーザー名を指定するだけでもクローンできます。 $ chezmoi init この場合https://github.com/<github-username>/dotfilesリポジトリがクローンされます。SSHのURLでクローンしたい場合は--sshオプションをつけましょう。 リポジトリ名がdotfilesではない場合は<github-username>/<repo-name>で指定します。 $ chezmoi add ファイルをchezmoiの管理対象に加えます。 例えば~/.bashrcを管理対象にする場合は下記の通りです。 $ chezmoi add ~/.bashrc こうすることで~/.local/share/chezmoi/dot_bashrcというファイルが作られます。 このファイルをホームディレクトリにコピーすることで設定を反映します。 では機密情報が含まれたファイルがaddされたらどうなるでしょうか。 $ chezmoi add ~/.aws/credentials すると・・・ {“level”:“trace”,“time”:“2024-12-18T12:02:56+09:00”,“message”:“skipping generic-api-key finding (aws_access_key_id = REDACTED), aws-access-token rule takes precedence (REDACTED)”} chezmoi: /Users/ttanaka/.
Read more...