kikeda1104's blog

備忘録・技術に関することを書いています。(webエンジニア)

ChefのBerksfile

こんにちは。 メールを見ていたりしたら、あっという間に時間が過ぎて手を動かしていない状況のkikeda1104です。

今回は、プロビジョニングツール「Chef」のBerksfileについて、書いていきます。

Chefって何美味しいの?

Chefとは何かを説明するのに、「プロビジョニング」を説明する必要があるので、まずこちらから説明します

プロビジョニングとは

wikipediaから引くと

プロビジョニング(英: Provisioning)は、本来は「準備、提供、設備」などの意味であり、現在では通常、音声通信やコンピュータなどの分野における、ユーザーや顧客へのサービス提供の仕組みを指す。*1

端的に言えば、私が利用している意味は、サーバの環境構築の自動化です。

Chefとは

プロビジョニングツールと言われるChefは、サーバの環境の構築を、準備されているDSLにより 記述することで、開発者もしくは管理者の想定通りに、サーバを構築してくれるツールです。

プロビジョニングツールは、Chefだけではなく、Peppet、Ansibleなどが含まれます。

Berksfile

sourceに記載しているAPIを利用して、どのクックブックの情報を取得するのか指定するものです。 用意されている、クックブックをダウンロードしてくれます。

cookbook 'nginx'など

Befksfileの記述例

source "https://api.berkshelf.com"

cookbook 'nginx'

Vagrantからcookbookを呼び出す

Vagrantに関する詳細については、また別途書きたいと思いますが、ここでVagrantからダウンロードしたcookbookを利用するDSLのサンプルコードを記述しておきます。*2

config.vm.provistion :chef_solo do |chef|
  chef.cookbooks_path = ["./cookbooks"]

  chef.add_recipe 'nginx'
end

以上です。

*1:プロビジョニング - Wikipedia

*2: chef_zeroについては、情報が集められ次第、別の記事にアップデートしていきたいと思います。