macOS ServerでWeb&Mailサーバー運用

img_4878

お気楽なはずだったサーバー構築

先の記事にも書きましたが、我が家で2011年末から運用してきたMacOSX LionServerが「いうこと聞かなく」なってしまい、 サーバーを再構築しました。
マシンは引き続きMacMini2011。
というかサーバーにできるMacはこれしかないので、再構築にあたりOSを入れ替え、ServerAppを対応バージョンにしただけです。

Linuxで公開サーバーを構築、運用するのと比べればほとんどの部分がとても簡単なのですが、つっかかるとマイナーなだけに情報が少なく、自身の備忘を兼ねて書き留めておきます。
そのためmacOS Serverでサーバー構築することの全体を網羅しているわけではなく、ハマったところだけになりますので予めご了承ください。

サーバー機能は、
外部公開用としてWeb、Mail
内部用としてWeb、Mail、DNS、etc..
を稼働させます。
実は一度、MountainLionにしようとしたことがあったのですが、アップグレードインストールでドツボにハマってLionに戻した経緯もあり若干の躊躇はありましたが、LionServerはすでにサポートも切れていますし、新規インストールで一から設定し直しということもあるので、最新版のmacOS Sierra(OSXではなくなった!)でチャレンジしたのですが、案の定、サーバー設定以前のドツボにハマりました。

ServerAppが起動しない
まずは復元インストールでLionにして、Sierraへアップグレード。
MacAppSotoreでmacOS Server 5.2を購入してインストール。
ServerAppを起動していざ設定と思いきや、新規インストールなのに旧バージョンが入っていないという謎のお叱りを受けて先に進めません。
img_4881-2

Lionからのアップグレードインストールではなく、Sierra単独で新規インストールしてみましたが同じメッセージ。
OSX el capitanにしても同じ。
なぜ入れてもいないServerのアップグレードをしようとするのか。。
手を替え品を替えインストールし直しを繰り返し、ジタバタすること数日。
ふと、OSインストール時に質問されるAppleIDを入れずにセットアップしてみたところ、すんなりServerAppの起動(初回設定)に成功しました。

どうやら、AppleIDを入れてセットアップするとAppleIDとハードウエアIDで紐づいた以前の構成情報を何かしら持ってきちゃうみたいです。
何をどこにどう持っているのか、どう参照しているのかさっぱりわからないのが気持ち悪いのですが、クリーンインストールでもAppleID使うとクリーンになりきらない。ということが分かったのをひとつの成果としたいと思います。(前向きに)

設定はLionより楽だけど、制約事項が変わった(厳しくなった)
ServerAppの設定はLionServerより随分洗練されています。
LionServerだとServerとServer管理が別アプリでそれぞれでやれることが微妙に違うというなんとも分かりにくい構成でしたが、macOS ServerはServerAppひとつで設定できます。
ユーザーアカウント、MailもWebも設定してほぼ想定通りにすんなり動作。
LionServerではSSLなどに使う自己証明書の発行が別フェーズだったり、発行にあたって謎な設問があったりしたのが、ホスト名、ドメイン名の設定を変えてWebサーバーの設定をしたら自動的に生成されていいてちょっと感動。
Mailサーバーも送信リレー設定に送信認証の設定欄がちゃんと存在していました。
つまづいたのはDNSです。
RFCに厳格になったのか、Aレコードにホスト名「@」「*」が追加できません。
これは、いままでは使えていたホスト名なしURL「http://ezto.info/」がLAN内からは使えなくなるということです。
Internet側はドメイン管理会社のDNSでうちのドメイン宛は何でもかんでもうちのアドレスと設定できますので、これではLANとInternetで挙動に差分が出てしまいます。
なにか設定方法(解決策)があるのかもしれませんが、この時は復旧優先で作業していましたのでWebのURLをホスト名ありの「http://www.ezto.info/」に変更することにしました。
それに合わせて、Webサーバー側でホスト名なしアクセスをホスト名ありにリダイレクトするように設定しました。

Webコンテンツはとりあえずローカルのバックアップから復旧しておきます。
(リニューアルは計画していて実験中でしたが、この時はまだ準備不足でした)
Webサイトのリニューアルでもいろいろつっかかっていますのでこちらも別記事で備忘にしたいと思います。