Chef実践入門を実践してみる その5
ようやくknife-soloもインストール出来たので、
ローカル側にリポジトリを作成します。
リポジトリの作成
vagrantファイル 用にworkフォルダを作成していたので、
移動して、以下のコマンドを打ちます。
$ knife solo init .
$ ls -la total 24 drwxr-xr-x 13 momo staff 442 3 5 22:19 . drwxr-xr-x+ 32 momo staff 1088 3 5 22:18 .. drwxr-xr-x 3 momo staff 102 3 5 22:19 .chef -rw-r--r-- 1 momo staff 12 3 5 22:19 .gitignore drwxr-xr-x 3 momo staff 102 2 26 18:56 .vagrant -rw-r--r-- 1 momo staff 35 3 5 22:19 Berksfile -rw-r--r-- 1 momo staff 3022 2 26 18:56 Vagrantfile drwxr-xr-x 3 momo staff 102 3 5 22:19 cookbooks drwxr-xr-x 3 momo staff 102 3 5 22:19 data_bags drwxr-xr-x 3 momo staff 102 3 5 22:19 environments drwxr-xr-x 3 momo staff 102 3 5 22:19 nodes drwxr-xr-x 3 momo staff 102 3 5 22:19 roles drwxr-xr-x 3 momo staff 102 3 5 22:19 site-cookbooks
作成されました。
knife-soloを使用して、
以前作成していた仮想サーバ(webdb)へ、chef-soloのインストールを実施してみます。
(実際は既にインストール済みのため、上書きされます)
$ knife solo bootstrap webdb Bootstrapping Chef... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 20507 100 20507 0 0 21942 0 --:--:-- --:--:-- --:--:-- 64895 el 6 i386 Getting information for chef stable 12.19.36 for el... downloading https://omnitruck-direct.chef.io/stable/chef/metadata?v=12.19.36&p=el&pv=6&m=i386 〜中略〜 [2017-03-05T13:24:48+00:00] INFO: Report handlers complete Chef Client finished, 0/0 resources updated in 02 seconds
インストールされました。
クックブックの作成
自分のローカルにcookbookを作成します。
自作のcookbookは先ほど確認したsite-cookbooks配下に配置するのが慣習とのことなので、
慣習に則りdstatというcookbookを作成してみます。
$ knife cookbook create dstat -o site-cookbooks $ ls -la site-cookbooks/ total 0 drwxr-xr-x 4 momo staff 136 3 5 22:30 . drwxr-xr-x 12 momo staff 408 3 5 22:24 .. -rw-r--r-- 1 momo staff 0 3 5 22:19 .gitkeep drwxr-xr-x 13 momo staff 442 3 5 22:30 dstat
dstatというcookbookが作成されたことが分かります。
レシピの作成
先ほど作成したcookbook/dstat配下に、デフォルトのレシピがあるため、
更新してみます。
$ vi site-cookbooks/dstat/recipes/default.rb # # Cookbook Name:: dstat # Recipe:: default # # Copyright 2017, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # package "dstat" do action :install end
パッケージのdstatをインストールするレシピを作成しました。
ノードの作成
chefで管理するサーバのことを「ノード」と呼ぶとのこと。
ノードの状態を設定するファイルがあるため、
その設定ファイルに先ほど作成したレシピを実行する記述を記載します
$ vi nodes/webdb.json { "run_list": [ "recipe[dstat]" ], "automatic": { "ipaddress": "webdb" } }
run-listはそのノードに適用されるべきレシピを記載します。
実行してみる。
$ knife solo cook webdb Running Chef on webdb... Checking Chef version... 〜中略〜 Chef Client finished, 0/1 resources updated in 03 seconds
正しく実行されました。
今回はスムーズ。。。
今日はここまで。