no_picture

ChefDKハンズオンをして思ったこと

ChefDKハンズオンをしました。 すごい広島93の脇で行いました。 ハンズオンをするととても勉強になります。自分が。 当日のトラブルを避けるための入念な準備をしたり、それでも想定しないことが起きたり、自分では簡単だと思っていることが他の人には意外と難しかったり、なんとなく理解の部分を発見したりできました。 参加者にとってハンズオンの良いところは、本来一人で新しいことをはじめるとつまづいた時に一人で解決しないといけませんが、講師がいて一緒に解決できるところがとても大きいと思いました。 そんなわけで、ChefDKハンズオン with すごい広島の資料はここにあるので、気が向いたら遊んでみてください。 反省点なんかを反映したいですが、間に合っていません。 作るのもそれなりに大変だったので、しっかり直したいです。 今度から月1回程度、他の人の作成したハンズオン資料でハンズオンしたり、ときどき自作したりしてもいいかなと思いはじめています。 そういえば、Boot2dockerの準備の仕方を書いてなかったらみんなハマってました。 使ったことなければ、それはそうですね、本当にすみません。 再演希望とかあれば言ってください。研修に使いたい場合、講師で呼んでくれても良いです。 生活費稼がなきゃ。 もっとみんなに使って欲しいと思った技術をみつけたら、新しいハンズオンを考えてみたいです。

no_picture

LT駆動開発10でTest KitchenではじめるChef入門という話をした。OSH2015のステマかもしれない。

LT駆動開発10で「Test KitchenではじめるChef入門」という話をした。 ちなみにこの記事はオープンセミナー2015@広島のステマ記事でもある。 また、「Test KitchenではじめるChef入門」はQiitaに投稿した記事である。 Chefはちょいちょい使っていて、使いこなせてはいません。 Cookbookを作成するときの環境で、Vagrantfileでやるのがよいのか、knife-zeroを使うのがいいのかいろいろ悩んでいた。 やっぱりテストコードを書きたいし、ますはTest Kitchenをいじっておこうと至るのは自然な道だと思う。 Test Kitchenをいじっていると、そのままの環境でCookbookを書くのが良さそうだということに気づいた。 ならば、はじめからTest Kitchenを使いつつChefを学ぶのも良さそうだということで「Test KitchenではじめるChef入門」というネタを考えた。 詳細はQiitaの記事を参照して欲しい。 広島のみんなはオープンセミナー2014@広島で@t_wadaさんに来てもらったことだし、何をはじめるにしてもテストコードをかく環境から導入したいはずだ。 きっと、Chefのテスト環境にみんな興味があるはずだ。(確信)(そんなわけはない) そういえば、オープンセミナー2015@広島は2月14日が行なわれる。 事前申し込みはこちらからできる。 そして、みんなすごいChefを試していると思うんだけど、Chefの調べものをしていると、きっと@sawanobolyさんを何度もみかけるはずだ。 代表的な記事をピックアップしてみよう。 Ruby - Chefのローカルモードチュートリアル + knife-zero + knife-sakura - Qiita test-kitchenのつかいかた - Qiita Chefのローカルモードだけでリモートサーバを運用してみようと、Knife-Zeroを作った。Nodeの構成情報もとれるよ。 - Qiita ところで、オープンセミナー2015@広島の講師に@sawanobolyさんがいるように見えるのは僕の気のせいだろか。 Chefに限らず構成管理ツールの利用箇所は幅が広がりつつある。 Packerをつかって各仮想環境のbox作成 Vagrantのプロビション Dockerなどコンテナのプロビジョン WerkerのBox作成 GitLabのインストーラ あまり知らないけど、僕が知る限りでも、そこそこある。 もっとあるんじゃないかと思う。 構成管理ツールは運用する人たちののツールから開発をする人たちでも使われていくツールなるだろう。 せっかく@sawanobolyさんがいらいしゃるので、いまのうちにChefをしっかりいじっておきたいよね。 他にも広島でChefをいじっている人いえば、@akira345さんとか、@k2worksさんとか、@ogatomoさんとか、@moobay9さんとか、@pecosantoyobeさんとかがいる。 Ansibleなら@soudaiさんとか@24motzさんとか、@yukilabさんとか、@NeXTSTEP2OSXさんとかがいじっていると聞いている。 たぶんTwitter IDを上げた人はほとんど参加するはずだ。間違いない。 名前を上げなかった人でもきっと何かしらの構成管理ツールを使っている人がたくさんいて遊びに来るはずだ。 @sawanobolyさんが来るんだし、きっと間違いない。(自信なし) さあ、みんなでオープンセミナー2015@広島に集まって情報交換しよう。 構成管理に入門するタイミングとしては、この上はないはずだ。 そういえば以前こんな記事を書いている人がいましたね。 オープンセミナー広島は広島のITエンジニアが集う場所 - そんなこと覚えてない くりかえす。 オープンセミナー2015@広島は2月14日だ。 事前申し込みはこちらからできるぞい。 全く関係ないし、公式に受理されていないが、オープンセミナー2015@広島の懇親会の裏の名前はLT駆動開発11なる予定だ。 関連 JunkBox~主に個人的防備録~: オープンセミナー2015@広島を開催します!

