Chef 12のオープンソース版と25ノード制限について

Chef バージョン12がリリースされました。

ところで下記のニュースで気になる記述がありました。

ビジネスモデル面でも変更があり、 オープンソース版(「Chef Essentials」)と商用版(「Chef Enterprise」)を単一のコードベースに統一し、 新たにフリーミアムサブスクリプションモデルを導入した。 新たに導入された無料の「Chef Essentials」プランでは、25ノードまで(ホステッド版では5ノードまで)の設定管理が可能となっている。

オープンソース版のライセンスが変わって、25ノードまでの台数制限が入った ようにも読めます。

マジか。

さすがにそれは無いだろうと思ったけど念の為に本家の情報を確認。

Chef | IT automation for speed and awesomeness | Chef

上記のページより、ライセンスと価格についての表示を引用します。

CHEF Essentialsというのがオープンソース版ですね。ここに下記のような記述があります。

Premium Features

・Access to premium features for up to 25 nodes ・Hosting available for up to 5 nodes

つまり25ノードに制限されるのは、Essentials版そのものではなく、 SubscriptionとEnterprise Subscriptionの欄に書かれている Premium Featuresだけです。

Premium Features

・Management console with reporting and role-based access control ・Analytics platform ・High availability ・Replication ・Available as hosted service

以下の機能はEssentials版でも無制限に利用できます。

✔ Chef server

    ✔ Manage 10,000+ Nodes with a single Chef server
    ✔ Maintain a searchable blueprint of your infrastructure
    ✔ Easy Installation with Omnibus installer

✔ Chef client

    ✔ Easily manage Linux, Windows, Mac OS, Solaris, and FreeBSD

✔ Chef development kit

    ✔ Everything you need to start managing applications and infrastructure with Chef
    ✔ Download and install in just a few clicks

✔ Integration with all major cloud providers
✔ Easily manage containers in a versionable, testable and repeatable way. 

ありえないと思ったんだけどドキドキした。

何か勘違いがあれば @KawaharaTaisuke 宛までご指摘いただけましたら幸いです。

リンク

knife solo prepareでエラー

knife-soloをインストールしたら何故かchef 12.0.0.alphaがインストールされてしまいました。

$ gem install knife-solo
Fetching: chef-zero-2.2.gem (100%)
Successfully installed chef-zero-2.2
Fetching: chef-12.0.0.alpha.1.gem (100%)
Successfully installed chef-12.0.0.alpha.1
Thanks for installing knife-solo!

If you run into any issues please let us know at:
  https://github.com/matschaffer/knife-solo/issues

If you are upgrading knife-solo please uninstall any old versions by
running `gem clean knife-solo` to avoid any errors.

See http://bit.ly/CHEF-3255 for more information on the knife bug
that causes this.
Successfully installed knife-solo-0.4.2
Parsing documentation for chef-12.0.0.alpha.1
Installing ri documentation for chef-12.0.0.alpha.1
Parsing documentation for chef-zero-2.2
Installing ri documentation for chef-zero-2.2
Parsing documentation for knife-solo-0.4.2
Done installing documentation for chef, chef-zero, knife-solo after 20 seconds
3 gems installed

opscodeのchefのインストーラはまだ未対応なのか、knife solo prepareが失敗するようになってしまいました。

Read More

Vagrantの上のCentOS 6.5でyum updateした後、vagrant upで発生したエラーの原因と対処

概要

Vagrant + VirtualBoxで動かしているCentOS 6.5のVMでyum updateしたら、 その後のvagrant up実行時にエラーが出るようになったので原因を調べてみました。

$ vagrant up

(snip)

default: /vagrant => /Users/kawahara_taisuke/Documents/program/ruby/vagrant-test
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

忘れた頃にまた踏みそうなのでメモしておきます。

Read More

Scala 開発環境構築(IntelliJ IDEA, SBT, scalaenv)

前提と目標

下記のような開発環境の構築手順をメモしておきます。

  • Mac OSX 10.9.4
  • Scala 2.11.0
  • SBT 0.13 (ビルドツール)
  • IntelliJ IDEA 13.1 のCommunity Edition
  • IdeaVIMの設定(操作をvimライクに)
  • ターミナル用のScala環境の構築(scalaenv)

