orenoblog

エンジニアになりたいExcel方眼紙erの物語

chef

Infrastructure as 脳筋のためのchef recipe tips. HAProxyの例

chef-zeroのC/S wrapper knife-zero使ってますか? とても便利です。重宝しています。 higanworks/knife-zero · GitHub 個人的にchefの真髄であるsearchが利用できるため、chef-soloと違って関連nodeの情報をattributeに記述すること無くrecipeを記述でき、 …

oreno knife-zeroメモ

chef-soloは将来サポートされなくなる。 今のうちにchef-zeroもといknife-zero使って未来に行けるかのメモ ※ご参考 knife-zero作者さま Chefのローカルモードだけでリモートサーバを運用してみようと、Knife-Zeroを作った。Nodeの構成情報もとれるよ。 - Qii…

monitのrecipe

pidファイルをチェックするタイプのmonit.confを一気に作りたいとき。 recipes/defualt.rb service "monit" do action :nothing end common_process = ["ntpd", "sshd", "crond"] common_process.each do |proc| template "/etc/monit.d/#{proc}.conf" do so…

ohai最高って思うとき

ohaiございます私です 例えばsensuコミュニティプラグインのcheck-redis-memory.rbを利用するとき、 maxmemoryパラメータを設定していない場合、 サーバに搭載されているメモリ量と比較して使用率を判定してみます。 ohaiのmemory attributeを使うと幸せにな…

knife solo実行時にERROR: ArgumentError: invalid byte sequence in UTF-8

本日も楽しい料理の時間が始まるよーと思いきや。 knife solo cook orenomac$ bundle exec knife solo cook orenoserver Running Chef on orenoserver... Checking Chef version... ERROR: ArgumentError: invalid byte sequence in UTF-8 どういうことだっ…

Graphiteインストール時にNo version specified, and no candidate version available for Django

sensuのGraphiteハンドラを使いたい私ですこんばんは。 Amazon LinuxでGraphiteをインストールしようとknife solo cookしたのですが、 Graphiteが利用するDjangoフレームワークが無いとエラーが出てしまいました。 Berksfile cookbooks "graphite" run_list …

test-kitchen内でattributeを設定する

kitchen-dockerが大変便利です。 .kitchen.yml attributesはこのように書けば良いみたいです。 優先順位(default, override等)については 詳しくはChef活用ガイド11.6章を。 driver: name: docker driver_config: require_chef_omnibus: true binary: /usr/b…

sensu-clientのリポジトリをどのように管理しようかな(Berkshelf失敗編)

こんばんは。Cote&CielのLaptop Rucksackを衝動買いした私です。財布のなかがすっからかん。 マカーのためにデザインされたバッグブランドらしいです。大変グレイトです。 非常に大きいバッグのため、私のように身長がt1.microな人が身につけると、デンドロ…

meezを使ってテストの準備を楽する

こんばんは、ターミナル業してない私です。cookbookのテスト書くのめんどいですよね。 ってのとTravisCIでcookbookのテストまわしたいなーと思ってまして グーグル先生に伺ったところ meezというcookbookを作成すると同時に、様々なテストを自動生成してくれ…

redisio cookbooksでハマった

chef-client 11.10.4が動作するサーバをターゲットに berks updateしないでredis使ってたら突然 ここのissueと同じようなものが発生。 回避策 redisioのcookbookバージョンを1.7.1以上にすると回避できますよ。 cookbook "redisio", "~> 1.7.1" エラー Recip…

opscode cookbooks yum 3.0.4でハマった

どうもこんにちは。 opscode cookbooksのyum 2系を利用していたのですが、3.0.4までバージョンが上がっていたので 2系ではOKだったのに。。 base-cookbooks include_recipe "yum::epel" ["bind-utils","sysstat", "dstat", "git","subversion","ntp","unzip"…

よく利用するコマンドをgitoliteとBerkshelfで管理

よく利用するコマンドやパッケージをcookbook化し、プライベートリポジトリ(gitolite)で管理してます。 Berkselfを使ってプライベートリポジトリからcookbookを取得しています。 Berksfile site :opscode cookbook "yum" cookbook "rbenv", git: "git://gith…

CentOS6.Xではrabbitmq-serverがSSL modeで起動せず冬休みにsensu入門できなかった

1/1にハマってたのが、リトライしたら動いたーと思ったのもつかの間 まーたハマったので一先ずまとめました。 ハマりはCentOS 6.3, 6.4(いずれもx86_64)で確認しました。 sensu入門できなかった... エラー内容 sensu-chefでsensu serverを稼働させようと 必…

sensu 0.12.3-1をchefでインストール中に404 "Object Not Found"

冬休みの課題にsensu試そうと思いましてコミュニティで公開されている sensuのrecipeを試した所こんなエラーが発生。 どうやら各コンポーネントのconfigをencrypt data bagに持たせないとアカン模様です。 最近変わったみたい。コミットログ ドはまりしたの…

rvmとknife

[[]]workstationのセットアップ。 自分用@OS X Mountain Lion $ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) $ echo "$HOME/.rvm/scripts/rvm" >> ~/.zshrc $ rvm install 1.9.3-p327 $ rvm 1.9.…

