いよいよ初期データと作ります。
# smbldap-populate -a admin -b Guest
この時もしエラーが出無かったら、domain adminのパスワードを聞かれるので2回入力し、控えておく。
もしエラー出たら、
# service ldap stop
# rm -f /var/lib/ldap/*
# cp -p /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# service ldap start
エラー時の処理はここまで。
ユーザとグループを作成します。
# smbldap-useradd -a XXXX
デフォルトの所属グループは”Domain Users”になります。
# id ユーザ名
とすると、uid, gid, 所属グループが表示されます。
# ldapsearch -x -b "ou=Users,dc=kinryokai,dc=net" "(uid=*)"
をすると、全ユーザのデータが表示されます。
グループは# smbldap-groupadd グループ名
で作りますが、私は作りませんでした。
ウインドウからsambaを使うにはコンピュータをldapに登録する必要がありますので、
# smbldap-useradd -W コンピュータ名
で全てのwindowを使用しているコンピュータを登録して下さい。
# ldapsearch -x -b "ou=Computers,dc=kinryokai,dc=net" "(uid=*)"
で登録したコンピューターが表示されます。
コンピュータをldapから削除する時は smbldap-userdel コンピュータ名$ とコンピュータ名の後に$を付けて削除する。
必要なdirectoryを作る
# mkdir /samba
# mkdir /samba/profiles
# mkdir /samba/netlogon ← 今回は使わないが作っておく。
SIDの取得
# net getlocalsid
で表示される S-1-5-21- から始まるものをコピーしておく。
smbldap.confの設定
# gedit /etc/smbldap-tools/smbldap.conf
SID="S-1-5-21-35xxxx1177-1xxxx8663-36xxxx3110" ← 先ほどコピーしたSIDを貼り付ける
#sambaDomain="DOMSMB" ← コメントアウト
sambaDomain="kinryokai" ← 追加
slaveLDAP="127.0.0.1" ← 右辺を変更
masterLDAP="127.0.0.1" ← 右辺を変更
#ldapTLS="1" ← コメントアウト
ldapTLS="0" ← 追加
CA certificate関係は使わないのでコメントアウト
# CA certificate
# see "man Net::LDAP" in start_tls section for more details
#cafile="/etc/smbldap-tools/ca.pem"
# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
#clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.info.pem"
# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
#clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.info.key"
suffixを追加
#suffix="dc=iallanis,dc=info" ← コメントアウト
suffix="dc=kinryokai,dc=net" ← 追加
パスワードの有効期間を無期限に
#defaultMaxPasswordAge="45" ← #を追加しコメントアウト
SAMBA Configuration部分の変更
userSmbHome="\\PDC_smb\%U" ← 右辺を変更、PDC_smbの部分は smb.conf の netbios name に合わせること
userProfile="\\PDC_smb\profiles\%U" ← 右辺を変更、PDC_smbの部分は smb.conf の netbios name に合わせること
#mailDomain="iallanis.info" ← コメントアウト
mailDomain="kinryokai.net" ← 追加
smbldap_bind.confの設定
# gedit /etc/smbldap-tools/smbldap_bind.conf
slaveDN="uid=admin,ou=Users,dc=kinryokai,dc=net"
slavePw="xxxxxx"
masterDN="uid=admin,ou=Users,dc=kinryokai,dc=net"
masterPw="xxxxxx"
パスワードはldapのパスワードを記入。スレーブのldapが無くても両方に同じものを設定する。
# gedit /etc/samba/smb.conf ← smb.confを設定します。
[global]にある下記のものを自分に合わせる。
workgroup = kinryokai ←ワークグループとして使用する名前
server string = Smb Svr ←このサーバーの名前
netbios name = PDC_smb ←window側から見えるサーバーの名前
windowからの見え方(マイコンピュタにあるZドライブはネットワークドライブの割り当てをしている)
-- Standalone Server Options --にある
; security = user ← コメントアウトしておく
; passdb backend = tdbsam ← コメントアウトしておく
これは同じ設定が-- Domain Controller Options --にあり、設定がバラけて解りにくくなるため。
-- Domain Controller Options --にある
security = user ← コメントアウトを外す
passdb backend = ldapsam:ldap;//localhost ← コメントアウトを外し、右辺を変更
注意:ldapの後ろは;にしてあるが、本当は:(コロン)、ここを:で記入すると、このwebのCMSであるxoopsが勝手にリンクと勘違いし、リンクを張るので変更してある。
下記を追加(このうち一部はオリジナルのsmb.confに;でコメントアウトしてあったかも?)
domain master = yes
domain logons = yes
preferred master = Yes
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
guest account = Guest
os level = 64
wins support = no
ldap suffix = dc=kinryokai,dc=net
ldap machine suffix = ou=Computers
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap admin dn = uid=admin,ou=Users,dc=kinryokai,dc=net
ldap passwd sync = Yes
dos filetimes = Yes
dos filetime resolution = Yes
add user script = /usr/sbin/smbldap-useradd -m '%U'
delete user script = /usr/sbin/smbldap-userdel -r '%U'
add group script = /usr/sbin/smbldap-groupadd -p '%g'
delete group script = /usr/sbin/smbldap-groupdel '%g'
add user to group script = /usr/sbin/smbldap-groupmod -m '%U' '%g'
delete user from group script = /usr/sbin/smbldap-groupmod -x '%U' '%g'
set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%U'
add machine script = /usr/sbin/smbldap-useradd -w '%U'
preferred master,dos charset,os levelなどは-- Browser Control Options --に記入すべきだと思いますが、これも設定がバラけるのでこのようにしております。
logon path = \\%L\profiles\%U ← コメントアウトを外す。profiles の p は大文字を小文字に
== Share Definitions ==は下記のように変更
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
[profiles]
path = /samba/profiles
browseable = no
guest ok = yes
read only = No
profile acls = yes
create mask = 0600
directory mask = 0700
# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff
[Data]
comment = Data directory
path = /Data
public = yes
writable = yes
printable = no
write list = aaa bbb ccc右辺はダミー
ここで恥を、printableとはデーターをプリントできるかどうかの設定だと思って[Data]セクションを printable=yes にしたら、windowから見るとDataがプリンタになってしまった。printableとはprinterかどうかの設定だったのですね!!
sambaにadminのパスワードを設定する
# smbpasswd -w XXXXXX ← 設定するパスワード
Setting stored password for "uid=admin, ou=Users, ..... in secret.tdb と表示される(一部省略)
今までは web server(mongrel)を立ち上げるのにターミナルを使い、そこで rails アプリケーションのルートに移ってから $ ruby script/server で走らせていたけど、サーバーの立ち上げ時に走っていて欲しいので、/etc/rc.d/rc.local の最後に
/usr/local/bin/mongrel_rails start -d -e development -c /Rails/report -p 3000 を記入する。
-d はdeamonとして走らせる。
-e はdevelopment、productionなどの指定
-c は rails application のルート
-p はポート番号
これで再起動し、アプリケーションをテストすると、redirectする所で、You are being redirected. と表示され、実際のページにredirectされない。但しredirectの部分がlinkになっており、そこをクリックするとリダイレクトされるべきページが表示される。
ググッて見ると http://gist.github.com/471663 に解決があった。
ここのダウンロードをクリックし、gist471663-***.tar.gz(あまりに長いので途中を省略)をダウンロードし、解凍すると、mongrel.rbというファイルが出来るのでこの2行目(1行目は空行)を
if Rails.version == '2.3.8' && Gem.available?('mongrel', '~>1.1.5') && self.class.const_defined?(:Mongrel)
に変更して、rails application のルートの config/initializer にmongrel.rbとして保存し再起動すると直った。
注意:mongrelは1ポート1プロセスなので、誰かがアクセスしていると他の人は使えない。このためには mongrel_clusterをインストールすればいい。今は開発中なのでいいが、production移行時にはインストールせねば!!
# cp -p /usr/share/doc/samba-3.0.33/LDAP/samba.schema /etc/openldap/schema ← schemaをコピーをしておく(リンクでもよい)。
# cp -p /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG ← DB_COMFG をコピーしておく
rootpwの設定のため
$ slappasswd
New password: ← 使いたいパスワードを入力
Re-enter new password:← 確認のための再入力
{SSHA}Ygqn9Xplu71AHH7dSS7DH34dHtSzm36hwxO ← これをコピーして置き、後で貼り付ける。
*/etc/openldap/slapd.confの設定
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema ← 追加
#############################################
# ldbm and/or bdb database definitions
#############################################
database bdb
suffix "dc=kinryokai,dc=net" ← 自分の環境にあわせる ie "dc=ABC,dc=co,dc=jp"
rootdn "uid=admin,ou=Users,dc=kinryokai,dc=net" ← 自分の環境にあわせる
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {SSHA}Ygqn9Xplu71AHH7dSS7DH34dHtSzm36hwxO ← コメントを外してコピーしていたものを貼り付け
# rootpw {crypt}ijFYNcSNctBYg
# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
index sambaGroupType eq ← 追加
index sambaSID eq ← 追加
index sambaSIDList eq ← 追加
index uniqueMember eq ← 追加
# service ldap start
slapd の設定ファイルをチェック中: config file testing succeeded [ OK ]
slapd を起動中: [ OK ]
# chkconfig ldap on
authconfig関係の設定
# authconfig-tui
をすると下記の画面が出ますので画面の様に設定(もちろんドメインは変更して)
参考にしたWEBhttp:\\lab.tricorn.co.jp/toda/2294、http://lab.tricorn.co.jp/toda/2477、このリンクはその2と3(その1は説明のみ)
*smbldap-toolsをインストールするために http://centossrv.com/rpmforge.shtml を参考にしてrpmforgeリポジトリを導入しておく。
*必要なプログラムのインストール
# yum -y install nss_ldap samba openldap openldap-servers smbldap-tools
2010年4月19日(月)悪夢が襲ってきました...といっても自分が悪いのですが。この日、サーバーに設置してあるデジタル電圧計の5Vが5.4Vに上がっていましたので、5Vラインを少し下げようと負荷(もちろんコンピュータ)を付けたまま、半固定VRを調整ししていました。(この電源は新しく製作したもので、設置前に負荷をかけ5Vに調整していましたが、この調整が全負荷で行った関係で、実際は全負荷がかかっていないので電圧が高くなっていた。)これって安定化が悪すぎ!!
この電源は3Aのチョッパ型のSW電源モジュールを強引にパラレルにし、最大6Aをとれる仕様ですが、この2つのSWモジュールのバランスを取るために半固定のVRを少しずつ可変し両方から、ほぼ同じ電流が流れるように調整しなくてはならず。やりにくかったのですが、この時、ミスって片方のSWを壊し、この回路が導通し(つまり入力の24Vとショートした)5Vラインが異常に高くなりました。!!!
壊れた物:ほぼ全部
マザーボード、7台の2.5インチハードディスク、1台のSSD,CPU、デジタル電圧・電流計
壊れなかった物
メモリー2GBx4個、Raidボード(highpoint3510) これらは5Vを使っていない見たい。とDVDドライブこれが壊れなかったのは、単なる耐性の問題?
この中で一番高いのはhighpointの3510ですが、1番困ったのは、ハードディスクとSSDが壊れたこと
このコンピューターはデスク4台で(SSDをふくむ)XENを使い仮想コンピューター三台を動かし、その内の1台で別のRAID5構成(320GBx4台=960GB)のディスクにこの3台のdomainUとdomein0及び別のWin XPのバックアップをしていたのですが、肝心のバックアップディスクも同じ5Vラインを使っていたので昇天し、結局オリジナルもバックアップも無い状態になってしまい、バックアップの意味が無くなりました.
という訳で、今はバックアップ用のコンピューターを物理的に別のコンピュタにし、バックアップする時間に電源が入るようにし、バックアップ後、電源を落とすように考えています.現在は実験段階ですが、近々結果を御報告します.
2010年5月12日追記
xenカーネルは休止などをサポートしてないみたい。普通の5.4カーネルを別のコンピュータに入れて見たけどハイバネートが途中で止まる。とりあえず今はバックアップに使う4台の2.5インチハードデスクの電源を別の5Vにして、運用中(下の写真の5V別と書いてあるモジュール)。私が使っている日立の7K320シリーズは5V 800mAとなっていて4台だと3.2Aになる。SWモジュールの最大電流は3Aで少し足りない。800mA流れるのは多分ブート時のデスクが回転し始める(スピンアップ)時の電流だと勝手に解釈し、raidコントローラーの3510のほうでスピンアップを2台ずつする設定にして逃げてある。本当は電流を測るといいのだけれど、その際また壊しそうなのでやめている!!
ある日から突然 warning: trouble injecting bounce message, will try later がログに記録されるようになり、/var/log/maillog が巨大になっていた。このエラーは1分間に30回くらい記録されている。ググるとパーミッションエラーが発生しているらしい。
# for i in /var/qmail/queue/mess/*; do chown qmailq:qmail $i/*;done
をすると以降エラーはでなくなった。
11月初旬に突然logのrotateが止まり、ログが肥大していた。
logrotate.conf等を見直してみたが正しいみたい。
マニュアルでロテートしてみる
# /usr/sbin/logrotate /etc/logrotate.conf をすると
error: conman:21 error verifying olddir path /var/log/conman.old/: No such file or directory
と表示された。conmanってなんだ?? 調べてみるとリモコン用のプログラムみたい。デフォルトでは起動していないし、使う予定もなさそうなので/var/log/conman.old/を作るより /etc/logrotate.d/ にあるconmanを削除し
# /usr/sbin/logrotate /etc/logrotate.conf
をするとエラーが無くなった。
注意:この時apacheは古いログを使いつづけるみたい。apacheを
# service httpd graceful
でスタートし直すと新しいaccess_log を使うようになった。
(それまではaccess_log.1に書き込んでいた.)
以前に作ったrailsのアプリケーションをコピーして使えるようにする。
このアプリケーションは will_paginete と paginating_find を使っていたのでインストールする。注:will_paginate は mislav-will_paginate に名前が変わっている
mislav-will_pagineteのインストール
# gem sources -a http://gems.github.com/
# gem install mislav-will_paginate
次にpaginating_findをインストールするが、その前にアプリケーションのルートDIRに移っておく
# cd /Rails/report
# ruby script/plugin install http://svn.cardboardrocket.com/paginating_find
# cd
rails2.2位からmysqlのドライバーが入らなくなったので入れる
# yum -y install mysql-devel
# gem install mysql -- --with-mysql-config
Successfully installed mysql-2.7
1 gem installed
の後に、大量の No definition for xxxxxxxx が出たが、大丈夫見たい
mysql dataの復元
古いrails applicationが入っているサーバーの方でmysqldが走っているのを確認して
$mysqldump -A -u root -pパスワード > SqlAllData.sql
-pとパスワードの間にはスペースを入れてはいけない。
として、全databaseのバックアップをして置き、このサーバーで
# service mysqld start
# mysql -u root -pパスワード < SqlAllData.sql
としてdatabaseを復元する。
個人的な好みでrailsの標準のWEBrickよりmongrelの方がいいので
# gem insatll mongrel
でインストールする。大量の no definition が表示されたが問題ないみたい。
でもって、アプリケーションのルートから(私の場合は /Rails/report)
# ruby script/server
でWEBサーバ(mongrel)を走らせ、webブラウザからlocalhost:3000/reports (reportsは以前作ったアプリケーション)とすると、uninitialized constant ApplicationController とエラーが出る。そう言えばapplicaton.rbの名前が変更になっていたっけ。なので /Rails/report/app/controllers/application.rb を application_controller.rb に変更するとOKになった.
アプリケーションを走らせたら2つのDEPRECATION WARNINGが出た
最初は :session_key が :keyに変更になった。
rails applicationの configフォルダーにある environment.rb の
:session_key を :key に変更する。
もうひとつは、protect_from_forgery の :secret オプションがなくなったので、
app/controllers にある application_controller の protect_from_forgery の行を消去すると WARNINGは無くなった。