IntelliJ IDEA上でHello Worldを動かすところまでの手順を説明します。

ScalaとSBTはIntelliJのプラグインによって自動的にインストールされるため、個別にインストールする必要はありません。

現時点では、デフォルトのScalaのバージョンは2.10.4ですが、 SBTのビルド定義にバージョンを書けば、プロジェクトごとに異なるバージョンのScalaコンパイラでビルドできます。 具体例として2.11.0を使う方法を後述します。

また、上記の方法はIntelliJ IDEAのプラグインがScala一式をインストールしてしまうので、 ターミナル用の実行環境としてscalaenvを少し紹介します。

大半がIDEでの設定なので画像多め。

Read More

Octopressで見出しの目次を作る方法 改

以前このような記事を書きました。

Octopressで見出しの目次を作る方法 - 割り箸ポテチ

この記事を読まれた方から、より良い方法を教えて頂きました。

Octopressで見出しタグを目次にする方法 - Qiita

jekyll-toc-generatorというjekyllのプラグインを修正して使う方法です。 修正する理由は下記で解説されています。 jekyll-toc-generatorを個別ページで表示する場合の問題点 - MBA-HACK2

rdiscountの見出し作成機能を使わず、フィルタで本文をパースして見出しを構成してしまうというアプローチでした。 勉強になりました。その手があったか。

で、試してみたところ概ね自分の望むとおりに動いていました。素晴らしいです。

ただ一点だけ、<!-- more -->excerptで後半を省略する場合に、 カレントページへのアンカーのままだとリンク先が省略されて意図した動作をしなくなるので、 オプションで絶対パスを指定できるようにして使うことにしました。(あとatomに載った場合も困る)

修正した後のコードは下記です。

Read More

書評:パーフェクトRuby on Rails

これからRailsを覚える友人に書籍を薦める機会があればこの2冊を選びます。

特に1冊目の パーフェクト Ruby on Rails「これからRailsを覚える同僚に紹介する」という用途にも最適な一冊だと思います。

こういう書籍の内容は”Railsの標準機能”の枠に収まっている事が多いのですが、実際の開発現場においてはRails本体の機能ではないものの、 多くの現場でデファクトスタンダードになっているgemが数多く存在します。

そのような情報に関してはアンテナを広げてキャッチアップしていくしかないのですが、 この書籍はRails非標準の内容にまで深く踏み込んでおり、初学者の最初の一歩をブーストしてくれます。 もちろん非標準の内容については広く普及しているかどうか(かつ長くその地位を保てるか)意見のわかれる点でもあるのですが、 少なくとも自分の主観で読み進めて違和感のある部分はほとんどありませんでした。

Railsで初めてWebアプリ開発を行うという方には適切ではないかもしれませんが、 他の言語・フレームワークの経験があるような技術者にはこれくらいの内容のほうが効率が良いです。

具体的にどこがよかったかについては後半で述べます。

2冊目の Ruby on Rails 4 アプリケーションプログラミング は、1冊めを補完する目的でおすすめです。 バリデータやビューのヘルパなどのリファレンス的な情報が豊富です。

今回は、特に”パーフェクトRuby on Rails”について良いと思った点をメモしておこうと思います。

Read More

Octopressで見出しの目次を作る方法

調べて見つかった方法だとうまく行かなかったので、少し筋の悪い方法ですが自分で考えた方法をメモしておきます。

追記:ブログエンジンをHexoに移行しましたので、この記事の内容は現状と齟齬を生じている可能性があります。

最終的には、この記事に出ているような見出しの目次を作ることができました。この方法の特徴は下記の通りです。

  1. 日本語の見出しでもエラーにならず出力される。
  2. OctopressデフォルトのMarkdownパーサであるrdiscountを使用している。
  3. リンクが絶対パスになる(記事一覧画面のような「続きを読む(Read On)」で目次のリンク先が省略されるような状況でも有効なリンクになる)
  4. リンクが重複しない(後述)

前半はアプローチのメモです。実現方法は解決案以降に書いています。

Read More

ruby 実行環境の構築 - rbenvの使い方とその仕組み

rbenvとruby-buildのインストール方法

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

.bash_profileは自分の使っているシェルに応じて.zshrcなどに読み替えてください。

Read More