13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker2Advent Calendar 2016

Day 15

DockerでTimeMachineサーバを作ってバックアップ

Posted at

みなさんは、バックアップを何でしていますか?

私は最近MBP Late2016を買ってmacOSデビューしました!!!

なので、TimeMachineサーバをDockerで立ててそれをGoogleDriveに保存したいと思います!!

と思っていたのですがマウントすると、どうしても認識してくれないのでGoogle Driveの認証を書いていますが意味ないです。本当にわけがわからない。なんでなの?ねえ。

その前に

今回はローカルでサーバを立ててバックアップを試みたのですが、どうしても接続できなかったので Dplyという2時間だけ無料で使えるVPS上にサーバを立てました。

セットアップ

~ ssh root@IP
$ curl -fsSL https://get.docker.com/ | sh
$ add-apt-repository ppa:alessandro-strada/ppa # Google Driveをマウントする
$ apt-get update
$ apt-get install google-drive-ocamlfuse

Google DriveのAPIを有効にする

Google Driveをマウントするために、Google DriveのAPIを有効にします。

プロジェクトの作成

https://console.developers.google.com/apis/dashboard
にアクセスして、プロジェクトを作成をクリックします。

スクリーンショット 2016-12-15 1.19.31.png

プロジェクト名を入力し「作成」をクリック。
スクリーンショット 2016-12-15 1.20.18.png

APIの有効化

ダッシュボードに移動できたら、「APIを有効にする」をクリックして、
スクリーンショット 2016-12-15 1.21.01.png

Google Drive APIのAPIを有効にします。
スクリーンショット 2016-12-15 1.21.13.png

認証情報の作成

まずは、OAuth 同意画面を作り「サービス名」を適当に入力します。
スクリーンショット 2016-12-15 1.22.20.png

認証情報を作成します。「OAuth クライアント ID」をクリックします。
スクリーンショット 2016-12-15 1.21.45.png

アプリケーションの種類には「その他」を選択して、作成します。
スクリーンショット 2016-12-15 1.29.16.png

すると「クライアント ID」「クライアントシークレット」が生成されます。
スクリーンショット 2016-12-15 1.29.57.png

Google Driveへのアクセス許可

$ google-drive-ocamlfuse -headless -id クライアントID -secret クライアントシークレット

と入力するとGoogleのOAuth認証を求めるURLが表示されるので、アクセスします。

スクリーンショット 2016-12-15 1.35.27.png

許可しましょう。
スクリーンショット 2016-12-15 1.38.59.png

コピーしましょう
スクリーンショット 2016-12-15 1.39.05.png

コンソールに戻ってコードを貼り付けて
Access token retrieved correctly と表示されたら成功です!

マウント

$ mkdir /googledrive
$ google-drive-ocamlfuse /googledrive
$ mkdir /googledrive/timemachine

Google Driveでも「timemachine」フォルダがあることが確認できると思います。

netatalk を立てる

netatalkとは

netatalkはUnix系OS上でMac OSやOS Xに対してAFPによるファイルサーバの機能を提供するオープンソースのソフトウェアである。
https://ja.wikipedia.org/wiki/Netatalk

つまりファイル共有サーバの機能を提供するわけですね。

起動する

docker run --detach \
   # --volume /googledrive/timemachine:/media/timemachine \ -> これだと認識してくれない
   --publish 548:548 \
   --env AFP_USER=$(id -un) \
   --env AFP_PASSWORD= \
   --env AFP_UID=$(id -u) \
   --env AFP_GID=$(id -g) \
   --name netatalk \
   cptactionhank/netatalk:latest

Finderで CMD + K を押して afp://IPアドレス で接続します。
スクリーンショット 2016-12-15 1.55.34.png

設定したパスワードとユーザでログインします。
スクリーンショット 2016-12-15 1.55.50.png

Time Machineを選択してOKをクリックします。
スクリーンショット 2016-12-15 2.51.50.png

するとTime Machineの設定にもでてくるはずです。
スクリーンショット 2016-12-15 1.56.40.png

まとめ

どうしてGoogle Driveをマウントしても認識してくれないのだろう。
(コンテナの中を見に行くとちゃんとマウントはできているみたい)
今後は、gcsfuseとかを使って挑戦してみたいです。

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?