chef

環境構築の自動化にも興味があるので、Chefの勉強もしてみました。

naoyaさんの「入門Chef-Solo」が読みやすかったので、これを読んで、他のも読み進めるつもりです。

最初のステップは、こんな感じかな。

VirtualBoxのインストール

https://www.virtualbox.org/wiki/Downloads

からインストール

vagrantのインストール

http://www.vagrantup.com/downloads

からダウンロード

http://www.vagrantbox.es/

 から適当なイメージを探してきて次のコマンドでOSのインストール

vagrant box add test http://files.vagrantup.com/precise64.box

vagrant init test

vagrant up

vagrant ssh 

Chefのインストール

次のコマンドでインストール

gem install chef

git clone git://github.com/opscode/chef-repo.git

knife configure

テスト実行

画面に文字列を表示するクックブックを作成。

cd chef-repo

knife cookbook create test -o cookbooks

 

vi cookbooks/test/recipes/default.rb

log "Hello world!"

 

vi localhost.json

{"run_list":["recipe[test]"]}

 

vi solo.rb

file_cache_path "/tmp/chef-solo"

cookbook_path ["/home/vagrant/chef-repo/cookbooks"]

次のコマンドで実行

sudo chef-solo -c solo.rb -j ./localhost.json

 

 

 

 

 

gitのcommit時にコード整形(C++, Windows)

コード規約ってめんどうですよね。

人間が確認して直したり注意したりするのは何か間違っている気がするので、コンピュータに任せたいところ。

 

いろいろ探していたら、C++だと、Artistic Styleっが簡単でそれなりそう。

これをgitのcommitフックで更新して、commit前に加工してもらうことを考えてみました。

 

Artistic Styleを「c:\Program Files (x86)\AStyle」にk解凍して、

下のようなスクリプトをプロジェクトの「.git/hooks」に入れて、commit前に加工して更新するのでうまくいきました。

https://github.com/aillue/pre-commit/blob/master/pre-commit

別のサイトのスクリプトを参考にしながら作成して理解していない面もあるので、動かない部分もあるかもしれません。

C++11

C++を再び触り始めたのですが、あまりに昔のことしか知らないので、現代的なものを勉強しています。

 

C++11超入門記事があったので、そこを見ながら学習中。

 

https://github.com/aillue/sample_cpp/blob/778162119a17484eef190f21465b0a47fe2af9d0/sample_cpp/test_memory.cpp