update.自分の中で、まったくNodeとClientの関係について整理できてなかったので、ここで整理したい。大きく分けて、下記の3つだと考えているリソース(各アプリケーションの設定などをまとめたもの)cookbooksapacheインストール用Cookbookgitインストール用Cookbookテンプレート(サーバのあるべき姿を定義する上での共通部分の定義)enviromentdevelopment,testなど環境によって適用すべきリソースや、設定を定義roleWEBサーバ、DBサーバなど役割によって適用すべきリソースや、設定を定義サーバのあるべき姿を定義したものnode物理サーバと1対1の関係roleなどのtemplateを適用し、このサーバがどのテンプレートに当てはまるかなどを定義Chefによる、プロビジョニングはこのNodeファイルの定義にしたがって行われるChef-solo,Knife-solo環境では、上記3つを理解しているだけで特に問題なくChefを使用することができるはず。Chef-Serverでは、そうはいかない。新たにClinetとPermissionという考え方が出てくる上記を踏まえた上で、NodeとClientについて見ていく。Repositoryが置いてあるサーバにログインできるユーザが編集を行うことができました。Chefサーバ環境では、サーバに直接ログインしてこれらのファイルを編集することを想定していません。workstation(今回は説明は省きます)と呼ばれるところで、RoleやNodeファイルを編集し、ChefサーバにRestAPIのPOSTメソッドを叩くことによってファイルを更新します。ChefサーバにアップされているNode情報を誰もが見れたり、誰でも更新できたりする状態は好ましくありません。ここで初めてClientという考え方でてきます。Clientは、Chefサーバにアクセスすることができる[人,サーバ]を管理する仕組みです。認証の方式には、公開鍵暗号方式が使用されます。Clientであればすべての操作が許される訳ではありません。(Nodeを消したり、編集したり)Chefサーバでは、管理するファイル(Cookbooks,Enviroment,Node,Role)に、Permission情報を新たに、付与します。A,B,Cが存在したときClient[A]はNodeの読み込み、編集、削除ができますが、Client[B]は読み込みしかできません。admin,usersグループのuserとNodeを作成したユーザしか行うことができません。Nodeを使い回したいと思っている人がいたら、このPermissionの扱い方に注意しましょうclientsグループにUpdate権限を付与しないと、エラーでこけます。upLoginユーザーは見つかりませんでした。