install.shが失敗した

片っ端からchef-clientをインストールしているブータですこんにちは。 とある都市伝説を抱えるサーバにchef-clientをインストールしようとしたところ失敗したので、 rpmをwgetしてインストールしましたとさ。 $ uname -a Linux 2.6.18-348.4.1.el5 #1 SMP **…

Vagrantfileの書き方が変わった模様

自分が利用しているPCのVagrantを 1.1 -> 1.2.1へバージョンアップしました。 ついでにVagrantfileが変わったみたいですので、メモを残します config.vm.box = "CentOS6.4_x86_64" config.vm.network :private_network, ip: "192.168.101.11" config.vm.prov…

chef-serverとchef-clientの時刻ずれの許容範囲は15分

chef-serverノードとchef-clientノードの時刻ズレは15分位内じゃないと、 node登録時に下記エラーが発生し、chef-serverへnode/clientを登録できないみたいですよ。 The request failed because your clock has drifted by more than 15 minutes.Syncing y…

knife upload実行時に 413 Request Entity Too Large 発生

私が仕事で立てたChef-ServerのリバースプロキシにNginxを利用しています。cookbookのfilesに6MB程のzipファイルを格納したままuploadすると このようなエラーが発生。 $ knife cookbook upload aws Uploading aws [0.1.0] kniERROR: Failed to upload : 413…

ohaiでCloudwatch用メトリクスを収集

思いの外簡単だった。 #!/opt/chef/embedded/bin/ruby #!coding=utf-8 # 指定したディスクデバイスの使用率をゲッツ require 'rubygems' require 'ohai' ohai = Ohai::System.new ohai.all_plugins if ARGV[0] == nil exit end diskdevice=ARGV[0] percent_u…

chef server 10から11へのデータ移行

どうもこんばんはブータです。寒いですね。昨日試しに導入したChef Server11.06に、現在稼働中であるChef Server 10のデータを移行したいと思います。 参考といいますかドキュメント読めばすぐに終わります。 今回記載した手順だけではCookBooksやclientはリ…

chef server 11インストール手順

11系がリリースされてたからchef server 11.0.6を入れてみた。chef 10系すらまとーもに使いこなせてないのに・・・10.Xから11へのchangelogはこれ 11系ドキュメントを見ながらインストールしていたのですが 案の定ハマったので、次はハマらないように手順残…

ResourcesのNotificationsについて

未だキータイプしたほうが早いよねーと思って、急ぎの時はレシピを書かずに手でconfigureして後で後悔する脳筋です。 早く料理人になりたい。 td-agentのrecipeを眺めていた時にsubscribeが利用されており「?」となったのでメモ。Resourcesで利用されるnoti…

メモ

http://berkshelf.com/

data bagの作成

一つのdatabagには複数の databag itemsを設定出来ます。。 git private repository等、IDや鍵が必要になるものはdata bagに情報を格納しておくと良いみたいです。 # vi wordpress.json { "id":"demo-wordpress", "repo": "git@bitbucket.org:<USERNAME>/<REPOSITORY_NAME>.git", "deplo</repository_name></username>…

knife で詳細情報確認

attribute確認できなくてどーしようと思っていたけど これで解決。 knife node show <node_name> -l</node_name>

vagrantでもchefのsearchを使いたい

vagrantでcookbookのテストをしようと思ったけど、searchを使っていたのでエラーが出た。 解決は恐らくこれでOK テストが終わったらnode deleteしましょう。

環境変数の値をセットしたい

knifeでbootstrapを実行した時、登録するnode_nameをデフォルトのfqdnではなく任意のものにしたかったので どうしようと考えていたらENVを使えば良いのか。ということで bootstrap scriptに記述 ↓ node_name "<%= ENV['CHEF_NODENAME'] %>" これでOK $ expor…

Nginx+chef-serverの簡単な設定

フロントにNginxを使います。 # /etc/nginx/nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { #chef-server upstream chef_api_local { server l…

vagrantが起動しない

vagrant up実行時に、以下のメッセージで止まることがある。 [default] Waiting for VM to boot. This can take a few minutes.何度かリトライしたらうまくいった。 なんだろう。