chefを使って、uchiwaのインストールする
前回の続きで、 sensu-adminをインストールした 手順を公開しようかと思ったが、uchiwaを見かけて、こちらの方が見た目が良かったので、uchiwaをchefを使用してインストールしてみた。
Berkshelfに追加
cookbookが公開されていたので、そちらを使用する事にした。
Berksfileに以下を追記。
cookbook 'nginx' cookbook 'uchiwa', '~> 0.4.3'
nginxは必須ではないが、プロキシとして使用するためインストール。
cookbookを作成する
nginxを使用せず、uchiwa単体で動かす場合は、Berksfileに追加してknifeを実行すれば、インストール完了し、
使用できるようになる。
しかし、今回はnginxと連携させるため、連携用のcookbookを作成する。
bundle exec knife cookbook create uchiwa -o site-cookbooks
recipes/default.rb は削除する。
(berkshelfでインストールしたnginxのdefault.rbを使用するため)
nginxに依存するので、metadata.rbに以下を追記する
depends 'nginx'
次にnginxをインストールするため、以下の内容のrecipes/nginx.rb を作成する。
include_recipe 'nginx::default' # このテンプレートにuchiwaとの連携の設定を記述する。 template "#{node.nginx.dir}/conf.d/default.conf" do owner "root" group "root" mode 0644 notifies :restart, "service[nginx]" end
設定ファイルのテンプレートとして、templates/default/default.conf を作成し、以下を記述する。 最低限の設定をとりあえず記述。(ホストとポートくらいは外だしにした方が良いと思うが、今回は割愛。)
公式のサイトには、proxy_http_version 1.1;
が書かれていたが、
設定に書くとnginxが起動しないので、とりあえず削除した。
server { listen 80; server_name _; location / { proxy_pass http://localhost:3000; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } }
次に、uchiwaのデフォルトのrecipeと今回作成したnginxのrecipeを実行するための、 recipeを recipes/app.rbに作成。
include_recipe "#{@cookbook_name}::default" include_recipe "#{@cookbook_name}::nginx"
でこれを、runlistに recipe[uchiwa::app]
を追記して実行するれば、uchiwaのインストールが完了するはず。
アクセスすると、認証がかかっているので、
- ユーザー名: admin
- パスワード: supersecret
を入力すればログインできるはず。
使用感などは、また今度かな。