2014年8月31日日曜日

Windows7+VagrantでRails4の開発環境構築

Vagrant+Rails4での開発が思った以上に快適だったのでメモ。

まずは、この辺りからVertualBoxをダウンロードし、インストールします。




次に、Vagrantをダウンロードし、インストールします。
*古いブログとかで出てくるDLサイトは古いバージョンなので注意!



開発用ディレクトリを適当に作成し、コマンドプロンプトでそのディレクトリに移動します。
以下コマンドを実行。
vagrant box add centos6 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-i386-v20131103.box

他のOSや64bit版がほしいとかは、この辺りを参照して、DL用のURLを適宜セット。
centos6の部分はラベルなので、適当な名前をつける。

なお、DLはかなり時間がかかるので注意!

DLが完了したら、開発するディレクトリ上でvagrant init centos6を実行。(centos6の箇所はラベルなので以下略)

実行したディレクトリ内にvagrantfileというファイル(仮想マシンの動作を設定するファイル)が作成される。
vagrant upコマンドを実行すると、しばらく後仮想マシンが起動する。

TeraTermなどのSSHクライアントで、127.0.0.1:2222にアクセスする。


ID:PWはともにvagrant。鍵認証でも入ることが出来る。
(鍵ファイルの場所はvagrant initした際に画面に表示されている)



こんなかんじでログインできます。
sudo su -でrootになれます。

デフォルトで入っているRubyは1.8系と古いので、rbenvでサクッと最新を入れます。

まずはgitを入れます。(操作はvagrantユーザ)

sudo yum -y install git
rbenvを入れます。

git clone git://github.com/sstephenson/rbenv.git .rbenv
環境変数をセットします。

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ./.bashrc
echo 'eval "$(rbenv init -)"' >> ̃/.bashrc
セットした環境変数を読み込ませます。

source ̃/.bashrc
ruby-buildをインストールします。

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
インストール可能なリストを表示します。

rbenv install --list
今回はRuby 2.1.2をインストールします。

rbenv install 2.1.2
自動的にソースのDLとコンパイル、インストールが走ります。しばらく待ちましょう。

終わりましたら、忘れずrbenv rehashを打ちます。
毎回打つのは面倒なので、便利なgemを入れます。

gem install rbenv-rehash
vagrantは、/vagrantディレクトリと、windows上のvagrantfileが置いてあるディレクトリが共有されています。
なので、

ln -s /vagrant /home/vagrant/deverop

とシンボリックリンクを貼って、

cd deverop
rails new new-app
っとかすると、windows上でファイル編集しながら、vagrant上で動かせます。

最後に、vagrantでポートフォワードをする方法です。
vagrantfileに

  # config.vm.network "forwarded_port", guest: 80, host: 8080
という行があるので、その下に

config.vm.network "forwarded_port", guest: 3000, host: 3000

って感じで記述し、保存後、

vagrant reloadして、仮想マシンを再起動させると、仮想マシン上の3000ポートが、localhostの3000ポートにポートフォワードされます。


*Tips

仮想マシンにvagrantユーザでSSH接続ができなくなった場合、
virtualboxを起動し、該当マシンを強制電源断後、virtualboxで起動させ、
root/vagrantでログインし、復旧させます。








Windows7にオープンソースなメモアプリTomboyを入れてみた。

Ubuntuなどでデフォルトで入っているマルチプラットフォームなノートアプリTomboy
勿論Windowsでも動くのだが、久々にインストールしようとしたら地味にハマったのでメモ。


まずはgtk-sharp-2.12.22.msiをこの辺りから入手し、インストールします。
次に、Windwos版のTomboyを入手

後はインストールすればOK。

Tomboyには、DropBoxなどを経由して、ノートを共有する仕組みがあるのと、非常にシンプルなので、使い勝手が良いです。

EvernoteはLinuxで動かないし、互換アプリは出来がいまいちだし・・・

2014年8月3日日曜日

メモ:oVirtでホスト名を変更する場合。

要oVirt 3.3.0以上ですが・・・

とある事情による、oVirtのコントロールサーバとNFSサーバのホスト名を変更する羽目になり、地味に悩んだのでメモ。

