記事一覧

メモ書き

設定のエクスポート方法。
設定ファイルじゃなくて、設定コマンド形式で。
/opt/vyatta/sbin/vyatta-config-gen-sets.pl

redmineその1

今日はredmineを入れます。
記事を記述時最新の1.0.2、1.0.3、1.0.4あたりを基準にしています。
redmineを通常インストールした後、以下のプラグインを入れます。

  • かんばん
  • Stuff To Do
  • Theme Changer
  • WorkTime
  • Code Review

また、以下のテーマを入れます。

  • farend basic
  • AdminsQ3 theme
  • ArchLinux Theme
  • Basecamp theme
  • libernixシリーズ
  • Modula Martini、Modula Mojito
  • Pixel Cookers
  • Squeejee
  • Watersky

メモなので色々足らない部分があると思いますが、気合で補完してください。

#Windowsの場合
#下記のLinux系のをベースに、色々入れてください。
#apacheいりません。
#mongrel_railsでキックします。


#Linux系の場合
#ルビーと周辺モジュールを入れる
aptitude install -y ruby ruby1.8-dev libopenssl-ruby librmagick-ruby make

#rubygemsを入れる
cd /usr/src/
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar zxf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb
cd /usr/bin/
rm gem
ln -s gem1.8 gem

#gitを入れる(テーマやプラグインのため)
aptitude install -y git git-core

#apache2を入れる
aptitude install -y apache2-prefork-dev g++ apache2 libcurl4-openssl-dev unzip

#SVNを入れる
aptitude install -y subversion

#sqlite3を入れる(適宜使いたいDBに差し替え)
aptitude install -y sqlite3 libsqlite3-dev libsqlite3-ruby
gem install sqlite3-ruby

#MySQLの場合こっち
#aptitude install -y mysql-server libmysqlclient-dev
#gem install mysql
#PostgreSQLの場合こっち
#aptitude install -y postgresql postgresql-dev
#gem install pg

#gemでモジュールをインストール
#ERROR: While executing gem ... (Gem::RemoteSourceException)
# HTTP Response 302
#と出るような場合、サーバーがお休みしているようです。
#しばらくしてから、再開しませう
gem install rack -v 1.0.1
gem install rails -v=2.2.2
gem install passenger

#apache2 - ruby/railsを結合する設定を入れる
passenger-install-apache2-module
#Apacheに結合させるので、1を選択します。
#インストール後、設定ファイルの記述についてメッセージが出るので従います。

#注意 バージョンが変わると下記数値部分が変化するので、必ず上記コマンドで出力された内容にしたがってください。 #

echo "LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so" >> /etc/apache2/conf.d/passenger
echo "PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15" >> /etc/apache2/conf.d/passenger
echo "PassengerRuby /usr/bin/ruby1.8" >> /etc/apache2/conf.d/passenger

#設置場所を準備する
#今回の想定は、各ユーザーのホームの配下に
#rubyアプリを置くスペースを設け
#その下にrailsアプリを置くスペースを設け
#その下にredmineを置くことにします。

#*新規の場合のみ*
mkdir /home/alleycat/ruby/
mkdir /home/alleycat/ruby/rails/

#railss設置場所に移動
cd /home/alleycat/ruby/rails/

#ダウンロード
#新しいredmineをダウンロードしてくる
#バージョン:1.0.2
# http://rubyforge.org/frs/?group_id=1850
wget http://rubyforge.org/frs/download.php/72627/redmine-1.0.2.tar.gz
tar zxf redmine-1.0.2.tar.gz
rm redmine-1.0.2.tar.gz

#バージョン:1.0.3
wget http://rubyforge.org/frs/download.php/73140/redmine-1.0.3.tar.gz
tar zxf redmine-1.0.3.tar.gz
rm redmine-1.0.3.tar.gz

#バージョン:1.0.4
wget http://rubyforge.org/frs/download.php/73457/redmine-1.0.4.tar.gz
tar zxf redmine-1.0.4.tar.gz
rm redmine-1.0.4.tar.gz

#ここは手作業
#旧ディレクトリから、filesディレクトリを持ってきて上書きしておく
#旧データベースから新データベースへデータを移しておく
#また、「必ず」バックアップを出力しておく
#SQLite3であれば、コピーしておく
#(バージョン毎にデータベースを別にした方が良いかも?)
#(DB名redmine0.9.6、redmine1.0.4みたいに)

#*更新の場合のみ*
#更新の場合既存のシンボリックリンクを消しておく
rm redmine

