意識他界大熊猫の世界

意識他界大熊猫による意識他界ブログ

OneDrive を Ubuntu で使う

先日Microsoft 365を契約したので、Microsoftクラウドストレージ OneDriveUbuntu 64bit で使おうというヤツ

※ なんで ubuntu 使いが Microsoft 365? って思われるかもしれませんが、家で使っているデスクトップPCが Windows なもので・・・()

UbuntuでOneDriveを使う - Qiita を参考に情報の最新化や整理など加筆修正しました。有用な記事のご提供誠にありがとうございます。

まずはここに書かれてある通り必要な環境を整備します。

① 必要なライブラリと D 言語コンパイラ導入

$ sudo apt-get install libcurl4-openssl-dev libsqlite3-dev gdebi
$ cd /tmp
$ wget http://downloads.dlang.org/releases/2.x/2.092.1/dmd_2.092.1-0_amd64.deb
$ sudo gdebi dmd_2.092.1-0_amd64.deb

OneDrive Client for Linuxコンパイル&インストールする

$ cd /tmp
$ git clone https://github.com/abraunegg/onedrive.git
$ cd onedrive
$ ./configure
$ make
$ sudo make install

③ サンプル設定ファイルをコピーする

$ mkdir -p ~/.config/onedrive
$ cp -p /tmp/onedrive/config ~/.config/onedrive/

④ 設定ファイルを編集する

$ vi ~/.config/onedrive/config

※ ファイル保存ディレクトリ sync_dir 以外は特に設定変更しなくても大丈夫かも

⑤ いったん手動で起動し、認証情報を設定する

$ onedrive
Configuration file successfully loaded
Configuring Global Azure AD Endpoints
Authorize this app visiting:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize(以下略)

Enter the response uri:

 ・Authorize this app visiting に表示された URL にブラウザでアクセスする

 ・Microsoft 365の認証画面が出てくるので、ID/Password を入力する

 ・認証が成功すると白紙のページが表示されるので、白紙ページの URL をそっくりそのままコピーして↑の Enter the response uri: のあとに貼り付けて Enter キーを押下する

⑥ サービスの起動設定(ユーザモードで自動起動させる)

$ systemctl --user enable onedrive
$ systemctl --user start onedrive

以上で更新を自動検知してファイルの同期を行ってくれるように成増・・・ってなぜにウチのATOKは「なります」を「成増」にしたがるのかw

板橋区民だけど成増在住ではないです()

certbotを使って Let's Encrypt ワイルドカード証明書をスマートに(?)発行する(Cloudflare版改訂)

www.ageage.blog

↑の Cloudflare 版です。DNS認証に利用するcertbotプラグインが違うだけでほぼ同じですが・・・

以下 *.example.jp の証明書を取得する場合について書いていく (example.jp の Name Server は Cloudflare 利用)

① root ユーザで pyenv 導入

# curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
# vi /root/.bashrc
  → ファイルの最後に下記3行追加
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

② 一度 root でログインし直してから pyenv を利用して python 3.8.3 (2020/07/02現在の 3.8系最新版)をインストール

# pyenv install 3.8.3

インストールに失敗する場合はググりましょう() まあ大抵 libffi がインストールされていないのが原因だったりするんですが・・・

③ pyenv 環境下で利用するデフォルトバージョンを 3.8.3 にする

# pyenv global 3.8.3

④ pip を最新化(しなくてもいいかも)した後、certbot 本体及び Cloudflare 向け DNS 認証プラグインをインストール

# pip install pip -U
# pip install certbot certbot-dns-cloudflare

⑤ Cloudflare の Web コンソール画面からドメイン example.jp の Global API Key を取得する

 ・ドメイン example.jp の概要ページ右下にある「API」ブロックから「APIトークンを取得」をクリック

f:id:kemonox:20200703095429p:plain

 ・「APIトークン」ブロックにある「トークンの作成」をクリック

f:id:kemonox:20200703105253p:plain

 ・「カスタムトークン」ブロックにある「カスタムトークンを作成する」の「始める」をクリック

f:id:kemonox:20200703105437p:plain

 ・「トークン名」(=任意の文字列)「アクセス許可」(=下記画像の通り「ゾーン/ゾーン/読み取り」と「ゾーン/DNS/編集」を付与)を設定し、末尾の「概要に進む」をクリック

f:id:kemonox:20200703105647p:plain

 ・内容を確認して問題なければ「トークンを作成する」をクリック

f:id:kemonox:20200703105846p:plain

 ・トークンが表示されるのでテキストエディタなどにコピーしておく(これ以降再表示させる手段がないので注意)

f:id:kemonox:20200703110152p:plain

⑥ Cloudflare 認証情報ファイルを作成する

# mkdir /root/.cloudflare
# vi /root/.cloudflare/config
→ 下記1行を追加し、保存する
dns_cloudflare_api_token = <⑤で取得したトークン>
# chmod 700 /root/.cloudflare
# chmod 600 /root/.cloudflare/config

⑦ certbot コマンドを実行して証明書発行処理を行う

# certbot certonly --dns-cloudflare --dns-cloudflare-credentials /root/.cloudflare/config -d *.example.jp
※ もしDNS反映が間に合わなくて認証が通らない場合はオプション --dns-cloudflare-propagation-seconds を追加して調整する(デフォルトは10秒)

だいたい同じでした()