Chezmoi | を使用して複数のマシンにまたがるドットファイルを安全に管理する
管理またはサポートしている複数のサーバーにあるドットファイルをどのように処理しますか? .bashrc であろうと .zshrc であろうと、あなたの貴重なエイリアスや、あなたの作業を容易にし、価値のあるものにする他の無数のドットファイルへのその他の便利な設定が含まれている場合、あなたは直ちに同意するものとします。新しい環境に移動するたび、またはクラスター内に新しいワークロード (サーバー) が存在するたびに、それらを作成するのは面倒になります。このガイドは、何度も作成する手間を省いてくれる何かを必要としているすべての人に朗報です。
Chezmoi を使用すると、複数のマシンにまたがるドットファイルを、整然とした、見栄えの良い、安全な方法で管理することができます。個人の macOS ラップトップ、職場の Ubuntu デスクトップ、職場の Linux ラップトップなど、複数のマシンにわたって構成ファイルを管理できるようになります。そして私たちは、このツールの奇跡を深く掘り下げ、ドットファイルが作業の肉体の邪魔にならないようにします。したがって、Chezmoi をインストールして、達成するために課せられ、負担を負っている作業をどのように実行するかを見てみましょう。
Chezmoi の主な機能
Chezmoi は、次の機能を使用してドット ファイルの問題の多くを解決します。
- 柔軟性: マシン固有の詳細を制御しながら、マシン間で必要なだけ構成を共有できます。
- 個人とセキュリティ: 任意のバージョン管理システムを使用して構成を管理でき、任意の形式で構成ファイルを作成できます。 chezmoi は、1Password、Bitwarden、gopass、KeePassXC、LastPass、pass、Vault、Keychain、Keyring、または任意のコマンドライン ユーティリティからシークレットを取得できます。
- 透明性: chezmoi には冗長モードとドライ ラン モードが含まれているため、ホーム ディレクトリにどのような変更が加えられるかを事前に正確に確認できます。
- 宣言型で堅牢です。 信頼できる情報源でファイル、ディレクトリ、シンボリック リンクの望ましい状態を宣言すると、chezmoi はその状態に一致するようにホーム ディレクトリを更新します。
- 高速で使いやすい: chezmoi は数分の一で実行され、インストール、初期化、マシンを最新の状態に保つなど、ほとんどの日常操作を 1 行のコマンドで実行できます。
Git アカウントと任意の Git システム (GitLab、GitHub、BitBucket など) のリポジトリが必要であることに注意してください。
その前に、GitHub ページに記載されているように、Chezmoi はさまざまな方法でインストールできることは注目に値します。
Chezmoi をさまざまな Linux ディストリビューションにインストールする
Chezmoi をインストールする前に、まずシステムを更新して git をインストールすることが賢明です。
###Install git on Centos###
sudo yum -y install git
###Install git on Ubuntu###
sudo apt install git -y
###Install git on Arch Linux###
sudo pacman -S git
Chezmoi は、次のようにさまざまな Linux ディストリビューションにインストールできます。
Alpine Linux にインストールする
apk add chezmoi
Arch Linux にインストールする
sudo pacman -S chezmoi
Guix Linux にインストールする
guix install chezmoi
NixOS Linux にインストールする
nix-env -i chezmoi
Void Linux にインストールする
xbps-install -S chezmoi
macOS に Chezmoi をインストールする
次のように Homebrew を使用して macOS に Chezmoi をインストールします。
brew install chezmoi
一行バイナリを使用して Chezmoi をインストールする
Chezmoi をインストールするもう 1 つのオプションは、One-line バイナリを使用することです。このようにして、オペレーティング システムとアーキテクチャに適したバイナリが 1 つのコマンドで ./bin にインストールされます。
cd ~
curl -sfL https://git.io/chezmoi | sh
sudo cp -r ~/bin/chezmoi /usr/local/bin
ドットファイルを管理するために Chezmoi を構成する
ドキュメントによると、chezmoi はドットファイルの望ましい状態をディレクトリ ~/.local/share/chezmoi に保存します。 chezmoi apply を実行すると、chezmoi は各ドットファイルに必要な内容とアクセス許可を計算し、ドットファイルがその状態と一致するように必要な変更を加えます。
chezmoi の使用を開始するには、次のように初期化する必要があります。
$ chezmoi init
Initialized empty Git repository in /home/tech/.local/share/chezmoi/.git/
これにより、権限 0700 を持つ新しい git リポジトリが ~/.local/share/chezmoi に作成され、そこに chezmoi がソース状態を保存します。 chezmoi は作業コピー内のファイルのみを変更します。変更をコミットするのはあなたの責任です。
chezmoi に「オンボード」したいドットファイルがすでにある場合は、次の chezmoi コマンドを使用してそれを管理できます。
chezmoi add ~/.zshrc
これにより、~/.zshrc が ~/.local/share/chezmoi/dot_bashrc にコピーされます。フォルダー全体を chezmoi に追加する場合は、追加の後に -r 引数/スイッチを追加する必要があります。
ファイルを chezmoi に追加した後、次のようにファイルのソース状態を編集できます。
chezmoi edit ~/.zshrc
これにより、$EDITOR で ~/.local/share/chezmoi/dot_zshrc が開きます。私の場合、vi エディターがデフォルトのエディターであるため、vi エディターを使用してファイルを開きます。これは、$EDITOR 環境変数が指すものを編集することで変更できます。いくつかの変更を加えて保存します。
chezmoi の良い点は、次のようにファイルを保存する前に chezmoi が行う変更を確認できることです。
chezmoi diff
編集に満足したら、次のように変更を適用できます。
chezmoi -v apply
最後に、ソース ディレクトリでシェルを開き、変更をローカル git リポジトリにコミットして終了します。 「chezmoi cd 」を発行すると、 ~/.local/share/chezmoi ディレクトリに移動します。
chezmoi cd
git add dot_zshrc
git commit -m "Add .zshrc"
exit
設定ファイルを作成する
「chezmoi init 」は、構成ファイルがまだ存在しない場合、自動的に構成ファイルを作成できます。リポジトリに「.chezmoi.
$ chezmoi cd
##For toml file format##
touch .chezmoi.toml.tmpl
##For json file format##
touch .chezmoi.json.tmpl
##For yaml file format##
touch .chezmoi.yaml.tmpl
ファイルを作成した後、 chezmoi init を実行して「~/.config/chezmoi/chezmoi.toml 」構成ファイルを作成します。拡張子は、上で選択したファイル形式に応じて変わることに注意してください。
chezmoi init
chezmoi を使用して複数のマシンにわたるドットファイルを管理する
さまざまなコンピューター上のローカル ドットファイルにアクセスするには、ファイルを保管する中央の場所が必要です。 Chezmoi は Git で動作します。 ~/.local/share/chezmoi にある Git リポジトリを、GitHub、GitLab、BitBucket などのホストされた Git サービスにクローン作成します。
chezmoi cd
git init
git commit -m "dotfiles commit"
git branch -M main
git remote add origin https://github.com/JohnKibe/dotfiles.git
git push -u origin main
リポジトリには任意の名前を付けることができますが、多くの人はドットファイルをリポジトリドットファイルと呼ぶことを好みます。そこから、前の手順で説明したように別のコンピューターに chezmoi をセットアップし、次のように git リポジトリのクローンを作成します。
注: dotfile などの任意の名前でリポジトリを作成しておく必要があります。
$ chezmoi init https://github.com/JohnKibe/dotfiles.git
Cloning into '/home/tech/.local/share/chezmoi'...
Username for 'https://github.com': <your-username>
Password for 'https://<your-username>@github.com':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
これにより、リポジトリとサブモジュールがチェックアウトされ、オプションで chezmoi 構成ファイルが作成されます。次のコマンドを実行するまで、ホーム ディレクトリは変更されません。
chezmoi apply
あるいは、次のコマンドを実行して、実際に変更を適用せずに、リポジトリから最新の変更を取得し、何が変更されるかを確認することもできます。
chezmoi source pull -- --rebase && chezmoi diff
このコマンドはソース ディレクトリで git pull –rebase を実行し、chezmoi diff はソース ディレクトリから計算されたターゲットの状態と実際の状態の違いを表示します。
git リポジトリ ファイルに変更を加えたら、任意のマシンにログインし、次のコマンドを使用してリポジトリから最新の変更をプルして適用できます。
chezmoi update
これにより、すべてのドットファイルを任意のマシンに置くことが簡単になりました。新しいマシンごとに新しいドットファイルを記述する必要はもうありません。作業は chezmoi コマンドを入力するだけで簡単になります。
Bitwarden を使用して秘密を守る
chezmoi には、Bitwarden CLI を使用してデータをテンプレート関数として公開する Bitwarden のサポートが含まれています。 Bitwarden がインストールされていない場合は、Snapcraft を使用して簡単にインストールできます。また、Bitwarden のサービスを使用するには、Bitwarden アカウントが必要です。
次のように、snap または npm を使用して Bitwarden CLI をインストールします
$ sudo snap install bw
##or using npm##
$ npm install -g @bitwarden/cli
その後、アカウントにログインできます
$ bw login
? Email address: <your-email-address>
? Master password: [hidden]
You are logged in!
Bitwarden ボールトのロックを解除します。
bw unlock
指示に従って、BW_SESSION 環境変数を設定します。
###For Linux###
export BW_SESSION="2cvamm4lAfeH+Ztlsdtwerhwrtjwt3qEbTqsdfasgry36ceIuY7/lfC1pVS7esIHDFoITq7DIy3V3xTpFK=="
###For PowerShell###
$env:BW_SESSION="2cvamm4lAfeHd+ZtlqpXnGmF93qEbTqfa3hbQJo8y36ceIuY7/lfC1pVS7esIHDFoITq7DIy3V3xTpFK=="
「bw get 」からの構造化データは、構成ファイルの bitwarden テンプレート関数として利用できます。次に例を示します。
username = {{ (bitwarden "item" "GeeksAdmin").login.username }}
password = {{ (bitwarden "item" "StrongPassword").login.password }}
結論
このガイドでこれまで説明してきたことは、単なる海の一滴にすぎません。 Chezmoi を使用すると、Bitwarden、gopass、KeePassXC などのお気に入りのパスワード セキュリティ ツールを使用して、最もプライベートなドットファイルを保護できます。 chezmoi でできることをさらに詳しく知りたい場合は、詳細なハウツー ガイドを参照し、この素晴らしいツールが提供できるさらに多くの機能を体験してください。