とりあえずドメイン所有権の確認を行います。
いくつか方法が用意されてるんだけど、DNSにTXTレコードを追加する方法で対応した。

該当するドメインのゾーンファイルに、Google Appsで指定されるTXTレコードを追加する。

IN TXT google-site-verification=hogehogehogehogehogehogehogehogehogehogehog

DNSサーバーを再起動。
シリアル番号の更新も忘れずに。

確認。
手元にあるのがWindowsだったら

nslookup - ns1.hoge.co.jp ←DNSサーバー名
>set q=TXT
>hoge.co.jp

dig使えるなら
$ dig @ns1.hoge.co.jp hoge.co.jp TXT

みたいな感じで、登録したTXTレコードが出てくればおk。

Google Appsのドメイン管理画面でドメイン所有権の確認を続ける。
多分数分もすれば確認できる。DNSの浸透には長いと数週間~とか言う奴がいるけど浸透ってなんなの?相性で済ましちゃうPCユーザーみたいなもんじゃないの?しらんけど。

ドメイン所有権の確認ができればGmailの機能が使えるようになります。

つぎにGoogle Appsでアカウントを作りまくる。CSVでぶち込んでやると早い。

アカウントの用意ができたら、
本稼働中のメールサーバーから Google Appsテスト用ドメイン(hoge.co.jp.test-google-a.com みたいな感じで用意される)にメールを転送を開始。
これで、本稼働中のサーバーとGmailに同じメールが届くようにしてしまおう。

こうなってしまえばもうGoogle Appsをメインに使ってもなんの支障もない。
ユーザー全員を一気に乗り換えさせると管理してる人の手間が大変なので、段階的にユーザーのメール環境をGoogle Appsに変更させていく。
サポート分散しないとウン十人分のPC設定とGoogle Appsの説明なんて無理。

そんな感じで現在半数をGoogle Appsに移行完了。もう少しダブル運用で挙動チェック予定。


Google Apps。
実際に使う前にもっと調べときゃよかった。
今までサーバー製品とグループウェアを売ってきた業者達からもGoogle Appsを売り込んでもらうために、標準状態ではセキュリティーポリシーの設定も糞もあったもんじゃない投げっぱなしな状態。
便利にできるAPIを用意してるからどんどん作ってそれをオプションとして売り込んでね!!!っていうものなんだな。
ドキュメントを読む限りSingle Sign-On環境程度なら僕でも作れそうな感触はあったけど、そんな保守なんてしたくないし責任を負いたくないからアウトソーシング化を進めているのにそんなことをしてしまったら本末転倒すぎて死ぬ。
セキュリティーポリシーをまじめに考えるのなら予算を作ってもらうしか…。
何社かに見積もりをとったところ、多くを望まなければそんなに高くないようだけど利便性が死ぬからよく考える必要がありそう。
わかりきってたことだけど安全と利便性は両立しないね。


ちなみにMXレコードの編集はまだです。
優先順位を落として、本稼働中のメールサーバーと併記するってのも可能だけど、
MXレコードの優先順位なんてあまりアテにならなくない?そうなると2つの環境に全く同じようにメールが届く環境を作るのはむしろ難しくなる。
少なくともスパマーどもは、わざと優先順位の低いMXレコードを辿ってメール放りこんできたりするからタチが悪い。

遅刻する奴はクズ。
遅刻するくらいなら欠勤した方がいい。

日本にはこんな空気があります。

僕はすでにクズでまかり通っているので、
「欠勤して丸一日いないより、遅刻してでも顔出した方が周りへの負担が少ないだろ…」
という考えのもとに余裕で遅刻をぶっこきます。


閑話休題。


「遅刻はダメッ!時間の守れない奴は信用ゼロ!!」
日本で生きていく限りそんなもんですが、場合によっては例外もあります。


私宅に訪問する場合は遅刻しよう!!


訪問される側は来客に備えて何かと準備をするものです。
これが来客時間ギリギリになって「ああ!◯◯を片付けなきゃ、◯◯を用意しなきゃ!」などと慌てるパターンが少なくない。

それを見越して、配慮して。
相手の自宅に訪問する場合は、約束の時間より10分ほど遅刻する気遣いを。
予定時間より早く訪問するなんてのはもってのほかです。


もちろん、気のおけない仲、その後の予定が詰まっていて10分の遅刻も許されない、なんて場合もあるでしょうから臨機応変に。電話を一本入れるのもいいですね。

会社のメールサーバーをGoogle Appsにしようぜ!!(トラブル時の対応も責任もなくなるし)
って提案を半年以上前に出してたら忘れた頃にGOサインが出た。


