どうも、cloudpack のかっぱ (@inokara) です…夜中に目が覚めてざっと触ってみて書きました。
せっかく sensu なのに手でチマチマ設定は辛い、ナウでヤングに人気なツールはナウでヤングにセットアップしなければいけませんということで sensu-client for Windows を chef-solo でセットアップしたメモです。
ということで ChefDK と git に関しては予めインストールしておきましょう。berkshelf と knife-solo は powershell を起動して以下のようにインストールしました。
cd C:\opscode\chefdk\embedded\bin ./gem install knife-solo berkshelf --no-ri --no-rdoc -V
powershell は私的な 2014 年の産業革命です。
cd C:\ knife solo init chef-repo
source "https://supermarket.getchef.com"</p> <p>cookbook 'windows', '~> 1.34.6' cookbook 'sensu', git: 'https://github.com/sensu/sensu-chef.git'
を書いておいて berks vendor します。
cd C:\chef-repo berks vendor berks-cookbooks
file_cache_path "C://opscode/chef/cache/chef-solo" cookbook_path "C://chef-repo/cookbooks","C://chef-repo/berks-cookbooks" data_bag_path "C://chef-repo/data_bags"
これも powershell でやります。
cd C:\chef-repo\data_bags mkdir sensu cd sensu wget -Outfile ssl.json https://raw.githubusercontent.com/culturejam/chef-sensu/master/examples/data_bags/sensu/ssl.json
sensu-client の設定に必要な情報は個別の cookbook を作ってそちらに設定しておきます。
これも powershell でやります。
cd C:\chef-repo\cookbooks berks cookbook sensu-deploy ./sensu-deploy
C:\\chef-repo\cookbooks\sensu-deploy\attributes\default.rb
を適当なエディタで設定します。
</p>
<h1>platform</h1>
<p>if platform_family?("windows")
default.sensu.admin_user = "Administrator"
default.sensu.directory = 'C:\opt\sensu\etc'
default.sensu.log_directory = 'C:\opt\sensu\var\log'
default.sensu.windows.dism_source = nil
default.sensu.windows.package_options = nil
else
default.sensu.admin_user = "root"
default.sensu.directory = "/etc/sensu"
default.sensu.log_directory = "/var/log/sensu"
end</p>
<h1>installation</h1>
<p>default.sensu.version = "0.13.1-1"
default.sensu.use_unstable_repo = false
default.sensu.log_level = "info"
default.sensu.use_ssl = false
default.sensu.use_embedded_ruby = false
default.sensu.init_style = "sysv"
default.sensu.service_max_wait = 10</p>
<p>default.sensu.apt_repo_url = "http://repos.sensuapp.org/apt"
default.sensu.yum_repo_url = "http://repos.sensuapp.org"
default.sensu.msi_repo_url = "http://repos.sensuapp.org/msi"</p>
<h1>rabbitmq</h1>
<p>default.sensu.rabbitmq.host = "${your_rabbitmq_host}"
default.sensu.rabbitmq.port = 5672
default.sensu.rabbitmq.vhost = "/sensu"
default.sensu.rabbitmq.user = "sensu"
default.sensu.rabbitmq.password = "xxxxxxxxxxx"</p>
<h1>redis</h1>
<p>default.sensu.redis.host = "localhost"
default.sensu.redis.port = 6379</p>
<h1>api</h1>
<p>default.sensu.api.host = "localhost"
default.sensu.api.bind = "0.0.0.0"
default.sensu.api.port = 4567
今回は SSL を有効にするとなぜか sensu-client が動かないので SSL は無効にしてます。(efault.sensu.use_ssl = false)実際に運用する際には SSL は有効にしておいた方が良いと思います!
C:\\chef-repo\cookbooks\sensu-deploy\recipes\default.rb
を適当なエディタで設定します。
include_recipe "sensu::default" include_recipe "sensu::client_service"</p> <p>sensu_client node.name do address node.ipaddress subscriptions node.roles + ["all"] #additional(:cluster => node.cluster) end
特に凝った設定等はいれていない極めてシンプルな環境です。
{
"run_list": [
"recipe[windows]",
"recipe[sensu]",
"recipe[sensu-deploy]"
]
}
とその前…
cd C:\chef-repo chef-solo -c .\solo.rb -j .\nodes\localhost.json -W
してから…
chef-solo -c .\solo.rb -j .\nodes\localhost.json
を実行すると…
すいません!既に二回目の実行なので何も処理されず終了していますが、上図の通りに chef-solo が実行されて sensu-client のセットアップが滞りなく終了しています(しました)。
ご安心下さい。
設定ファイルも確認してみます。
{
"client": {
"name": "WIN-xxxxxxxxx",
"address": "xxx.xxx.xx.xxx",
"subscriptions": [
"all"
]
}
}
ね!
チマチマした「手 conf」からは開放されそうです!
そして、もっとナウでヤングに knife solo でリモートから…は無理しないようにしたいと思います。
そして…もう一回寝ます。
元記事はこちらです。 「chef-solo で始める sensu-client for Windows」