14 Oct 2013, 01:48

CentOS 6.4でC++11対応のg++ 4.7.2を使うためのメモ

c++11対応のg++をCentOSに入れてみた作業メモ。

yum installで取れるCentOSのデフォルトg++のバージョンは4.4.7(2013/10現在)。

% g++ --version
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)

なので、別のリポジトリからg++4.7.2を持ってきて、CentOSにインストールしてみた。

以下のコマンドで取得。

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo 
yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++

以下のパス配下にインストールされます。

 /opt/centos/devtoolset-1.1/root/usr/bin/

インストール完了です。

# /opt/centos/devtoolset-1.1/root/usr/bin/g++ --version
g++ (GCC) 4.7.2 20121015 (Red Hat 4.7.2-5)

パスを通します。

export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/g++

Trouble Shooting

[Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘people.centos.org’“

PYCURL ERROR 6 – “Couldn’t resolve host ‘people.centos.org’“というエラー発生。

# yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
http://people.centos.org/tru/devtools/6/i386/RPMS/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'people.centos.org'"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: testing-devtools-6. Please verify its path and try again

これは、ipv6が有効になっていることによる問題のようだ。

以下を参考にした。

ipv6を無効にする。

% emacs /etc/sysconfig/network
=> NETWORKING_IPV6=noを追加
% emacs /etc/modprobe.conf
=> 以下を追加
   alias ipv6 off
   alias net-pf-10 off
% /sbin/chkconfig ip6tables off
% shutdown -r 0

[Errno 14] PYCURL ERROR 22 – “The requested URL returned error: 404 Not Found”

“The requested URL returned error: 404 Not Found”というエラー。

% sudo yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
http://people.centos.org/tru/devtools/6/i386/RPMS/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: testing-devtools-6. Please verify its path and try again

これは、ftp.tsukuba.wide.ad.jpのミラーサイトには、testing-1.1-devtools-6のリポジトリが存在しないということ。

というわけで、ミラーサイトを変更してみます。理化学研究所に変更しました。以下にまとめました。

Reference

14 Oct 2013, 01:45

yum updateのミラーサイトを理化学研究所(理研)に変更したメモ

yum updateのミラーサイトを、いままでは筑波大学(ftp.tsukuba.wide.ad.jp)としていたのだが、ある不具合のため理化学研究所(ftp.riken.jp)をデフォルトのミラーサイトに変更してみた。理研のほうが、早いらしいといううわさも。

変更はCentOS-Base.repoを修正

変更は、/etc/yum.repos.d/CentOS-Base.repoを修正する。

  • mirrorlistをコメントアウト
  • baseurlを mirror.centos.orgからftp.riken.jpに変更。これをすべてのカテゴリで実施。

/etc/yum.repos.d/CentOS-Base.repo

/etc/yum.repos.d/CentOS-Base.repoの設定。そのままコピペでOk.

[tsu-nera]% cat /etc/yum.repos.d/CentOS-Base.repo

20 Jul 2013, 11:48

既存のCentOSのイメージファイルを使ってvagrant用boxファイルを作ったメモ

既存のvmをbox化する方法がワカラなかったので、自分でvargrant用boxを作成する方法を調べました。

ネットからisoを落としててきてカスタマイズするのは、veeweeやpackerといったツールがあるみたいだけれども、今回はあくまで既存のvmイメージをなんとかする。

公式サイトによると、以下の設定が必要

  • VirtualBox Guest Additionsのインストール(ファイル共有、ポートフォワードのため)
  • SSH の設定
  • Ruby & RubyGemsインストール(Chef and Puppetをインストールするため)
  • Chef and Puppet インストール(プロビジョニングのため)

ちなみに、一番参考になったのは、以下のサイト

[toc]

事前準備

使うのは、もともともっている自分のvmです。こんな歴史のCentOS 6.4 minimal構成。

VMの設定

rootパスワードをvargrantにする

root権限になって、変更

su
vagrant

vagrantユーザを作成する

vagrant userを追加して、adminグループに入れる。

useradd vagrant
passwd vagrant
groupadd admin
usermod -G admin -a vagrant

Permission設定

adminグループにパスワードなしで、sudoできるようにする。

visudo

以下を末尾に追記

vagrant ALL=(ALL) ALL

%admin ALL=(ALL) NOPASSWD:ALL

Defaults env_keep=”SSH_AUTH_SOCK”

requirettyの先頭に!をつける。

Default !requiretty

これをしないと、起動時にこんなエラーが出た。

[default] -- /vagrant
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mkdir -p /vagrant

VirtualBox Guest Additionsのインストール

ファイル共有やポートフォワーディングを利用するために、virtualbox guest additionをインストールする。

VirtualBox の [デバイス]-[GuestAdditionインストール]を選択してダウンロード。ダウンロードされたら、ファイルをマウントしてファイルを取り出す。

mkdir /mnt/cdrom
mount -r /dev/cdrom1 /mnt/cdrom
cd /mnt/cdrom/

VBoxLinuxAdditions.runというファイルがあるので、これを実行。

# 念のため
yum -y install gcc kernel-devel
sh VBoxLinuxAdditions.run

CentOSだとエラーしたけど、構わずReboot

Installing the Window System drivers     [FAILED]

これはエラーしても問題はない。以下のコマンドでインストールできたことを確認する。

VBoxControl --version
VBoxService --version

インストールが終わったら、CentOSを再起動する。

ソフトウェアのインストール

以下の5つが必要。

  • Ruby – Use the dev package so mkmf is present for Chef to compile
  • RubyGems – To install the Chef gem
  • Puppet – To install Puppet (also ensure that a ‘puppet’ group is present!)
  • Chef gem – For provisioning support (gem install chef)
  • SSH

Ruby & RubyGemを入れる

yum -y install ruby rubygems

Chef,Puppetのインストール

プロビジョニングのためにChefを入れる

gem install chef --no-ri --no-rdoc
// puppetはいらないかも
gem install puppet --no-ri --no-rdoc

SSH設定

githubにSSHのためのキーがおいてある。

自分でつかうだけならば、この鍵をつかう。boxを公開するきは、自分で鍵を作成する。

vagrantユーザになって、

 mkdir .ssh
 cd  .ssh
 curl 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' > authorized_keys
 chmod 0755 .ssh
 chmod 0644 .ssh/authorized_keys

これを叩くとssh高速化するらしい

echo 'UseDNS no' >> /etc/ssh/sshd_config

パッケージ作成

不要なファイルはできるだけ、パッケージ化前に削除しておくこと。

yum clean all

VMの電源を一旦OFFにする。

vagrant package でパッケージを作成する。

vagrant package --base "C:\home\TSUNEMICHI\VirtualBox VMs\Saru\Saru.vbox"

package.boxが作成される。(けっこう時間かかる)

作成できたか確認

実際に、boxをつかってみて、ちゃっとできたか確かめる。

vagrant box add my_box package.box
mkdir test_environment
cd test_environment
vagrant init my_box
vagrant up
vagrant ssh

接続できればOK.接続できなければ、sshの設定が怪しい。

共有フォルダの設定も確認。

touch test
vagrant ssh
less /vagrant

参考

15 Jul 2013, 00:47

仮想環境を破壊しまくっても大丈夫だ、問題ない。vagrantプラグイン『sahara』

vagrantのプラグイン、saharaを使ってVirtualBox上のCentOSを破壊しました。

photo credit: mariusz kluzniak via photopin

[toc]

saharaとは

saharaはvagrantのプラグインです。

saharaを使うと、以下のようなことがコマンドラインからできます。

  • 仮想マシンのスナップショットを作成
  • スナップショットから仮想マシンを復元

つまり、仮想マシンをボロボロのメタメタのケチョンケチョンに破壊しまくっても、

元に戻せるのです!( ̄ー ̄)

saharaのインストール

$ vagrant plugin install sahara
Installing the 'sahara' plugin. This can take a few minutes...
Installed the plugin 'sahara (0.0.15)'!

saharaの使い方

コマンドは以下の4つです。

  • vagrant sandbox on
  • vagrant sandbox commit
  • vagrant sandbox rollback
  • vagrant sandbox off

簡単な例

ここでは、 /usr配下をうっかり削除してしまい、復元しようと思います。

まずは、事前にvmを立ちあげときます。

$ vagrant up
サンドボックス有効化

saharaを利用するためには、sandboxモードを有効化します。

$ vagrant sandbox on
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

GUIからも、スナップショットが作成されたことが確認できます。


以下のフォルダに格納されました。

C:\home\TSUNEMICHI\VirtualBox VMs\centos_1373847520\Snapshots
スナップショットから以前の状態を復元

rollbackコマンドでsandboxモードを有効化した時点に戻ることができます。

$ vagrant sandbox rollback
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

それでは、ここでうっかりディレクトリ削除をしてみます。

$ vagrant ssh
$ su # root passwordは vagrant
$ rm -rf /usr

うひゃあ 。゚(゚´Д`゚)゚。

$ ls /usr
ls: cannot access /usr: No such file or directory

でも、大丈夫だよ (´・ω・)っ□

$ vagrant sandbox rollback
$ vagrant ssh
$ ls /usr/
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

よかったねー。(っ´∀`)っ


[//www.youtube.com/embed/uviNa0kyVX8?rel=0]

サンドボックス無効化

saharaをもう利用しない時は、sandboxモードを無効化します。ちなみに、けっこう時間がかかります。

$ vagrant sandbox off
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

スナップショットは以下に保存されています。もちろん、VirtualBoxからもスナップショットの管理ができます。

スナップショット作成

commitコマンドで現在の状態を保存します。これによって、rollbackで戻れる時点を変更できます。これはスナップショットを一旦削除するので、時間がかかります。

$ vagrant sandbox commit

内部的には、sandbox offしてonしているだけに見えます。

パフォーマンスについて

時間はどうなの?

sandbox onと sandbox rollbackは一瞬で終わります。sandbox offとsandbox commitスナップショットの削除時間が入るので、数分かかります。

とくに、sandbox rollbackが一瞬で完了するのは素晴らしいです。これなら、エンドツーエンドテストに十分応用可能なスピードです。

容量はどうなの?

スナップショットをたくさんとった時の気になる容量を確認しました。

CentOS 6.4 Minimal の元ファイルが1.5GBのスナップショットは 63.8 MB でした。このくらいならば、許せるレベル。僕の貧弱マシンでも大丈夫です。

参考

525A3%2525E3%252583%2525BC_2013-7-14_15-7-43_No-00.jpg

14 Jul 2013, 23:06

vagrantがスゲエ!コマンドラインからVirtualBoxを自由自在に操る方法

前回、VirtualBoxの導入をしました。

今回は、VirtualBoxをコマンドラインから操作することができるVagrantを使ってみようと思います。

[toc]

環境

  • VirtualBox 4.2
  • Vagrant 1.2.3
  • Windows 7 x64

Vagrantとは

Vargrantとは、仮想環境をコマンドラインから操作することができる、オープンソースRubyスクリプトです。

VirtualBoxやVMware Fusion/VMware WorkBench、EC2をコマンドラインから操作できます。VMware Fusionは有料(4000円くらい?)なので、無料のVirtualBoxで試してみます。

Vagrantのインストール

最新版をサイトからとってきてインストールします。

Windows番だとMINGWやRubyがまとめて梱包されていました(重い)。

Cygwinで Vagrantを利用するための設定

Cygwinから利用するためには、以下のおまじないが必要みたいです。

dos2unix /cygdrive/c/HashiCorp/Vagrant/bin/vagrant

詳しくはココ。

ちなみに,このページだと、.VirtualBoxフォルダがCygwinで実行した場合には、Cygwinホーム配下に作成されて、Windowsホーム配下のものと二重管理になるので、リンクを作成するといいよとかいてある。

自分の場合、特に不都合がでることはなかったが、念のため、以下も実施しておく。

コマンドプロンプトから管理者権限で、

cd C:\Windows\system32
mklink C:\cygwin\home\TSUNEMICHI\.VirtualBox C:\home\TSUNEMICHI\.VirtualBox
mklink "C:\cygwin\home\TSUNEMICHI\VirtualBox VMs" "C:\home\TSUNEMICHI\VirtualBox VMs"

TSUNEMICHIの部分はユーザ名なので、適当に読み替えてください。

Vagrantの使い方

ドキュメントはコチラ。

環境構築には、3コマンドで行けます。

$ vagrant box add base http://files.vagrantup.com/lucid32.box
$ vagrant init
$ vagrant up

以下、詳細です。

boxファイルの作成

Vagrantを利用するためには、まずboxファイルというものを用意する必要がある。boxファイルの作成方法は、以下の2つがあるようだ。

  • テンプレートをネットから落としてくる方法
  • boxファイルを自作する方法

自作する方法はまた別の機会に調べることにして、まずはテンプレートからサクッとvagrantを試してみます。

以下のサイトで、様々なOSのISOにvagrant利用環境を整えたboxが配布されている。例えば、CentOS 6.4 minimal(VartualBox)は以下。

インストールは、以下のコマンドを実行。

vagrant box add base http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

IOSイメージをダウンロードしてくるので、メチャクチャ時間がかかります。気長に待つこと。

Vagrantの初期化

boxファイルが作成できたら、VMを管理するためのディレクトリをつくって、ディレクトリでvagrantが動作するように初期化します。

% mkdir centos
% cd centos
% vagrant init base
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Vagrantfileが作成されます。

Vagrantの実行

いよいよ、vagrant実行です。コマンド数は少ないですが、ダウンロード時間でけっこうここに来るまで時間がかかった。。orz

いざ、実行!!( ´・∀・`)ノ

% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'base'...
 [0K[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.

ここで起動が止まってしまった。。。いろいろと苦労してBIOSのvt-d設定を有効化したら、起動できた!

VirtualBoxを見ると、起動中となっていることがわかります。ホントにコマンドラインから起動できた!!


vagrantの基本コマンド

コマンドの使い方はヘルプから確認できます。

$ vagrant -h

Usage: vagrant [-v] [-h] command []

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Available subcommands:
     box
     destroy
     halt
     init
     package
     plugin
     provision
     reload
     resume
     ssh
     ssh-config
     status
     suspend
     up

基本コマンドは以下。

  • vagrant init vagrant 初期化(Vagrantfile作成)
  • vagrant up vagrant 起動
  • vagrant ssh vagrant ログイン
  • vagrant halt vagrant 終了

ログイン

$ vagrant ssh
Last login: Sun Jul 14 21:24:25 2013
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$

vagrant 終了(一時停止)

$ vagrant halt
[default] Attempting graceful shutdown of VM...

コマンド数も少ないので、簡単に覚えられますね。動画も載せておきます。

[//www.youtube.com/embed/Pj8aEvXfaW8?rel=0]

容量は・・・

ちなにみ、気になる体重・・・じゃなかった、容量ですが、CentOS minimal構成でどのくらいになるのか、調べました。

vagrant initを実行したフォルダの容量を調べたら、4.51 KB・・・あれ?(´・д・`)

Boxファイルは、以下にありました。

$HOME/.vagrant.d/boxes/(ボックス名)/virtualbox/box-disk1.vmdk

容量は、524MB。軽い軽い。

そして、VMイメージですが、以下にありました。

C:\home\TSUNEMICHI\VirtualBox VMs

容量は、1.5GB。ふふふ、重い重い。

ちなみに、Boxファイルからではなく、普通にCentOS6.4 minimal構成のISOをインストールした場合の容量は、157MBだ。桁が1つ違う。。。

14 Jul 2013, 10:02

Windows上のCentOSをVmwarePlayerからVirtualBoxへ移行しました

以前、一生懸命頑張ってVmwarePlayerをインストールしましたが、Vargrantを使ってみたくてVartualBoxに移行することに決めました。今回も、フルパワーで頑張りました。

WindowsでVMware Player上のUbuntuを動かしてみたメモ | Futurismo


環境

  • ホストOS: Windows 7 64bit
  • ゲストOS: CentOS 6.4
  • 移行元: VirtualBox 4.2
  • 移行先: VMware Player 5.0.1

VirtualBoxのインストール

なにはともあれ、VirtualBoxをインストールします。以下からダウンロードします。OSよってダウンロードするバイナリが異なります。自分はWindowsを選択。

VirtualBoxはVmwarePlayerに比べると心なしか、UIがカッコ悪い気がします。


VirtualBoxの設定

仮想マシンの作成

『新規』を選択して、新規仮想マシンを作成。

  • バージョンを選択するところにCentOSの文字はない。Red Hatを選択します。
  • メモリ容量は適当に。ここでは1024MB
  • ハードドライブを追加しないにチェックを入れます。

仮想マシン完成!

仮想マシンの設定

次に,仮想マシンの設定をします。

ツールバーの『設定』 -> ストレージ -> コントローラ SATA -> 追加

を選択。ここで、vmwara playerの仮想ディスク(.vmdk)を追加します。


起動を選択!


簡単に立ち上がりました!と思ったら、マウス操作が効かなくなる。。

これは、2つあるCtrlキーのうちの右のほうを押すことで、マウスが復活する。Vmwareだと、Ctrl + Altだったので、これに変更する。変更は、ツールバー -> 詳細設定 -> 入力から可能だ。

文字化け対策

色々とコマンドを実行しようとしても ■ ■ ■ ■ と表示されて、うまく表示できない。以下で解決。えっ、Shift-jis??

export LANG=ja_JP.shift-jis

外部ネットワーク設定

まず、ネットワークが繋がらない。ネットワークをstopさせて再スタートさせると、以下のメッセージ。

/etc/init.d/network start
device eth0 does not seem to be present delaying initialization

古い移行前のvmware playerでの設定が残っているようだ。

このサイトの通りに設定しなおしたらネットワークにつなぐことができた。

ホストオンリーアダプタの設定

上記ネットワーク設定だと、外部のネットワークにはアクセスできたが、ホストOSからゲストOSにtelnetすることができなかった。

ホストOSとゲストOSの接続をするためには、ホストオンリーアダプタの設定が別途必要。

以下のサイトを参考に設定。

VIrtualBoxで仮想ネットワークを構築 | それなりブログ

eth1用にネットワーク起動スクリプトを作ったのがミソだった。

touch /etc/sysconfig/network-scripts/ifcfg-eth1
emacs /etc/sysconfig/network-scripts/ifcfg-eth1
========================
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.56.255
HWADDR=XX:XX:XX:XX:XX:XX
IPADDR=192.168.56.101
NETMASK=255.255.255.0
NETWORK=192.168.56.0
ONBOOT=yes
========================

このやりかただと、また

device eth1 does not seem to be present delaying initialization

が出てきたので、再度eth0と同じ手順で設定し直した。

最後に

ふう、大変だった。

もう、VMWare Playerにはもどれないだろうな・・。

09 Jun 2013, 05:22

CentOS上でSAMBAサーバを立ちあげてWindowsからアクセスするためのメモ

前回、VMware上のCentOSからCygwinのディレクトリをマウントすることを記事にしました。

Cygwin(Windows)をCentOSからmountする方法 | Futurismo

今回は、その逆。CentOSのディレクトリをWindowsにマウントします。CentOSにSambaを導入することで、実現しようと思います。

CentOSでのSambaの設定

CentOS側での設定を書きます。ここでは、home配下を共有することを目的とします。

# Sambaのインストール
yum -y install samba

# ユーザの追加。ここでは、tsu-neraユーザを
pdbedit -a tsu-nera

# パスワードを聞かれる
new password:
retype new password:
Unix username:        tsu-nera
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-3434940687-3012143288-2006372190-1000
Primary Group SID:    S-1-5-21-3434940687-3012143288-2006372190-513
Full Name:
Home Directory:       \\centos\tsu-nera
HomeDir Drive:
Logon Script:
Profile Path:         \\centos\tsu-nera\profile
Domain:               CENTOS
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    日, 09  6月 2013 04:07:43 JST
Password can change:  日, 09  6月 2013 04:07:43 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


 

#======================= Global Settings ==================
[global]
   # 文字コード設定 CentOS
   unix charset = UTF-8
  # 文字コード設定 Win
   dos charset = CP932
   display charset = UTF-8

# ----------------------- Network Related Options ----------
       # Widnows グループの設定 コンピュータのプロパティから調べる
        workgroup = WORKGROUP
 
        # Allow within local network
        hosts allow = 192.168.1. 127.

#============================ Share Definitions ==============
[homes]
        comment = Home Directories
        # ホームディレクトリをSAMBAで共有する
        path = %H
        browseable = no
        writable = yes

 

# Samba起動
bash-4.1# /etc/rc.d/init.d/smb start
SMB サービスを起動中:                                      [  OK  ]

# NMB起動
bash-4.1# /etc/rc.d/init.d/nmb start
NMB サービスを起動中:                                      [  OK  ]

# 起動時にサービスを起動するおまじない
chkconfig smb on 
chkconfig nmb on 

ファイアウォールの設定

SAMBAを利用するためには、tcp 139,445, udp 137,138のポートを開ける。 /etc/sysconfig/iptablesを編集する。

# for samba
 -A INPUT -p tcp --dport 139 -j ACCEPT
 -A INPUT -p udp --dport 137 -j ACCEPT
 -A INPUT -p udp --dport 138 -j ACCEPT
 -A INPUT -p tcp --dport 445 -j ACCEPT

 

service iptables restart で再起動する。

SELinuxの設定

ここでスゴイハマった。CentOSにはSELinuxというセキュリティ強化用ソフトがあって、この設定をいじらないと、SAMBAでhomeディレクトリ配下を共有できない。(smb.confの初めにほうにも書いてあった)以下のコマンドを実行

setsebool -P samba_enable_home_dirs on

このコマンド実行は時間がかかる。気長に待つこと。

Windowsでアクセスしてみる

(Windows) + r でファイル名を指定して実行を起動。

\(サーバのIP)(ユーザ名)

を入力する。パスワードが求められたら、パスワードを入力する。アクセス出来れば成功。

接続が確認できたら、ネットワークドライブの割り当てをしとく。

参考

08 Jun 2013, 15:22

CentOSに rbenv 経路で Ruby 2.0.0-p195を入れようとしたら、エラー

CentOSに rbenv 経路で Ruby 2.0.0-p195を入れようとしたら、エラーした。

導入した手順は過去記事参照。

Cygwin上のRuby1.9をrbenvで最新版Ruby2.0にバージョンアップしたの巻 | Futurismo

installing default gems:      /home/tsu-nera/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
                              bigdecimal 1.2.0
                              io-console 0.4.2
                              json 1.7.7
                              minitest 4.3.2
                              psych 2.0.0
                              rake 0.9.6
                              rdoc 4.0.0
                              test-unit 2.0.0.0
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

BUILD FAILED

Inspect or clean up the working tree at /tmp/ruby-build.20130517183130.16922
Results logged to /tmp/ruby-build.20130517183130.16922.log

Last 10 log lines:
installing default gems:      /home/tsu-nera/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
                              bigdecimal 1.2.0
                              io-console 0.4.2
                              json 1.7.7
                              minitest 4.3.2
                              psych 2.0.0
                              rake 0.9.6
                              rdoc 4.0.0
                              test-unit 2.0.0.0
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

openssl がないぞと言われるが、インストールはされている。

OpenSSL 1.0.0-fips 29 Mar 2010

調べてみると、libssl-devなるものが必要なようだ。

Installing Ruby 2.0.0-p0 using Rbenv on Ubuntu 12.04.2 LTS – Ruby Forum

CentOSでは、openssl-develに当たるものがそれっぽいので、インストール。

sudo yum -y install openssl-devel

これでうまく行った(・∀・)

08 Jun 2013, 11:16

Cygwin(Windows)をCentOSからmountする方法

はじめに

Cygwinを今までつかっていたけれども、VMware上のCentOSにtelnetしたほうがよいのではと最近考え始めた。

その理由は、Cygwinをつかっていると、

  • カスタマイズしすぎたzshやemacsの起動が遅い
  • screenのデタッチ後に作業を保存されない

vmware playerならば、作業をそのまま保存してサスペンドするのでこの課題を解決できる。

さて、CygwinからVM上のCentOSにお引越ししようとおもったけれども、またCygwinに戻ってくるかもしれないと思った。なので、CentOSからCygwinのフォルダをマウントしてしまえば良いのだということに気づいた。

というわけで、CentOSからmountコマンドでCygwinをマウントする。

CentOSでmountを使うための設定

Windowsの共有フォルダはSMBプロトコルによって除くことができる。CentOSからSambaを利用するためには、mount.cifsというコマンドを利用するらしい。というわけで、インストールする。

yum -y install samba-client

Windowsでmountされる設定(フォルダの共有設定)

次に、Windows側でCygwinの自分のフォルダを共有ファイルに設定する。

C:\cygwin\home(ユーザ)

のフォルダを右クリックして、

  • プロパティ -> 共有 -> 共有 -> 共有

を選択。これで共有が開始される。次に、

  • 詳細な共有 -> アクセス許可

を選択して、共有を許すユーザを追加する。ログインしているユーザを追加すればよい。

次に追加したユーザにフルコントロール権限を与える。これで読み書きできる。

skitch

CentOSからmountコマンドを実行する

マウントするためには、rootユーザである必要がある。

# mount するディレクトリ作成
mkdir -p /mnt/cygwin

# mount する。
mount -t cifs -o user=TSUNEMICHI,password=********* //192.168.1.101/TSUNEMICHI /mnt/cygwin

mount -t cifsで、内部的に mount.cifsコマンドに置き換えられる。

-oがオプション

  • usr ・・・Windowsのユーザ名
  • password Windowsのパスワード
  • //(WindowsのサーバIP(ipconfigで調べる)/共有フォルダ名
  • /mnt/cygwin ・・・ CentOS側のマウントディレクトリ

アンマウントするには、umount /mnt/cygwinでよい。

終わりに

本当は、別の目的で調べていた。

Jenkinsからビルドサーバにビルドを依頼しようとおもった時に、sshを利用するのではなくて、ビルドサーバのディレクトリをCIサーバにマウントしてしまえばいいんじゃねと思った。

しかし、この方法は一人で使うにはいいけれども、ユーザ管理や運用を考えた時にはJenkinsユーザにCIサーバのディレクトリ構造まで意識させる必要がある気がしたので、やめた。

参考

19 May 2013, 10:20

CentOS 6.4にJavaとJenkinsをインストールして設定する
SnapCrab_NoName_2013-5-19_19-6-4_No-00.png

CentOSにJenkinsサーバを導入する手順をまとました。この公式手順にしたがいます。

Installing Jenkins on RedHat distributions – Jenkins – Jenkins Wiki

環境

  • CentOS 6.4(ただし、Windows上のVMware Playerで動作している)
  • Jenkins 1.515
  • Java 1.7.0

Javaのインストール

JenkinsはJavaで動作するので、Javaが入っていない場合は、先に入れます。自分の場合は、入ってなかったので、入れました。

ちなみにここで注意が必要。CentOSのデフォルトjavaではJenkinsは動作しないらしい。Sun公式Javaと互換性のあるもの(Sun-compatible)が必要か。

すでにCentOS用のJavaが入っている場合は、削除してJavaを入れなおす。Sunと互換性のあるJavaを入れなおす。一番簡単な方法はjava-1.6.0-openjdkを入れること、と書いてある。記事が古そうなので、1.7を入れる。

sudo yum install java-1.7.0-openjdk

インストールできたか確認。

java -version
java version "1.7.0_19"
OpenJDK Runtime Environment (rhel-2.3.9.1.el6_4-i386)
OpenJDK Client VM (build 23.7-b01, mixed mode, sharing)

関係ないけど、Windowsに導入した以下の記事も参考。いろいろ雑学がのってます。

Java JDK インストール方法まとめ(Windows) | Futurismo

Jenkinsのインストール

公式HPにそってコマンドを叩くだけの簡単なお仕事。wgetも入れておくこと。

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum -y install jenkins

簡単かとおもったが、エラーした。。。

 Downloading Packages:
http://pkg.jenkins-ci.org/redhat/jenkins-1.515-1.1.noarch.rpm: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.


Error Downloading Packages:
  jenkins-1.515-1.1.noarch: failure: jenkins-1.515-1.1.noarch.rpm from jenkins: [Errno 256] No more mirrors to try.

以下のサイトを頼りに解決方法を探す。

CentOS6.2にJenkinsをインストールする手順 | mawatari.jp

rpmで直接インストールします。これでOK.

wget http://pkg.jenkins-ci.org/redhat/jenkins-1.515-1.1.noarch.rpm
sudo rpm -ivh jenkins-1.515-1.1.noarch.rpm

さあ、Jenkinsさん。Welcome to CentOS!

sudo /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]

# 起動とともにJenkins起動するおまじない
sudo /sbin/chkconfig jenkins on

Windows上のブラウザからアクセスしようとするが・・・アクセスできないお(´・ω・`)

http://192.168.118.130:8080/

Jenkinsの設定

Jenkinsのデフォルトポートは8080なので、ファイアウォールの設定でポート8080を開ける。設定ファイル /etc/sysconfig/iptablesを編集する。

$ sudo emacs /etc/sysconfig/iptables

以下の一行を追加する。ただし、COMMITの上に追加すること。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

ファイアウォールの再起動を実施

$ sudo service iptables restart
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]
iptables: ファイアウォールルールを適用中:                  [  OK  ]

Jenkins氏、北朝鮮より、間違えた、CentOSより来訪。

SnapCrab_NoName_2013-5-19_19-6-22_No-00.png

参考