no_picture

gitで公開されてるクックブックに依存している時のmetadata

ふつうに書くしかない。 利用する際にはcookbooksディレクトリにあればよい。 test-kitchenをする際には、Berksfileにかいとけばよい。 以下のようになる。例はrbenv。 metadata cookbook 'rbenv', git: 'git://github.com/fnichol/chef-rbenv.git', branch: 'v0.7.2' このクックブックに依存したクックブックを書くとつらい目にあうような気がするので、READMEにしっかりかいておいたほうが良さそう。 どうしてこんな話が出てくるかというと、rbenvは系統が違うものがふたつある。 chef-rbenv rbenv-cookbook chef-rbenvのほうはsupermacketにあるのだけどrbenv-cookbookのほうはない。お互いに関連はなさそう。 「VagrantにRuby/Rails開発環境を整えるChef+Berkshelf構築メモ - Qiita」ではgitで指定していたのでそんな話がでてきただけである。

no_picture

Sensu を少しだけ触ってみた

ちょっと前に Sensu を試した。 大したことは試してないのですが、日本語の情報もあまりないので試したことを記録しておこうと思う。 Sensu って? Nagios という統合監視ツールの置き換えを狙ったプロダクトのようで、Nagios のプラグインがそのまま使えます。 そもそも Nagios のプロトコルをそのまま使ってるようです。 同様のツールとして Zabbix などありますが、結構毛色が違うツールだということを今回わかりました。(Zabbix は試したことがありますが、Nagios は試したことがないです) Zabbix は全部入りみたいな感じで、これだけでなんでもできたりして、入門するには難しい感じです。 Nagios を利用する際にはグラフを書きたい場合は munin などを併用する人も多いようです。 munin は個人的に設定が楽なので、ちょろっとした時に利用します。 そんなわけで、「いまどきの Nagios」 である Sensu を試してみようという流れです。 まずインストールしてみる どんなものかピンと来ない場合はまず動かしてみるほうがいいです。 Sensu をインストールするのに chef や puppet が使えるように公式から sensu-chef や chef-puppet があり割と簡単にインストールできるようです。 手動でもそんなに難しいわけではなく ドキュメントを見ながらやればできると思います。 というわけで、今回は sensu-chef を試しました。 私が chef の初心者なので、その辺のメモも書いています。 sensu-chef の README.md をみるとやり方が書いてあります。 Vagrant をつかって動かすサンプルがあります。 $ git clone git@github.com:sensu/sensu-chef.git $ cd sensu-chef/examples $ gem install bundler $ bundle install

no_picture

knife のログレベルの設定

knife solo でエラーがでるけど、どこで起きてるかわからねぇ。 というわけで、pry を差し込みして調べた。ぐぐってトップのほうにあるのは 「やり方がわからない!」って、なっていた。悲しい。 結論としては、knifeの設定ファイルである .chef/knife.rb や ~/.chef/knife.rb に以下を追記すればいい verbosity :debug :debug としてるのは分かりやすくかいただけで、 nil や 0 、1 で ない値であればいい。 参考: https://github.com/opscode/chef/blob/11.8.2/lib/chef/knife.rb#L373-L380 case Chef::Config[:verbosity] when 0, nil Chef::Config[:log_level] = :error when 1 Chef::Config[:log_level] = :info else Chef::Config[:log_level] = :debug end これぐらいならドキュメントにかいてありそうだけどソースをみてしまった。 追記 -V でログレベルが変わる模様 -VV で、さらに変化する。 -V で出力がかわんなかったから油断した。(いいわけ) 関連 やっと Chef Solo はじめた

no_picture

やっと Chef Solo はじめた

すごい広島 #26 にて、書いている。 すこし前に chef-solo で遊んだので、その時思ったことを書いておく。 自分が考えたことが書いてあるだけなので、不正確な内容も含むかもしれません。 主な参考文献は以下。 入門 Chef Solo - Infrastructure as Code 今っぽい Vagrant + Chef Solo チュートリアル - Qiita - taiki45 「今っぽい Vagrant + Chef Solo チュートリアル」は「入門 Chef Solo」の内容を踏まえた上で、最近の動向も押えてて参考になりました。 目的 chef-solo を試す上で、 一番の目的は「リモートサーバの設定反映をコマンドを一つ実行すれば済むようにしたい」ということでした。 $ knife solo cook ホスト名 このコマンドをローカルマシンで実行すると、「ホスト名」が示すサーバの設定をできるようにしました。 また、「入門 Chef Solo」では、ローカルマシンでテストするにも knife solo を利用していた点が気になっていました。そこは別にしたかったので、vagrant の機能を利用して、 $ vagrant provision で、済むようにしました。 成果物 GitHub の eiel/cookbook-munin-example に置いています。 使い方も README.md に書いています。 なぜ munin かというと、munin のインストールが必要だったからです。 上記のリポジトリは必要なツールがそろっていれば git clone して