【2026年最新】Chef Workstationで始める、インフラ自動化の深淵へ
こんにちは。インフラの世界へようこそ。
「サーバーの設定を一つずつ手作業で行う」——そんな時代はもう終わりです。現代のSREにとって、インフラは「コード」であり、何度実行しても同じ結果が得られる「冪等性(べきとうせい)」こそが正義です。
今回は、インフラ自動化の金字塔であるChefを操るための司令塔、「Chef Workstation」をセットアップし、あなたのPCをインフラ管理のプロフェッショナルな基地へと変貌させる手順を解説します。
—
1. Chef Workstationとは何か?
Chef Workstationは、Chefによるインフラ管理に必要なツール群を一つにまとめた「統合開発環境」です。これ一つで、以下の作業が完結します。
- `chef` コマンド: ワークフローの管理(クックブック作成、テストなど)。
- `knife` コマンド: Chefサーバーとの対話、ノードの管理。
- `inspec`: インフラのセキュリティとコンプライアンスの自動テスト。
- `test-kitchen`: ローカル環境での冪等性テスト。
これらを個別にインストールするのは悪夢ですが、Workstationがすべてを解決してくれます。
システム要件
- macOS: macOS 13 (Ventura) 以降推奨
- Windows: Windows 10/11 (64bit)
- メモリ: 8GB以上推奨(仮想環境を動かすため、余裕が必要です)
—
2. インストール手順
公式サイトの[ダウンロードページ](https://www.chef.io/downloads/tools/chef-workstation)から、最新の安定版を取得してください。
macOSの場合
1. `.pkg` ファイルをダウンロードし、インストーラーを起動。
2. 「インストール先」を選択し、実行。
3. インストール後、ターミナルで以下のコマンドを打ち、パスを通します。
# zshを使用している場合(デフォルト)
echo ‘eval “$(chef shell-init zsh)”‘ >> ~/.zshrc
source ~/.zshrc
Windowsの場合
1. `.msi` ファイルをダウンロードし、インストーラーを実行。
2. インストール完了後、PowerShellを「管理者として」開き、パスを確認します。
chef -v
—
3. 初期セットアップ:司令塔の準備
インストールしただけではただの「道具箱」です。これをあなたのインフラ管理ツールとして機能させるために、初期設定を行います。
Chefの利用許諾に同意する
初回実行時にライセンスへの同意が求められます。
chef generate cookbook my-first-cookbook
これで生成されたディレクトリを確認し、問題なくコマンドが反応すれば準備完了です。
knifeの初期設定
`knife`はChefサーバーと通信するためのエージェントです。今回はローカル環境で完結させるため、まずはコンフィグファイルを生成します。
mkdir -p ~/.chef
knife.rbを生成する(雛形)
cat <
chef_repo_path File.join(File.dirname(__FILE__), ‘..’)
EOF
—
4. 動作確認:HelloWorldとしての「Chef実行」
「Chefが正しく動いているか」を確かめるために、最小限のクックブックを作成してテストしてみましょう。
手順1: クックブックの生成
chef generate cookbook hello_chef
cd hello_chef
手順2: レシピの編集
`recipes/default.rb` を開き、以下のコードを記述します。これがChefの「宣言的記述」の第一歩です。
recipes/default.rb
ファイルが存在することを確認し、なければ作成する「冪等性」のある記述
file ‘/tmp/hello.txt’ do
content ‘Hello, Chef World!’
mode ‘0644’
action :create
end
手順3: ローカルでの実行
Chefは本来サーバーへデプロイするものですが、`chef-apply` コマンドを使えば、目の前のマシンで即座にテスト可能です。
chef-apply recipes/default.rb
成功の証:
`/tmp/hello.txt` が生成され、中身が `Hello, Chef World!` になっていれば成功です。もう一度同じコマンドを打ってみてください。何も起きませんよね?それが「冪等性」です。 状態が変わらない限り、何度実行しても安全。これがインフラ自動化の極意です。
—
トラブルシューティングの極意
- コマンドが見つからない: パス(PATH)が通っていない可能性が高いです。`.bash_profile` や `.zshrc` を再読み込みしてください。
- 権限エラー: macOSやLinuxで `/tmp/` 以外を操作する場合、`sudo` が必要になることがあります。
- 「Chefとは何か」で迷ったら: `chef –help` を叩いてください。全てのツールへの入り口がそこにあります。
最後に:ここからがスタートライン
Chefを覚えることは、単なるツールの習得ではありません。「手作業から解放され、コードによってシステムを記述する」というSREとしての思考法を手に入れることです。
この環境が整えば、次は「Test Kitchen」を使って、仮想環境を自動生成し、その中でテストを回すステップへ進みましょう。毎日の作業が驚くほど楽に、そして強固なものになりますよ。
何か詰まったら、いつでも戻ってきてください。応援しています。