oVirtは、内部DBにホスト名を持っています。なので単純にホスト名を変更するだけだと、oVirtからのリンクが古いままになったり色々不都合が出ます。
また、SSL接続する際の証明書が更新されないので、SSL接続時ホスト名が違うよと怒られます。


まぁやり方はここに書いてあるのですが、

ISO_DOMAINをoVirtサーバにしている場合は、いったんメンテナンスモードにします。

右クリックをして、破棄します。登録されているISOはすべて消えるので、再登録が必要になります。


DNSを新しいものに書き換える。(自分の場合は新旧残しました)
ホスト名を変更
以下のコマンドを叩き、リネームする。
[root@ovirt ~]# /usr/share/ovirt-engine/setup/bin/ovirt-engine-rename --newname=<新しいホスト名> --otopi-environment="OSETUP_RENAME/forceIgnoreAIAInCA=bool:'True' \
   OVESETUP_CORE/engineStop=bool:'True' \
   OSETUP_RENAME/confirmForceOverwrite=bool:'False'"
[ INFO  ] Stage: Initializing
          Welcome to the ovirt-engine-rename utility
          More details about the operation and possible implications
          of running this utility can be found here:
          http://www.ovirt.org/Changing_Engine_Hostname
[ INFO  ] Stage: Environment setup
          Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging-aio.conf', '/etc/ovirt-engine-setup.conf.d/10-packaging.conf', '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf']
          Log file: /var/log/ovirt-engine/setup/ovirt-engine-rename-20140803115019.log
          Version: otopi-1.2.0 (otopi-1.2.0-1.fc19)
[ INFO  ] Stage: Environment packages setup
[ INFO  ] Stage: Programs detection
[ INFO  ] Stage: Environment setup
[ INFO  ] Stage: Environment customization
[ INFO  ] Stage: Setup validation
[ INFO  ] The following files will be updated:
          /etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf
          /etc/ovirt-engine/imageuploader.conf.d/10-engine-setup.conf
          /etc/ovirt-engine/isouploader.conf.d/10-engine-setup.conf
          /etc/ovirt-engine/logcollector.conf.d/10-engine-setup.conf
          /etc/pki/ovirt-engine/cert.conf
          /etc/pki/ovirt-engine/cert.template
          /etc/pki/ovirt-engine/certs/apache.cer
          /etc/pki/ovirt-engine/keys/apache.key.nopass
          /etc/pki/ovirt-engine/keys/apache.p12
[ INFO  ] Stage: Transaction setup
[ INFO  ] Stopping engine service
[ INFO  ] Stopping dwh service
[ INFO  ] Stopping websocket-proxy service
[ INFO  ] Stage: Misc configuration
[ INFO  ] Stage: Package installation
[ INFO  ] Stage: Misc configuration
[ INFO  ] Generating post install configuration file '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf'
[ INFO  ] Stage: Transaction commit
[ INFO  ] Stage: Closing up
          --== SUMMARY ==--
          Rename completed successfully
          --== END OF SUMMARY ==--
[ INFO  ] Starting engine service
[ INFO  ] Restarting httpd
[ INFO  ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20140803115032-rename.conf'
[ INFO  ] Stage: Clean up
          Log file is located at /var/log/ovirt-engine/setup/ovirt-engine-rename-20140803115019.log
[ INFO  ] Stage: Pre-termination
[ INFO  ] Stage: Termination
[ INFO  ] Execution of rename completed successfully
こんな感じで、スクリプトが走ってホスト名が変更されます。
いったん削除したISO_DOMAINを再度登録しなおします。
その前に、前の残骸を削除する必要があります。
NFSでisoを公開していたディレクトリにある、__DIRECT_IO_TEST__と、ディレクトリを削除します。
新規ドメインから再度登録しなおします。

engine-iso-uploader -i ISO_DOMAIN upload *.iso
な感じで、isoファイルを再度アップロードします。


追記:
[ ERROR ] Failed to execute stage 'Misc configuration': invalid literal for int() with base 10: 'None'
ってなエラーでスクリプトがこけた場合、
engine-setupで再度セットアップしなおした後、再実行するとうまく行きます。