9 件のコメントがあります。

スパムブロック機能により、投稿が失敗することがあります。
うまくいかない場合は、一行目だけをまず投稿し、そのあと編集から残りを追記してみてください。

1 - 9 / 9

» Mac OS Xでカレンダーサーバーを作ろう

Re: Mac OS Xでカレンダーサーバーを作ろう

From : やつ @ 2009-11-17 00:51:55 編集 引用

非常に分かりやすく書いており、インストールから起動までは順調に行うことができました。
日本語で書かれている貴重なサイトであり、本当にありがとうございます。

そして、ユーザ間でカレンダーを相互参照しようとしたのですが、
iCalのアカウント情報の委任タブを開いても、何のユーザも出てきません。
account.xmlを作成するときの注意書きも読み、その通りに設定したのですが正しく表示されません。

ここまで全く同じ手順で作業を進めていたので、何が原因なのか分からないです。
何か分かることがありましたら教えていただきたくメールを差し上げました。
ご返答をよろしくお願い致します。

Re: Mac OS Xでカレンダーサーバーを作ろう

From : namahage @ 2009-11-17 05:58:33 編集 引用

どうもこんにちは.

昨晩,以前構築済みの環境と,いまとりあえずテストできる環境との2つで,動作確認をしてきました.

以前に構築していた環境では,問題なく委任(principal)できるようです.
しかし,昨晩,改めて構築した環境では,委任ができなくなっていることに気がつきました.

以前構築した環境のCalendar Serverのバージョンは2657で,
昨晩構築した環境のCalendar Serverのバージョンは4749でした.

おかしいなと思い,いろいろと調べてみたところ,驚きました.
どうやら,グループカレンダー機能のサポートを打ち切ったようです.

原因は,どうもデータ管理上で不具合が起きるから,という雰囲気のようです.
実際に使っているユーザーにはそうでもないという声もあるようですが,今後,復活する見込みは薄いと読めました.

というわけで,構築した環境でうまくグループカレンダーの機能が動作していないのは,やつさんの作業に課題があったというわけではないと思います.

この委任機能は,Calendar Server 2,x系からCalendar Server3.x系にバージョンが上がる際に無くなったようです.

[CalendarServer-users]のMLに以下の投稿がありました.
http://lists.macosforge.org/pipermail/calendarserver-users/2009-September/001404.html

[CalendarServer]のTicketに以下の投稿がありました.
http://trac.calendarserver.org/ticket/330

これにはちょっと私も参りました.

Re: Mac OS Xでカレンダーサーバーを作ろう

From : やつ @ 2009-11-17 11:34:15 編集 引用

namahage さん
こんにちは。返信ありがとうございます。

>どうやら,グループカレンダー機能のサポートを打ち切ったようです.
そうなのですか、これは驚きました。この機能がとても便利な気がしたのですが…

昨日も少し格闘していて、accounts.xmlファイルとしてaccounts-test.xmlをコピーして利用すると、委任欄に場所のカレンダーが表示されるようになりました。
なので共有する機能?としては残っているようですね。
もう少し調整して、正しく動作できるかどうか確認してみます。何か見つかったら再度報告させていただきます。

わざわざ資料まで調べていただきありがとうございました。

Re: Mac OS Xでカレンダーサーバーを作ろう

From : namahage @ 2009-11-18 08:07:25 編集 引用

どうもこんにちは.

わたしもaccount-test.xmlを元にアカウントファイルを新しく作ってみました.
account_test.xmlの中身は,いままでのものから比べると要素がかなり複雑かつ追加されており,驚きました.

早速,委任タブから,グループカレンダー機能を試してみたところ,やつさんが書かれているとおり,accont-test.xmlに初めから用意されているアカウントを利用すれば,従来通り,グループカレンダー機能の一番おいしいところであるカレンダー共有がiCalでも実現できるようでした.

これはうれしいですね.
というか私もこの機能がないと困ってしまいますので,助かったーっと思っています.