僕が入社(中途)した時から、DNS、Mail、Webサーバーを自社ビル内に設置してて、
ファイヤーウォールもUPSも大掛かりだし、保守にかかる金もパネェしで余裕あるなーって思ってた。
しかし今のご時世。節約できるところは切り詰めたい。ボーナス切っといてそんなところに金かけてんなよクソが。

こんなもの自社ビル内に置いておくメリットなんてほとんど無いどころかデメリットだらけじゃん?
実際に数字にすると年間これだけかかってる金が、外に出すとこれだけ減らせます!(キリッ

ってな内容の提案書を会社に出してたら、
震災後にちょっと話題になった計画停電の後押しもあって、早く実行しろ!ってな具合に。


DNSはOCNの「DNSサービス」を使うことになりそう。
ここは超重要なところなので安心を買いたい。
OCNのDNSサービスは、OCNとのIP8以上の回線契約が前提なんだけど、
DNSレコードの編集もこっちで制限なくやれそうな感じなのと、万が一のダウン時も「OCNが落ちてるんならしょうがねぇだろ…」の一言で片付けられるから。
お名前.comやバリュードメインだとそうはいかないよなぁ。

MailはGoogle Apps for Business。
ぶっちゃけ無料版の50アカウント(無料50アカウント欲しかったら5月9日までにアカウント作っとけ)でも間に合うんだけど、
メールサーバーも絶対に落としたくないところなのでケチるところじゃない。
Google Appsを使うだけならDNSレコードの書き換えだけで簡単な話なんだけど、
社員への通達やその端末の再設定を考えてるとものすごく大変な感じ。
手順書を準備中だけど、一般人という人種には難しい予感。結局ほとんどの端末を見てまわる感じか。

WebはさくらのVPSでも借りる。
自社のウェブサイトがあるだけだし、アクセスも大したことないし、落ちたところで誰も困らないので本当にどうでもいい。


ちょっと仕事も混んでるので移行作業の日程が立ってないんだけど、
作業の内容は後日まとめようと思います。
Automatorを起動。
ワークフローのテンプレートを選択:「アプリケーション」を選択
「シェルスクリプトを実行」をドロップして、中に

defaults write com.apple.finder AppleShowAllFiles $([[ `defaults read com.apple.finder AppleShowAllFiles` =~ TRUE|ON|YES ]] && echo FALSE || echo TRUE) && killall Finder

を記述。
シェルで叩いてもいい。

やってることは、
隠しファイルを表示している状態にあるかチェックして、
defaults write com.apple.finder AppleShowAllFiles TRUE # 隠しファイルも表示(TRUE、ON、YES)
defaults write com.apple.finder AppleShowAllFiles FALSE # 隠しファイルは非表示(FALSE、OFF、NO)
のどっちかを叩いて Finder を再起動。
厳密にいうとFinderを落としてるだけなんだけど、落ちると自動で起動がかかるらしい。

アプリもあるけどやってることはこれだけのことなので、せっかくあるAutomatorの有効活用。
open
シェル使ってる時にとても便利なコマンド。
Finderいらなくなる。

例1)
$ open .
Findeでカレントディレクトリを開く。
第一引数にディレクトリパスを与えるとFinderで開ける。

例2)
$ open -a CotEditor ~/.bashrc
CotEditorで ./bashrc を開く。(好きなテキストエディタを指定してね、/Applicationsの中にあるアプリであれば、.appなしで解釈してくれる、それ以外のパスの場合はフルに書けばいい)
※ -e を使うと指定したアプリを起動できる。
※ -n -W -g とかもオプション見てみるといい。

例3)
$ open -a Firefox http://www.google.co.jp
FirefoxでGoogleを開く。

例4)
bashの場合、.bashrcを変更する。

alias fx='open -a Firefox'
# なんかしておくと、fx http://hoge.com と使えて便利。
# よく使うアプリは alias 作ってどんどんラクしよう!


つーかここまできたら…


# Macには標準でnkfが入っていないので、
# 標準で入っている perl と URI モジュールでURLエンコードの処理を作る。
function urlencode { perl -MURI::Escape -e "print uri_escape('$*')"; }
# こいつは投げ込んだ文字列をURLエンコードして出力するよ!

# ついでなのでデコード処理も作っちゃおうか。
function urldecode { perl -MURI::Escape -e "print uri_unescape('$*')"; }

# ggrks ... 与えられた引数でググる処理
function ggrks { open -a Firefox http://www.google.co.jp/search?q=`urlencode "$*"`; }

# これで、
# $ ggrks ファミコン キチガイ
# ってゆうと、「ファミコン キチガイ」ってゆう。じゃなくてググれる。

# つーか ggrks 分かりやすいけどながくて実用性がないよ…
alias g=ggrks


例5)
$ g まどかまぎか zip


こら!


$ say fuck off
とかも面白い。スピーカーボリューム上げてね。