Mac OS X server Mountain Lion によるシステム構築

システム.

  Snow Leopard server による afp のホームの提供 (mcintosh-s-02) と Snow Leopard server による Open Directory の提供 (mcintosh-s-04).
  これらを Mountain Lion server へ移行したい (mcintosh-s-05).
  以下, mcintosh-s-02 を s-02
       mcintosh-s-04 を s-04
       mcintosh-s-05 を s-05
  と略.

問題点.

  最初に想定した, システム構成は,
  s-04 --> s-05 へ Open Directory の情報を転送.
  s-02 の afp ホームディレクトリは当分使い続ける. しばらくして, s-05 へ移行.
  Mountain lion server s-05 が Open Directory を提供している場合,
  Snow Leopard server s-02 による afp ホームディレクトリ提供がうまくいかなかった.
  よってこの構成を諦める.  具体的な問題点は,  うしろ を参照.

Snow Leopard から Mountain Lion による新構成への移行の概略.

方針.

  s-05 (Mountain lion server) が, Open Directory を提供すると共に, afp ホームディレクトリも提供する.
  s-02, s-04 を一気に廃止.
  s-04 の Open Directory 情報は, s-05 で使えない物(afp の位置, group id)もあるので, 
  ユーザ登録も新規にやる.

Step 1.

サーバ管理ソフトで s-05 で Open Directory サービスを有効にする (マスタ). afp によるホームディレクトリの提供を行なう. この例では /Volumes/home09, /Volumes/home10






Step 2.

ユーザ登録.
  dscl を用いて一気にやる. ログイン名, uid は unix システム上のものを使う. パスワードは初期化.  
 login 名, Full Name, 初期パスワードが書いてあるテキストファイルより, dscl で
  Open Directory へ登録する shell script を生成する C のプログラムを作成.

  例: gen-uadd.c を用いて, ex-in.txt より ex-in.sh を作成.
     ./gen-uadd --homep home09 --uid 10001 ex-in.txt >ex-in.sh
     sh ./ex-in.sh    (root でおこなう

  落とし穴1, 2も参照.
gen-uadd.c のソース , ex-in.txt (サンプル入力), ex-in.sh (サンプル出力).

Step 3.

ホームディレクトリの s-02 から s-05 へのコピー. 
  s-02 の /Volumes/home09, /Volumes/home10 を ditto で下記のようにアーカイブする.
  s-02> sudo su
  s-02> cd /Volumes ; ditto -c home09 /home09.ditto
  で, ditto アーカイブして, s-05 の適当な場所にコピー (たとえば /)
  disk drive を home09 とする.
  s-05> sudo su
  s-05> cd /Volumes ; ditto -x /home09.ditto home09

  s-02 と s-05 の uid が一致しない場合は
   cd /Volumes/home09 ; chown -R login名 login名
  で各ユーザについて所有者を変更する必要あり.
以上が概略であるが, 幾つか落とし穴があった. それを記載する.

落とし穴1:

useradd.sh で足しただけでは, 共有サービス等が使える状態でない. サーバ管理ツール. ユーザを一人ずつ選択して, service への access を編集して, 最低 afp サービス(ファイル共有)を有効にする. コマンドラインでのやり方, 不明.








落とし穴2:

s-02 で利用していた group id (gid)  が Open directory で利用可能な gid として( staff=20 とかだめ)
s-05 に存在しないと, unknown group に変換されて,
さらに login した時タイムスタンプが更新されてしまう.  
対策:
gen-uadd.c では PrimaryGroupID を workgroup に default 設定しているので, 
  s-05> sudo su
  s-05> cd /Volumes/home09; chgrp -R workgroup *

対策2:
  group を gui で登録.  たとえばそのグループ名を workgroup2 とする.
  (下の例では user2 )
  この番号を知るには,
   s-05> dscl /LDAPv3/127.0.0.1 -read Groups/workgroup2 
  PrimaryGroupID の値を読む.

  または dscl で登録する. どうやら番号が 1000 以上?でないと使えないようだ.
  gen-uadd.c の PrimaryGroupID をこの番号としてから gen-uadd で ユーザ登録スクリプトを実行する.

  s-05> sudo su
  s-05> cd /Volumes/home09; chgrp -R workgroup2 *

















Snow Leopard から Mountain Lion 移行での client 側での一般的な注意点.

1. security で, 任意のプログラムを実行可能としておかないと, App store のソフトしか実行できなくなる.
2. xcode を App store からダウンロードしておいて, 
   preference -> download -> command line tools をダウンロードする.
  必要に応じて, /Developer/usr/bin もコマンドサーチパスへ入れておく.
3. 今はユーザーアカウント  ... でログインできません. となることがあるので, 各クライアントで,
  /etc/auto_master の /Network/Servers -fstab を # でコメントアウト.
  (apple のサーポートページにある解決策).
4. 特にサーバーでなくとも printer を共有資源として供出できる. 直接接続も簡単になった.


参考: 別の Open Directory server が動いている Snow Leopard のホーム

  Mountain lion server s-05 が Open Directory を提供している場合,
  Snow Leopard server s-02 による afp ホームディレクトリ提供がうまくいかなかった.
  よってこの構成を諦める.
  下記はその時の log の例 (mcintosh-s-02 でないので、うそかも...)