#/home/alleycat/ruby/rails/redmine
#で各ユーザー用のredmineにアクセスできるようにシンボリックリンクをはる
#バージョン変更毎に張り替えるようにすることで、
#他の設定を弄らなくても良いようにする
ln -s redmine-1.0.2 redmine
ln -s redmine-1.0.3 redmine
ln -s redmine-1.0.4 redmine

#redmine内に移動し、コマンドの準備をする
cd redmine

#設定ファイルを書き換えます
cp config/database.yml.example config/database.yml
cp config/email.yml.example config/email.yml
vi config/database.yml
#設定例は、全部書いてあります。
vi config/email.yml
#メールを使わないのであれば、コメントアウトにしてください。

#*新規の場合のみ*
#初期化 当然、新規のときのみです。
rake config/initializers/session_store.rb
rake db:migrate RAILS_ENV=production
rake redmine:load_default_data RAILS_ENV=production

#*更新の場合のみ*
#DBの差分更新 当然、更新のときのみです。
rake config/initializers/session_store.rb
rake db:migrate RAILS_ENV="production"

#プラグインを何かするときにつかうらしい(?)
ruby script/plugin install http://svn.rails-engines.org/engines/tags/rel_2.0.0/
mv vendor/plugins/rel_2.0.0 vendor/plugins/engines

#Pluginのインストール
cd vendor/plugins

#Plugin「かんばん」のインストール
gem install aasm
wget https://projects.littlestreamsoftware.com/attachments/download/958/redmine_kanban.tar.gz --no-check-certificate
tar zxf redmine_kanban.tar.gz
rm redmine_kanban.tar.gz

#微妙にプラグインの翻訳が不完全なので、追記・補完する
vi redmine_kanban/config/locales/ja.yml
kanban_text_color_help: "ヘッダーの色について"
kanban_text_normal_color: "標準 - 黄色"
kanban_text_assigned_to_me_color: "担当が自分 - 緑色"
kanban_text_behind_schedule_color: "期日目前 - 橙色"
kanban_text_overdue_color: "期限超過 - 赤色"
kanban_text_over_wip_color: "作業量超過 - ピンク色"
kanban_text_updated_issue: "Updated issue"
kanban_text_sync: "同期させる"
kanban_text_notice_sync: "看板を同期しました。"

kanban_label_canceled_pane: "取消とみなすステータス"
kanban_label_day_limit: "この項目に記載できる一日の最大チケット数"
kanban_text_canceled_requests: "取消"

#Plugin「Stuff To Do」のインストール
wget -O redmine-stuff-to-do.tar http://github.com/edavis10/redmine-stuff-to-do-plugin/tarball/v0.4.0 --no-check-certificate
tar zxf redmine-stuff-to-do.tar
rm redmine-stuff-to-do.tar
mv edavis10-redmine-stuff-to-do-plugin-ff30d62 stuff_to_do_plugin

#Plugin「Theme Changer」のインストール
wget http://bitbucket.org/haru_iida/redmine_theme_changer/get/tip.tar.gz
tar xzf tip.tar.gz
rm tip.tar.gz

#Plugin「WorkTime」のインストール
wget http://kusu.googlecode.com/files/redmine_work_time-0.0.61.tar.gz
tar xzvf redmine_work_time-0.0.61.tar.gz
rm redmine_work_time-0.0.61.tar.gz

#Plugin「Code Review」のインストール
wget http://r-labs.googlecode.com/files/redmine_code_review-0.3.1.zip
unzip redmine_code_review-0.3.1.zip
rm redmine_code_review-0.3.1.zip

#Plugin用のデータベースを適用
cd ../../
rake db:migrate_plugins RAILS_ENV="production"

#Windowsのばあい、サービスに登録しmongrel_railsでキックします(?)
#まず、既存があったら削除
mongrel_rails service::remove -N Redmine
#んで、登録
mongrel_rails service::install -N Redmine -c "C:/Program Files/ruby-1.8/bin/mongrel_service.exe" single -e production -p 80 -a 0.0.0.0 -l "log/mongrel.log" -P "log/mongrel.pid" -c "E:/redmine" -t 0 -r "public"
#ただし手動モードで登録されるので、
#設定→コントロールパネル→管理ツール→サービス→Redmine→自動
#として、起動時に自動で立ち上がってくるようにする。

#Themeインストール準備
cd public/themes

#Theme(farend basic)http://blog.redmine.jp/articles/farend-basic-theme/
wget http://blog.redmine.jp/assets/2010/03/23/redmine_theme_farend_basic_20100718.tgz
tar zxf redmine_theme_farend_basic_20100718.tgz
rm redmine_theme_farend_basic_20100718.tgz

