30路SEのtech忘備禄

日々の業務やプライベートの技術的なメモをたんたんと。たまに関係ないことも。

chef(chef-solo,knife-solo)環境をcentos6.4にインストール

vagrantに手を出したら、やっぱchefもでしょ。
ということで、こちらも環境構築。
CentOS6.4という環境がいけないのか、構築するのにものすごく苦労した。
他のディストリビューションなら楽なのかな。。
引っかかった点も含めて構築メモ


■chef install

・必要なRPMをインストール

yum install rubygems ruby-devel openssl-devel


注意点1:chef-soloを実行したときにrubyのバージョンが1.8.7より古いとエラーになる。CentOS6.4ではyumだと1.8.3が入るので、rubyのバージョンを変える必要がある。
→rbenvをインストールで解決。

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build
./install.sh

cd ~/.rbenv/
git clone git://github.com/sstephenson/rbenv.git

環境変数を設定

vi ~/.bashrc 
--
export PATH="/root/.rbenv/rbenv/bin:$PATH"
eval "$(rbenv init -)"
--
source ~/.bashrc

・インストールしたrubyを反映

rbenv install 1.9.3-rc1
rbenv global 1.9.3-rc1
rbenv rehash

・gemを最新化

gem install rubygems-update


注意点2:chefの最新(11.6)はknife-soloの0.3.0と相性が悪く、knife soloコマンドが認識されない
→11.4.4のバージョンを指定してインストール

gem install chef -v 11.4.4
gem install knife-solo
knife configure

・あとはchef用のリポジトリを作成。エラーがでなければOK

knife solo init chef-repo


これで自宅ではうまくいった。
ただ、会社だとrysncのエラーが出てNG。。
proxy関連でないかなぁと思いつつ、まだ解決できず。
解決できたら続きを書く予定。

vagrantをCentOS6.4にインストール 32bit と 64bit

最近話題vagrantを遅まきながら勉強しているのでメモ。

CentOS6.4にインストールした場合について。
vagrantのセットアップ手順は以下のサイトを主に参照。
http://dotinstall.com/lessons/basic_vagrant

基本は32bitベースでの説明。
64bitで手順が異なるところは追記。

virtualbox install

wget http://public-yum.oracle.com/public-yum-ol6.repo‎
mv public-yum-ol6.repo‎ /etc/yum.repos.d/
wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
yum -y install VirtualBox


追記:64bitだと、↑だけでは不足の模様。以下で再トライ。

cd /etc/yum.repos.d/
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
yum install VirtualBox-4.2

■vagrant install

yum  -y install rubygems
wget http://files.vagrantup.com/packages/7ec0ee1d00a916f80b109a298bab08e391945243/vagrant_1.2.7_i686.rpm
rpm -ivh vagrant_1.2.7_i686.rpm
mkdir vagrant_work
cd vagrant_work
vagrant init


追記:64bitだと、先にこのエラーが発生。不足しているモジュールを追加する。
#yum provides で探すと便利

/opt/vagrant/bin/../embedded/bin/ruby: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルやディレクトリはありません
yum provides ld-linux.so.2
glibc-2.12-1.107.el6.i686

ここまで行ったら以下のエラー。。

/opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/host.rb:39:in `block in initialize': undefined method `[]' for nil:NilClass (NoMethodError)

調べてみると、CentOSにvagarantを入れたときにバグがあるらしい。
ということで、vagrantのソースコードを修正。

cd /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/
vim host.rb
diff host.rb host.rb.org
39,40c39
<             #version_number = /Fedora.*release ([0-9]+)/.match(f.gets)[1].to_i
<             version_number = /[Fedora|CentOS].*release ([0-9]+)/.match(f.gets)[1].to_i
---
>             version_number = /Fedora.*release ([0-9]+)/.match(f.gets)[1].to_i
-[3298]% cat /etc/redhat-release

これで再度実行して成功。

vagrant init

LinuxでのJDK設定

 

とりあえずここに技術的な忘備禄をたんたんと書いていきます。

 

まずはLinuxでのJDKのインストール・設定を簡単にメモ

(ググれば出てくるけど)

  1. 無料Javaソフトウェアをダウンロード へいく
  2. サイトからJDKの.binファイルをダウンロード(ここでは jdk-6u13-linux-i586.binとする)
  3. ダウンロード完了後、ファイル属性を変更
    chmod 755 jdk-6u13-linux-i586.bin
  4. binファイルを実行し、規約を読んでyesと答えるとファイルが解凍される
    ./jdk-6u13-linux-i586.bin
  5. 解凍されたディレクトリの名前を変更し、適当なフォルダへ(ここでは/usr/local/配下)
    mv jdk-6u13 /usr/local/java/
  6. 環境変数JAVA_HOME」「CLASSPATH」を設定(.bashrcに設定)
    vi ~/.bashrc
    • 環境変数は以下のとおり(/usr/local配下においた場合はこんなかんじ)
      export JAVA_HOME=/usr/local/java
      export CLASSPATH=.:/usr/local/java/jre/lib:/usr/local/java/lib:/usr/local/java/lib/tools.jar:
  7. 実行用のPATHを通す
  8. 設定できているか確認するため以下コマンドをうつ
    java -version
  9. 下記が出力されればOK
    java version "1.6.0_12"
    Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
    Java HotSpot(TM) Server VM (build 11.2-b01, mixed mode)