結論を出すのが早すぎました.xmlファイルの中身をもう少し解析して,どういう具合に書けば,うまくいくのか模索してみたいと思います.

Re: Mac OS Xでカレンダーサーバーを作ろう

From : やつ @ 2009-11-19 10:02:19 編集 引用

おはようございます。
ぜひ、account.xmlファイルの設定の仕方をまとめていただけるとうれしいです。
いまいち、group, resource, locationの使い方が不明なので。。。

Re: Mac OS Xでカレンダーサーバーを作ろう

From : namahage @ 2009-11-22 22:32:43 編集 引用

どうもこんにちは。

accont.xmlの中身について解析してみました。
基本的には、これまでとほぼ同じと考えて良さそうです。

ただ、新しいバージョンでは、<guid></guid>という要素が追加されています。
この要素が記述されて無いと、iCalなどからCalendarServerに接続することができません。

旧バージョンから移行する場合には、とりあえず<uid></uid>の次行に<guid></guid>を追記すればほぼそのまま使用できると思います。

各項目の分類については、

<user></user>
CalendarServerにアクセスできるユーザーについての記述を格納

<group></group>
CalnedarServerにアクセスできるユーザーがどのグループに属するのかを定義

<location></location>
CalendarServerにアクセスするユーザーが共有する場所(つまり会議室とか応接室とか)を定義する場合に使用する

<resource></resource>
CalendarServerにアクセスするユーザーが共有使用する道具(つまりプロジェクターとか社用車とか)を定義する場合に使用する

の4つとなるようです。
これらの項目で利用できる要素は

<acconts realm><acconts>
このタグ内にアカウント情報を定義する。

<uid></uid>
uidを定義する。これがアカウント名になる

<guid></guid>
guidを定義する。深い意味はよくわかりません。よりGlobalな処理で使用するのだと思われます。

<password></password>
パスワードを定義する。

<name></name>
iCalやSunbirdなどで表示されるカレンダー名を定義します。iCalでは日本語も使えました。

<first-name></first-name>
<user>で使用されていたタグ。First Nameが定義できるようです。どこで使用されるのかわかりません。参加要請メールを送信するしたりする際の「予定参加者...」で入力すると、候補としてインクリメンタルサーチされ表示されます。

<last-name></last-name>
<user>で使用されていたタグ。Last Nameが定義できるようです。参加要請メールを送信するしたりする際の「予定参加者...」で入力すると、候補としてインクリメンタルサーチされ表示されます。

<email-address>user@example.com</email-address>
<user>で使用できるタグ。このユーザーのメールアドレスを定義する?<cuaddr>との違いがよくわからない。

<cuaddr>mailto:user%02d@example.com</cuaddr>
<user>で使用できるタグ。Calendar user addressの略。委任(principal)で使用する。 A "calendar user address" for the principal. Principals may have multiple calendar user addresses, but a calendar user addresses must be unique to one principal. A calendar user address must be a URI_. .. _URI: http://tools.ietf.org/html/rfc2396 Note that calendar user addresses here supplement any calendar user addresses that are assigned by the server based on other principal information.とありますがいまいちよくわからないです。いずれにしても「予定参加者..」で指定したユーザーにメールするために使われていそうな雰囲気です。

<members></members>
<group>で使用する。そのグループに属するユーザーを定義する。このタグ内に、<member type="xxx">ユーザー名<member>を記述して分類。

<proxies></proxies>
<location>, <resource>で使用する。そのlocation, resourceを利用できるユーザーやグループを定義する。このタグ内に、<member type="xxx">ユーザー名(またはグループ名)<member>を記述して指定。

<auto-schedule/>
<location>, <resource>で使用する。委任されているカレンダーを自動で更新するかどうか決める。

<read-only-proxies>
<location>, <resource>で使用する。読み込み専用のユーザーやグループを定義する。このタグ内に、<member type="xxx">ユーザー名<member>を記述して指定。