#Theme(AdminsQ3 theme)http://adminsq3.blogspot.com/2010/02/cambiando-el-look-redmine.html
git clone git://github.com/rajkrish/libernix-redmine-ecogreen.git

#Theme(ArchLinux Theme)http://www.redmine.org/wiki/redmine/ThemeArchLinux
wget http://openpario.mime.oregonstate.edu/attachments/download/319/archlinux-theme.tar.gz
tar zxf archlinux-theme.tar.gz
rm archlinux-theme.tar.gz

#Theme(Basecamp theme)http://www.theill.com/stuff/redmine/
wget http://www.theill.com/stuff/redmine/themes/basecamp/stylesheets/application.css
mkdir -p basecamp/stylesheets
mv application.css basecamp/stylesheets

#Theme(libernixシリーズ)
git clone git://github.com/rajkrish/libernix-redmine-ecoblue.git
#git clone git://github.com/rajkrish/libernix-redmine-ecogreen.git AdminsQ3 themeでインストール済み
git clone git://github.com/rajkrish/libernix-redmine-ecoorange.git
git clone git://github.com/rajkrish/libernix-redmine-ecopurple.git
git clone git://github.com/rajkrish/libernix-redmine-ecored.git
git clone git://github.com/rajkrish/libernix-redmine-ecoyellow.git

#Theme(Modula Martini、Modula Mojito)http://www.modula.fi/2008/redmine-theme/
wget http://www.modula.fi/downloads/ModulaMartini.zip
unzip ModulaMartini.zip
rm -rf __MACOSX
rm ModulaMartini.zip
wget http://www.modula.fi/downloads/ModulaMojito.zip
unzip ModulaMojito.zip
rm -rf __MACOSX
rm ModulaMojito.zip

#Theme(Pixel Cookers)http://www.pixel-cookers.com/2010/03/05/theme-redmine-pixel-cookers/
wget -O pixel-cookers.zip http://www.pixel-cookers.com/downloads/Theme+Redmine+Pixel+Cookers+%281.0.x%29
unzip pixel-cookers.zip
rm pixel-cookers.zip

#Theme(Squeejee)http://www.redmine.org/wiki/redmine/ThemeSqueejee
wget http://download33.mediafire.com/y8e8ttwtwhog/lmmdozmyuuz/squeejee-0.2.0.zip
unzip squeejee-0.2.0.zip
rm squeejee-0.2.0.zip

#Theme(Watersky)http://www.redmine.org/wiki/redmine/ThemeWatersky
wget http://kosz-redmine-tools.googlecode.com/files/watersky_1.1.zip
unzip watersky_1.1.zip
rm watersky_1.1.zip

#/var/www/配下にシンボリックリンクを設置し、apacheの管理下に入れます。
cd /var/www/
ln -s /home/alleycat/ruby/rails/redmine/public alleycat_redmine

#シンボリックリンクがPassengerに渡る設定を記述します
echo "RailsBaseURI /alleycat_redmine" >> /etc/apache2/sites-available/alleycat_redmine

#apacheに読み込ませます
a2ensite alleycat_redmine

iSCSIその4

お久しぶりです。
いきてます。

さて、前回論理ボリュームを9つ作りました。
一つを動作確認してみましょう。

フォーマットを行い、マウントし、hdparmで速度を調べます。
mkfs.ext3 /dev/VolGroup00/lv01
cd /mnt/
mkdir lv01
mount /dev/VolGroup00/lv01 lv01 -t ext3
echo "TEST" > /mnt/lv01/test
cat /mnt/lv01/test
hdparm -Tt /dev/VolGroup00/lv01

/dev/VolGroup00/lv01:
Timing cached reads: 792 MB in 2.00 seconds = 395.73 MB/sec
Timing buffered disk reads: 162 MB in 3.02 seconds = 53.63 MB/sec

うーん、まぁまぁ?
マシンスペックにも依存しますね。

テストして満足したので、マウント解除。
umount /mnt/lv01

iscsitargetを導入し、iSCSIの接続を受け付けます。
aptitude install iscsitarget

設定ファイルを書いてiscsitargetの再起動をすると、公開されます。
IncomingUserとかOutgoingUserを設定すると、接続に認証を求めるようになります。
渡す値の一つ目がID、二つ目がパスワードの構成です。
下記の例だと、iscsiがIDでiscsi!がパスワードです。
なお、Target側のパスワードは12~16文字とされています。
そうしないと、クライアント側にてはじかれます。
あと、多分この設定ファイルの書き方(主にLunの辺りとか)は、あまり推奨されない気がします。
詳細は自己責任にて調べてくださいませ。
vi /etc/ietd.conf

IncomingUser iscsi iscsi!
OutgoingUser iscsi iscsi!

Target jp.co.alleycat.iscsi1:storage.lv01
Lun 0 Path=/dev/VolGroup00/lv01,Type=fileio
IncomingUser lv01 lv01!
OutgoingUser lv01 lv01!

Target jp.co.alleycat.iscsi1:storage.lv02
Lun 0 Path=/dev/VolGroup00/lv02,Type=fileio
IncomingUser lv02 lv02!
OutgoingUser lv02 lv02!

Target jp.co.alleycat.iscsi1:storage.lv03
Lun 0 Path=/dev/VolGroup00/lv03,Type=fileio
IncomingUser lv03 lv03!
OutgoingUser lv03 lv03!

Target jp.co.alleycat.iscsi1:storage.lv04
Lun 0 Path=/dev/VolGroup00/lv04,Type=fileio
IncomingUser lv04 lv04!
OutgoingUser lv04 lv04!

Target jp.co.alleycat.iscsi1:storage.lv05
Lun 0 Path=/dev/VolGroup00/lv05,Type=fileio
IncomingUser lv05 lv05!
OutgoingUser lv05 lv05!

Target jp.co.alleycat.iscsi1:storage.lv06
Lun 0 Path=/dev/VolGroup00/lv06,Type=fileio
IncomingUser lv06 lv06!
OutgoingUser lv06 lv06!

Target jp.co.alleycat.iscsi1:storage.lv07
Lun 0 Path=/dev/VolGroup00/lv07,Type=fileio
IncomingUser lv07 lv07!
OutgoingUser lv07 lv07!

Target jp.co.alleycat.iscsi1:storage.lv08
Lun 0 Path=/dev/VolGroup00/lv08,Type=fileio
IncomingUser lv08 lv08!
OutgoingUser lv08 lv08!

Target jp.co.alleycat.iscsi1:storage.lv09
Lun 0 Path=/dev/VolGroup00/lv09,Type=fileio
IncomingUser lv09 lv09!
OutgoingUser lv09 lv09!

iSCSIその3

今日はLVMを構成します。
まずは、LVMをインストールします。
aptitude install lvm2

モジュールをロードして、使用可能状態にします(?)
(・・・このコマンドなんで使うのだったっけかしら・・・)
modprobe dm-mod

RAIDディスクをVLM用に初期化します。
pvcreate /dev/md0
pvcreate /dev/md1

それぞれに、こんな返答があれば良いです。
Physical volume "/dev/md0" successfully created
Physical volume "/dev/md1" successfully created

LVMで使用可能状態になっているデバイス一覧を表示します。
pvscan
現在md0とmd1が使用可能になってるので、結果はこんな感じです。
PV /dev/md0 lvm2 [232.88 GB]
PV /dev/md1 lvm2 [232.88 GB]
Total: 2 [465.77 GB] / in use: 0 [0 ] / in no VG: 2 [465.77 GB]

ボリュームグループを作成します。
vgcreate -s 32m VolGroup00 /dev/md0 /dev/md1
Volume group "VolGroup00" successfully created

この状態でLVMで使用可能状態になっているデバイス一覧を表示するとこんな感じになります。
vgscan
Reading all physical volumes. This may take a while...
Found volume group "VolGroup01" using metadata type lvm2
Found volume group "VolGroup00" using metadata type lvm2

ボリュームグループを確認すると、こんな感じです。
vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 465.75 GB
PE Size 32.00 MB
Total PE 14904
Alloc PE / Size 0 / 0
Free PE / Size 14904 / 465.75 GB
VG UUID u73bU7-bwHx-I8fb-fnOI-RLP9-Jjhx-qoG2RL

ボリュームグループが出来たら、論理ボリュームを作成します。
50Gづつを9個、合計450G分作りました。
lvcreate -i 2 -L 50g -n lv01 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv02 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv03 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv04 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv05 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv06 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv07 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv08 /dev/VolGroup00
lvcreate -i 2 -L 50g -n lv09 /dev/VolGroup00

出来上がった論理ボリュームを確認します。
lvdisplay

--- Logical volume ---
LV Name /dev/VolGroup00/lv01
VG Name VolGroup00
LV UUID m18AoT-dsqz-dT0d-xevK-Ohxw-mSRF-QbR0qt
LV Write Access read/write
LV Status available
# open 0
LV Size 50.00 GB
Current LE 1600
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
こんな内容が、9つ分どどどっとでてきます。