<disable-calendar/>
<user><group>で使用する。カレンダーにアクセスできなくするユーザーやグループを定義する。このタグ内に、<member type="xxx">ユーザー名<member>を記述して指定。

以下、こちらで作ってみた例です。

<accounts realm="Tatsunoko">
<user>
<uid>docrobay</uid>
<guid>docrobay</guid>
<password>oshiokidabe</password>
<name>Docrobay Sama</name>
</user>
<user>
<uid>doronjo</uid>
<guid>doronjo</guid>
<password>ohara</password>
<name>Doronjo</name>
<cuaddr>mailto:testuser1@example.com</cuaddr>
</user>
<user>
<uid>boyacky</uid>
<guid>boyacky</guid>
<password>science</password>
<name>Boyacky</name>
<cuaddr>mailto:testuser2@example.com</cuaddr>
</user>
<user>
<uid>tonzurer</uid>
<guid>tonzurer</guid>
<password>mannen</password>
<name>Tonzurer</name>
<cuaddr>mailto:testuser3@example.com</cuaddr>
</user>

<user>
<uid>ganchan</uid>
<guid>ganchan</guid>
<password>chinchin</password>
<name>Yatterman1</name>
<first-name>Gan</first-name>
<last-name>Takada</last-name>
<email-address>ganchan@example.com</email-address>
<cuaddr>mailto:ganchan@example1.com</cuaddr>
</user>
<user>
<uid>aichan</uid>
<guid>aichan</guid>
<password>sibirestick</password>
<name>Yatterman2</name>
<first-name>Ai</first-name>
<last-name>Kaminari</last-name>
<email-address>aichan@ganchan@example.com</email-address>
<cuaddr>mailto:aichan@ganchan@example1.comt</cuaddr>
</user>

<group>
<uid>doronbo</uid>
<guid>doronbo</guid>
<password>docrostone</password>
<name>Doronbo Family</name>
<members>
<member type="users">doronbo</member>
<member type="users">boyacky</member>
<member type="users">tonzurer</member>
</members>
</group>

<group>
<uid>yatterman</uid>
<guid>yatterman</guid>
<password>mekanomoto</password>
<name>Doronbo Family</name>
<members>
<member type="users">ganchan</member>
<member type="users">aichan</member>
</members>
</group>

<location>
<uid>secretbase01</uid>
<guid>secretbase01</guid>
<password>hirakegoma</password>
<name>Secret Base 01</name>
<auto-schedule/>
<proxies>
<member type="groups">doronbo</member>
</proxies>
<read-only-proxies>
<member type="users">docrobay</member>
</read-only-proxies>
</location>

<resource>
<uid>yatterbow</uid>
<guid>yatterbow</guid>
<password>yatterbow</password>
<name>Yatter Won</name>
<auto-schedule/>
<proxies>
<member type="groups">yatterman</member>
</proxies>
</resource>
</accounts>

こんな感じでしょうか。開発側の説明はDirectoryService-XML.txtファイルで少し読めます。
備忘録代わりにまとめてみました。このほかにもaccount realmの指定などにもう少し何か必要そうな気がしますが、まだまだよくわからないことが多いです。

サイトのログの方も書き直さないとだめそうですね。
画像の取り込みからのやり直しになるのでなかなか大変そうです。

Re: Mac OS Xでカレンダーサーバーを作ろう

From : ケン @ 2009-11-23 12:59:44 編集 引用

はじめまして。
現在G4Macmini/Leopard10.5.8を使用しています。
こちらで、出ていた情報をもとに先日設定してみたのですが、最後LaunchDaemonsに登録する所ではじかれてしまいます。
CalendaeServerは、4798というバージョンです。
現在、
/Developer/Collaboration/CalendarServer
にrun等が入っています。

sudo launchctl load -w /Library/LaunchDaemons/org.calendarserver.plist
以下の様なメッセージが出てしまいます。
launchctl: Dubious permissions on file (skipping): /Library/LaunchDaemons/org.calendarserver.plist
nothing found to load