ボリュームグループを確認すると、ちょっとだけ数値が変化してます。
vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 9
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 465.75 GB
PE Size 32.00 MB
Total PE 14904
Alloc PE / Size 14400 / 450.00 GB ← 論理ボリューム分使われた。
Free PE / Size 504 / 15.75 GB ← あまり
VG UUID u73bU7-bwHx-I8fb-fnOI-RLP9-Jjhx-qoG2RL

今日はココまで。
次は論理ボリュームをiscsiで公開します。
その先は、iscsiをマウントして使うのもあります。

iSCSIその2

まず、RAID1の構築
md0とmd1で作成します。
mdadm --create /dev/md0 -v --raid-devices=2 --level=raid1 /dev/sdb1 /dev/sdc1
mdadm --create /dev/md1 -v --raid-devices=2 --level=raid1 /dev/sdd1 /dev/sde1

構成を確認します。
cat /proc/mdstat

こんな感じです。
Personalities : [raid10] [raid1]
md1 : active raid1 sde1[1] sdd1[0]
244195904 blocks [2/2] [UU]

md0 : active raid1 sdc1[1] sdb1[0]
244195904 blocks [2/2] [UU]

デバイスのUUIDを確認します。
mdadm --detail --scan
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=d2b2b38c:a2839986:d3f63cad:8d7be3ce
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=2347dc27:b3112f23:d3f63cad:8d7be3ce