また、
$/Developer/Collaboration/CalenderServer/run
を実行しようとすると
/Developer/Collaboration/CalendarServer/run: line 38: support/build.sh: No such file or directory
というメッセージが出てこの辺りが絡んでいるのだろうか?と思うのですが、どうすればいいのかわかりません。
ちなみに、
$cd /Developer/Collaboration/CalendarServer
$./run
なら起動できます。

何かご存知でしたら教えて頂ければと思います。
よろしくお願いします。

Re: Mac OS Xでカレンダーサーバーを作ろう

From : namahage @ 2009-11-23 22:47:41 編集 引用

どうもこんにちは。
launchdに登録できないですか。
何が原因でしょうね。いま手元でテストできる環境がちょっとないので確認はできていませんが、考えられるのは、

1,org.calendarserver.plistのファイルパーミッションに課題があるかもしれない。
org.calendarserver.plistをLaunchDaemonsにコピーした後、

sudo chown root:wheel /Library/LaunchDaemons/org.calendarserver.plist

を実行してからLoadする。

2,より適切なorg.calendarserver.plistを記述する必要があるかもしれない。
CalendarServerが納められているフォルダ内にcontribというフォルダがあります。その中にlaunchdフォルダがあり、中にorg.calendarserver.plistの例が収納されています。内容は書き換えないとダメですが、私のログで紹介しているものより、設定内容が多いですね。

それから、

$/Developer/Collaboration/CalenderServer/run
を実行しようとすると
/Developer/Collaboration/CalendarServer/run: line 38: support/build.sh: No such file or directory

ですが、私も経験があります。どうもこのrunは、相対パスで動いているようです。
現在作業しているディレクトリから見て、相対的に関連ファイルを呼び出して実行しているようでした。なので、私の書いたログのままで、やろうとするとおそらく正しく実行できなくて、躓いてしまう人もいるように思います。

いずれ機会を見てログの方も直していけたらと思っています。

Calendar Server スタートアップスクリプト

From : namahage @ 2009-12-20 22:41:06 編集 引用

私のログに記載した方法(おおよそ)で、/Applications/ServerKagyo/CalendarServer/内に構築したCalendar Serverをlaunchdで自動起動させようとすると、うまくいきません。

この原因は、起動時に実行する./runに記述されている38行目でbulid.shを相対パスで呼び出している殻のようです。この辺の記述を少し書き換えればうまくいきそうなのですが、今後のsvnでの更新などを考慮すると手をつけるのはちょっと気が引けます。

launchd経由で、うまいこと起動させるには、Calendar Serverをよりしっかりした形でセットアップする必要があるようです。適切な設定をした後、./run -iを実行するというコトになりそうな気がしてきました。

情報が少なく、そこまでの構築作業は当分めどをつけられないので、とりあえずごまかしとして、シェルとアップルスクリプトを組み合わせたスタートアップスクリプトを作ってみました。本当にごまかしなので、根本的な解決にはなりませんが、とりあえずの運用には使えると思います。

1,まず、このファイルをダウンロードします。
http://earlybirds.ddo.jp/namahage/inegalog/files/article.php?id=35

2,ダウンロード後、解凍してできた「CalendarServer_StartupScript」フォルダを、/Applications/ServerKagyoに移動させます。

3,次に、「CalendarServer_StartupScript」フォルダを開いて、中から「Start_CalendarServer_TestDrive.app」を探します。

4,「Start_CalendarServer_TestDrive.app」見つけたら、システム環境設定を開き、アカウントパネルを開いて、「ログイン項目」にドラッグアンドドロップで追加します。

これでシステム起動時にCalendar Serverが自動起動するようにできるはずです(うまく動かない環境もあるかと思いますが)。なお、「CalendarServer_StartupScript」フォルダ内には、一応カレンダーサーバーを停止させる「Stop_CalendarServer_TestDrive 」も梱包しておきました。必要に応じて利用してみてください。

Post Your Comment


*は入力必須です。E-Mailは公開されません。