詳細を確認
mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Thu Mar 18 17:57:08 2010
Raid Level : raid1
Array Size : 244195904 (232.88 GiB 250.06 GB)
Used Dev Size : 244195904 (232.88 GiB 250.06 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Thu Mar 18 20:44:31 2010
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

UUID : d2b2b38c:a2839986:d3f63cad:8d7be3ce (local to host iscsi1.takeda.kit.co.jp)
Events : 0.4

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1

もう一つも確認
mdadm --detail /dev/md1
/dev/md1:
Version : 00.90.03
Creation Time : Thu Mar 18 17:57:28 2010
Raid Level : raid1
Array Size : 244195904 (232.88 GiB 250.06 GB)
Used Dev Size : 244195904 (232.88 GiB 250.06 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent

Update Time : Thu Mar 18 20:11:10 2010
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

UUID : 2347dc27:b3112f23:d3f63cad:8d7be3ce (local to host iscsi1.takeda.kit.co.jp)
Events : 0.4

Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1

設定情報を保存します。

mdadm -D --scan >> /etc/mdadm/mdadm.conf

今日はRAID二つ作っておしまい。
続きはまたじかい。

iSCSIその1

iSCSIを使ってみたいです。
でもiSCSIを搭載した筐体が高いです。
条件としてはこんな感じです。
・搭載可能HDD4台で、最大2台までのHDD故障に耐えうる筐体
 (RAID5/RAID6/RAID10)
・WEBインターフェースによる管理ができる
・ある程度の高負荷に耐えられる
HDD込みで、大体10万位の想定となります。

遊び(?)でやるには、ちと高いです。
とりあえずRAID構成のiSCSIが欲しかったので、あまっている古い機体にDebian乗せてiSCSItargetを動かすことにしました。

使用するマシンはIBM ThinkCentre S50 Smallです。
http://www-06.ibm.com/jp/domino04/pc/support/Sylphd12.nsf/jtechinfo/SYP0-031808B

メモリをとりあえず1G乗せてあります。
CPUは Intel(R) Pentium(R) 4 CPU 3.00GHz

HDDを4台乗せないとなりません。
不要な5インチCD-ROMドライブを撤去し、ここに2.5インチHDDを4台をマウンタを使用して乗せる事にします。
選択肢はほぼ一つですね。
DIR-1040SS
http://www.dirac.co.jp/pcicase/dir-1040ss.html
こちらを搭載します。

s50はsata非対応で・・・ってかそもそも内蔵HDDの増設には対応していませんので、M/Bにコネクタが足りません。
なので追加します。
M/Bが古くてPCIバスしかないので、製品選びに注意が必要です。

目に入ったのが、コレ
SATA2RI4-LPPCI
http://www.kuroutoshikou.com/products/serialata/sata2ri4-lppcifset.html
PCIバスに接続し、内蔵SATAポートを4つ増やしてくれます。
RAID機能は要りません。
BIOSアップデートで落としておいてください。

RAIDを落とすと、コレと同等になります。
価格はほぼ同じ程度で売っています。
SATA2I4-LPPCI
http://www.kuroutoshikou.com/products/serialata/sata2i4-lppcifset.html

OSはUbuntu 8.04 Hardy Heron を使用します。
予めインストールは済ませてある前提とします。
インストール手順は、どっか別のサイトを参考にしてください。

mdadmコマンドを使用して、ソフトウェアRAIDを構成します。
RAID10を構成しようかと思いましたが、mdadmのgrowがRAID10に対応していないためRAID1をRAID0で結合する構成とします。
RAID0はLVMにて行います。

2.5インチHDDは、一つ250Gです。
250GのHDD二つで構成されたRAID1二つをストライピングでまとめ、500GのHDDを構成します。
その500Gを10分割し50GづつのiSCSI領域を構成します。
50Gづつに分割したのは、気分です。
深い意味はありません。
一応50Gづつに細分化する事で使用領域制限し、「ちゃんと整理しろ」とそういう意味は込めています。
あと、複数のマシンのデータ領域として使用することも想定しています。

+---+--+--+--+--+--+--+--+--+
|50G|50|50|50|50|50|50|50|50|
+---+--+--+--+--+--+--+--+--+
|      LVM / Striping       |
+----=----=---+----=----=---+
| mdadm/RAID1 | mdadm/RAID1 |
+----=-+----=-+----=-+----=-+
|2.5HDD|2.5HDD|2.5HDD|2.5HDD|
+----=-+----=-+----=-+----=-+

HDDが接続され(システム用HDD1台とRAID用4台のHDD)、以下のように接続されています。
sda:システムHDD/IDE接続
sdb:2.5インチHDD/SATA2RI4-LPPCIのポート1に接続
sdc:2.5インチHDD/SATA2RI4-LPPCIのポート2に接続
sdd:2.5インチHDD/SATA2RI4-LPPCIのポート3に接続
sde:2.5インチHDD/SATA2RI4-LPPCIのポート4に接続

fdiskコマンドを使用して、
Linux raid autodetect
のPartitionを作っておきます。

そこから作業を始めます。
おっと、続きは次回・・・。

ネットワーク構成 その2

*OpenVPNのネットワーク
OpenVPNによる仮想ネットワーク上での構成は、こんな感じになります。
(ウチの脳内でこうであろうと思っているネットワーク)

             +--=---+
             |Server|
             |(Hub) |
             +--+---+
                |10.8.0.1
    +----=---=--+----=---=--+
    |0.x        |0.x        |0.x
+---+----+  +---+----+  +---+----+
|Client  |  |Client  |  |Client  |
|(vyatta)|  |(Remote)|  |(Remote)|
+---+----+  +----=---+  +----=---+
    |192.168.241.x
    +----=----=--+
    |241.x       |241.x
+---+----+  +----+---+
|開発環境|  |開発環境|
+--=--=--+  +--=--=--+

10.8.0.xのセグメント内に「192.168.241.xセグメントへの出口がある」というのを教え込んであるので、
このセグメントに接続すると241セグメント宛パケットは10.8.0.x内に入ります。
Client(vyatta)はこのパケットを受け取ると、自分の192.168.241.xへそれを流します。
Client(vyatta)の10.8.0.xから192.168.241.x間にはFWがあり、ポート番号でフィルタリングしています。
開発環境を使うにあたって必要なポートは3389番(Remote Desktop Protocolの標準?)のみにしています。
開発環境からClient(Remote)は見ることが出来ません。
通信方向(?)としては、OpenVPNからClient(vyatta)への一方通行です(応答はします)。
ファイル転送などをしたい場合、別途オンライン上にファイル転送可能なサーバーを立てなければなりません。
OpenVPN経由では、ファイル転送は認めないことになっています。
241セグメントからは、141セグメント上にある各種ネットワーク設備は使えます。

(注意)
リモートデスクトップはドライブを接続することでファイル転送が出来る機能があるので、
グループポリシー等を調整して拒否するようにしてください。
141セグメント上のネットワーク設備には自由にアクセスできるので、セキュリティーホールになります。
同様にクリップボード共有なども、セキュリティ状況により拒否するようにしてください。

リモートデスクトップによりデスクトップの画面操作のみが出来る というのが理想です。

*PPTPのネットワーク
PPTPによる仮想ネットワーク上での構成は、こんな感じになります。
(ウチの脳内でこうであろうと思っているネットワーク)

+----=---+  +----=---+  +----=---+
|Client  |  |Client  |  |Client  |
|(Remote)|  |(Remote)|  |(Remote)|
+---+----+  +---+----+  +---+----+
    |241.x      |241.x      |241.x
    +----=---=--+----=---=--+
                |
           +----+---+
           |Server  |
           |(vyatta)|
           +----+---+
                |
    +----=----=-+
    |241.x      |241.x
+---+----+  +---+----+
|開発環境|  |開発環境|
+--=--=--+  +--=--=--+

信頼できるネットワーク内に存在しているので、FW等は設定していません。
Windows標準のPPTP接続を使用します。
開発環境の操作は例によってRemote Desktopにて行います。
241セグメントからは、141セグメント上にある各種ネットワーク設備は使えます。

ココの部分

↑ ここ、タイトル文字があります。

その後ろにお魚さんの絵による仕切りがあります
ワイド液晶で見ると仕切り絵の長さが足らないため、右の方へ飛んでいってしまいます。

そして背景は白色で、タイトル文字色はF0FFFFというホボ白。

つまりワイド液晶で見ると、タイトルが見えないという事態に・・・。

なので応急処置で、文字色をいじってみました。
背景白色に合い、かつ、仕切り絵の藍色(?)に合うような微妙な色は難しいなぁ。

OpenVPN その2

vyattaでの作業です。
何らかの方法でvyatta.alleycat.co.jp.tarをアップロードしておいてください。

どこかにアップロードしてwgetしてくるなり、FileZillaやEmFTPでアップロードするなり。

コンソールでconfigureで編集モードになる前に、openvpnのファイルを展開しておきます。
mkdir openvpn
mv vyatta.alleycat.co.jp.tar openvpn/
cd openvpn
tar xzf vyatta.alleycat.co.jp.tar

次いで、openvpnクライアントとして設定をします。
configure
set interfaces openvpn vtun10
set interfaces openvpn vtun10 mode client
set interfaces openvpn vtun10 openvpn-option "--cipher aes-128-cbc"
set interfaces openvpn vtun10 protocol tcp-active
set interfaces openvpn vtun10 remote-host alleycat.co.jp
set interfaces openvpn vtun10 remote-port 11194
set interfaces openvpn vtun10 tls
set interfaces openvpn vtun10 tls ca-cert-file /home/vyatta/openvpn/ca.crt
set interfaces openvpn vtun10 tls cert-file /home/vyatta/openvpn/vyatta.alleycat.co.jp.crt
set interfaces openvpn vtun10 tls key-file /home/vyatta/openvpn/vyatta.alleycat.co.jp.key
commit
save

次いで、OpenVPN上から流れてくるパケットを制限します。
OpenVPN経由からは、リモートデスクトップ以外の接続は拒否する前提です。

set firewall name FROM-EXTERNAL description "Block Unwanted OpenVPN Traffic"

set firewall name FROM-EXTERNAL rule 10 description "Accept Established-Related Connections"
set firewall name FROM-EXTERNAL rule 10 action accept
set firewall name FROM-EXTERNAL rule 10 state established enable
set firewall name FROM-EXTERNAL rule 10 state related enable
set firewall name FROM-EXTERNAL rule 10 log disable

set firewall name FROM-EXTERNAL rule 20 description "Remote Desktop Access"
set firewall name FROM-EXTERNAL rule 20 action accept
set firewall name FROM-EXTERNAL rule 20 protocol tcp
set firewall name FROM-EXTERNAL rule 20 source address 10.8.0.1/24
set firewall name FROM-EXTERNAL rule 20 destination port 3389
set firewall name FROM-EXTERNAL rule 20 log disable
commit

set firewall name TO-ROUTER description "Traffic Destined for Router Itself"
set firewall name TO-ROUTER rule 10 description "Accept Established-Related Connections"
set firewall name TO-ROUTER rule 10 action accept
set firewall name TO-ROUTER rule 10 state established enable
set firewall name TO-ROUTER rule 10 state related enable
set firewall name TO-ROUTER rule 10 log disable

set firewall name TO-ROUTER rule 20 description "Accept ICMP Unreachable"
set firewall name TO-ROUTER rule 20 action accept
set firewall name TO-ROUTER rule 20 protocol icmp
set firewall name TO-ROUTER rule 20 icmp type 3
set firewall name TO-ROUTER rule 20 log disable
set firewall name TO-ROUTER rule 22 description "Accept ICMP Echo Request"
set firewall name TO-ROUTER rule 22 action accept
set firewall name TO-ROUTER rule 22 protocol icmp
set firewall name TO-ROUTER rule 22 icmp type 8
set firewall name TO-ROUTER rule 22 log disable
set firewall name TO-ROUTER rule 24 description "Accept ICMP Time-Exceeded"
set firewall name TO-ROUTER rule 24 action accept
set firewall name TO-ROUTER rule 24 protocol icmp
set firewall name TO-ROUTER rule 24 icmp type 11
set firewall name TO-ROUTER rule 24 log disable

#普通ルータへのOpenVPN経由SSHログインは認めないので、
#このブロックは無視してよいです。
set firewall name TO-ROUTER rule 50 description "SSH Access"
set firewall name TO-ROUTER rule 50 action accept
set firewall name TO-ROUTER rule 50 protocol tcp
set firewall name TO-ROUTER rule 50 source address 10.8.0.1/24
set firewall name TO-ROUTER rule 50 destination port ssh
set firewall name TO-ROUTER rule 50 log disable

#普通ルータへのOpenVPN経由HTTPSログインは認めないので、
#このブロックは無視してよいです。
set firewall name TO-ROUTER rule 52 description "HTTPS Access"
set firewall name TO-ROUTER rule 52 action accept
set firewall name TO-ROUTER rule 52 protocol tcp
set firewall name TO-ROUTER rule 52 source address 10.8.0.1/24
set firewall name TO-ROUTER rule 52 destination port https
set firewall name TO-ROUTER rule 52 log disable

commit
save

set interfaces openvpn vtun10 firewall in name FROM-EXTERNAL
set interfaces openvpn vtun10 firewall local name TO-ROUTER
commit
save

こんな感じかな?
これでまだテストしてないので、コマンド直すかも。

OpenVPN その1

openVPNサーバーを立てます。

施設AのUbuntuに立て、esxi上のvyattaからアクセスさせます。

Ubuntuサーバーでの作業です。
詳細は(面倒くさいので)省きます。
sudo aptitude install openvpn
cp -pr /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
vi vars

一番下の
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
を書き換え。
export KEY_COUNTRY="JP"
export KEY_PROVINCE="Tokyo"
export KEY_CITY="Setagaya"
export KEY_ORG="alleycat.co.jp"
export KEY_EMAIL="aaa@bbb.ccc"

mkdir keys
source ./vars
./clean-all

基本的に全部デフォルトで答えます。
./build-ca

基本的に全部デフォルトで答えます。
./build-key-server server

cp keys/ca.crt ../
cp keys/server.crt ../
cp keys/server.key ../

./build-dh
cp keys/dh1024.pem ../

ダミークライアントキーを作成
./build-key dummy
ダミークライアントキーを使用禁止指定
./revoke-full dummy
ダミークライアントキーの使用禁止情報を適用
cp keys/crl.pem ../

使用するクライアントキーの作成:パスあり
./build-key-pass cirno.alleycat.co.jp
./build-key-pass kanna.alleycat.co.jp

使用するクライアントキーの作成:パスなし
./build-key vyatta.alleycat.co.jp
>パスありにしたいけれどもvyattaでの設定方法が・・・。
>たぶん、openvpn-optionで指定するのだろうけれども。

*cirno 施設AのクライアントWindowsPC
*kanna 施設AのクライアントWindowsPC
*vyatta vyattaルータ

生成されたファイルのうち、
ca.crt
*.key
*.crt
が必要になります。
cd keys
tar czf vyatta.alleycat.co.jp.tar ca.crt vyatta.alleycat.co.jp.key vyatta.alleycat.co.jp.crt
tar czf kanna.alleycat.co.jp.tar ca.crt kanna.alleycat.co.jp.key kanna.alleycat.co.jp.crt
tar czf cirno.alleycat.co.jp.tar ca.crt cirno.alleycat.co.jp.key cirno.alleycat.co.jp.crt

vyatta.alleycat.co.jp.tarを施設Bへ持ち出し、何らかの方法でvyattaアカウントのホームの下に設置します。
kannaとcirnoは施設AのPCへ持ち込みます。

openvpnサーバーの設定ファイルはこんな感じになっています。
cd /etc/openvpn
grep -v -e "^[ \t]*[#;]" -e "^$" server.conf
port 11194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.241.0 255.255.255.0"
client-config-dir ccd
route 192.168.241.0 255.255.255.0
client-to-client
keepalive 10 120
cipher AES-128-CBC # AES
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
management localhost 7505
crl-verify crl.pem

よくわからない解説:
port:デフォルトポート番号は使用したくないという、なんとなくな考えです。
proto:施設Aのルーター(もしかするとISP)が、なんでかudpを上手く通してくれなかった。
push:「openVPNネットワーク上に、192.168.241.0/24への出口があります」と通知
route:同上
client-to-client:openVPNのクライアント同士は通信できます
management:telnetコマンドで、接続状況を確認できます

ページ移動