橋本修太です

Geeko Magazineに書いていたのですが、ちょっと前、確かkubernetes 1.12の時は、flannel 1.10を適応しようとすると、エラーとなって適用出来ませんでした。

それが、flannelがバージョンアップして解決したようです。今では以下のコマンドでネットからflannelを適応する事が出来ます。

kubectl apply -f https://0y.at/kubicflannel

Kubicが適応できるバージョンにショートネームをあてたようですね。

インストールの全体記事はこちらです。

それでは良いコンテナライフを。

橋本修太です

2019/02/22(金)と、23(土)に開催された、OSC 2019 Tokyo/Springに行ってきましたのでレポートしたいと思います。

OSC Tokyo

オープンソースカンファレンスは全国で開催されるオープンソースをテーマにしたカンファレンスです。東京では年に二回、春と秋に開催されていて、今回も場所は日野にある明星大学さんに提供頂きました。来場者は両日で1000人越え、と、ブースルームは常に人が沢山な印象でした。

明星大学さん、いつもありがとうございます。「コンピューターと学び」のセッションも聞きにいきますね。

ブース

ブースと準備をしているftake氏

ぎーこ君たちとブースでopenSUSEやKubic、Geeko Magazineをアピールしました。

金曜日は武山さん、太田さん、橋本(鹿)さん、井川さん、土曜日は武山さん、橋本(鹿)さん、名古屋から来てくださった安藤さん、と、ブース担当者は結構多めでまわすことが出来ました。これなら、ブースまわったりセミナー聞きに行ったりと、皆で協力してできそうですね。

橋本(鹿)さんは別のブースの担当者だったりもしましたが・・・近辺で協力しあってブースを回すのも、OSCではよくある光景ですよね。

openSUSE知ってるよー、と言ってくださる方も増えてきている印象で、OSCでのアピール効果も出てきてるなぁ、と思っています。それに、今回はユーザー会に興味あります、という方も来て下さいました。ML、IRC、slack、とありますので、皆でopenSUSEを楽しんでいきましょう

セミナー

Kubernetesの実践例を講演するftake氏

金曜日に武山さんと私で、Kubernetesの入門レベルのセミナーを行ってきました。

参加者は60人程で、セミナールームは満杯。やはりKubernetesは注目されているなぁ、といった印象でした。

武山さんから、openSUSEの説明を5分ちょっと、それから私がKubicのインストールとKubernetesの起動を説明し、その後で再び武山さんがKubernetesの実践例を解説しました。

講演でKubernetes、Kubicに興味を持ってくれた方も少なからずいらっしゃって、講演後に詳細記事を書いているGeeko Magazineを求めにブースに来てくださる方もいらっしゃいました。

Kubic関連の情報はGeeko Blogでも常時発信していきますので、是非チェックしてみてください。


Kubic

ついこの間、CNCFに認定された事も受けて、是非どうですか?と、IaaSサービスさんにアピールさせて頂きました。前向きなお答えを頂けた所もありましたので、クラウドでKubernetes On Kubicな日も近いかもです。期待していますよー!

SUSE ソフトウェアソリューションズ ジャパン

今回もSUSEさんから景品提供頂きました。ロゴの入ったかわいいタンブラーですね。私も一つ欲しい・・・

大きいぎーこ君の保管、いつもありがとうございます。

打ち上げ

土曜日の終了後、Debianの方と打ち上げへ。なぜそうなったかといいますと・・・GNOME WaylandでCJKのInput Methodに問題がある、との事で、ディストリビューションを横断しての検討会話をしていたのです(私はその方面は明るくなく、主に武山さんが)。

その中で、ディストリビューションを横断しての企画、例えばハック合宿とか出来たらおもしろいね、という話も出てきました。関西では谷口さんが合同LTに参加されたりもしてますし、関東でもいろいろできたら面白そうですよね。イベントに参加することがあればレポートしますし、興味のある方は参加も検討してみてください。

なんかめっちゃ有意義でした

Kubicのアピールも上々で、安藤さんのように、名前は聞いているけれどお会いしたことは無かった方達と何人かお会いできたり、商業誌の方とお知り合いになれたり、昔の同じ職場の方がきてくださったりと、非常に有意義な二日間でした。

皆さん、ありがとうございました。次は2019 Tokyo/Fallでお会いしましょう。

その前に、7月開催予定のopenSUSE mini Summitですね。ぎーこ君プレゼント予定ですので、欲しい方は是非チェックしてみてください。

写真

橋本修太です

さて、突然ですが、今私のKubernetes環境はこんな感じになっています。

KVMは仮想マシン、KubicはopenSUSEのKubernetes専用ディストリビューション、masterやnodeはKubernetesクラスタでの役割を表しています。

ルーターに有線でデスクトップが繋がっていて、そこに3つKubicを走らせています。

また、ルーターはWiFiルーターに繋がっていて、WiFiでノートパソコンと通信、そのノートパソコンの上にも3つKubicが走っています。

それをですね、こうしたいのです。

デスクトップのnodeを、ノートパソコンのKubernetesクラスタに組み込みたいのです。

ノートパソコンは、メモリは16G積んでいて少し余裕はあるものの、CPUはcore i5で、KVMをこれ以上増やすのは難しいです。

そこで、クラスタの利点を活かして、デスクトップからnodeを引っ張ってくるわけです。

とりあえずこれでできました

KVMはデフォルトで閉じたネットワーク(ホストの外側からは中にアクセス出来ないネットワーク)を作成します。ただ、これはNATなので、ゲストからホストの外側にはアクセス出来ますが・・・

そこで、色々とやってみた結果、次のような方法でホストの外からのアクセスが出来ました。

  • 【ノートPC】KVMでバーチャルネットワークを作成、マスカレードで接続
  • 【デスクトップPC】ブリッジを作成

検証や調査等はおいおいやっていくとして、それぞれの設定を書いてみたいと思います。

今回は【ノートPC】編、次回は【デスクトップPC編】です

WiFi接続しているノートPCにブリッジを作成することに挫折

グーグル先生に教えてもらって、いくつかの方法を試したりしたのですが、どれも挫折してしまいました・・・

どうやら、ブリッジはレイヤー2で転送するものらしいのですが、WiFiはレイヤー2転送に対応していないというのが、WiFiでのブリッジ作成が難しい理由の大きなところらしいです。・・・いまいちピンとこないので、後ほど詳しく調べてみたいと思います。

parproutedやebtablesなどでレイヤー2転送を設定する

parproutedはarpをプロキシするものとの事です。また、etablesはEthernetフレーム用iptablesとの事です。parproutedはopenSUSE Leap15で上手く動かせられなかったり、ebtablesが意図した通り設定出来なかったりして、挫折してしまいました。

バーチャルネットワークを作成

Facebookでそんな事をなげいていたら、Saputro Aryuliant氏より、「KVMのバーチャルネットワーク設定して、iptablesでマスカレード設定すればいけるよ」とのお助けが。

「ホストPCの外から、ゲストPCにアクセスできる?」と聞くと、「iptables設定すればいけるよ」とのことでしたので、早速試してみることに。

KVMの設定

ルーティングでネットワークを作成します。

設定はvirt-managerでこんな感じです。

編集 > 接続の詳細

から、「仮想ネットワーク」タブを選んで、左下のプラスのアイコンをクリックして追加します。

デバイスにwlan0(WiFi)、方法にルーティングを指定している所がポイントです。

これ、デフォルトのNATネットワークだとだめなのかな?

iptablesの設定

まず、ノートPCでipv4のフォワードを有効にします。

sudo sysctl -w net.ipv4.ip_forward=1

これは再起動するとクリアされてしまいますので、常に設定したい場合は /etc/sysctl.d/の中に、{好きな名前}.confという名前で設定ファイルを作成して、その中に記述しておけばOKです。

確認は以下のコマンドで。

sudo sysctl -a

設定項目が表示されますので、grep -i forwardとかで絞ると楽に確認できます。

それから、同じくノートPCにマスカレードを設定します。

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE

  • -t nat パケット中のIPアドレスを書き換える用のテーブルを編集
  • -A POSTROUTING 転送でパケットが出ていく時に処理を行う
  • -s ここで指定した所から来た(Source)パケットに対する処理
  • -j 指定した処理を行う 今回はマスカレード

これで、ノートPCの上で走らせているKVM上のKubicが、自由に外にアクセスできるようになりました。

ノートPCの上で走らせているKVMにデスクトップPCからアクセスする

とりあえず、アクセスしたいマシンやKVM上のKubicで、以下の設定を行いました。

ip -4 route add 192.168.100.0/24 via 192.168.0.12

192.168.100.0/24行きのパケットは、192.168.0.12(ノートPCのIPアドレス)をデフォルトゲートウェイにしてね、という設定です。

これで、デスクトップや、そこで走っているKVM上のKubicから、ノートPC上のKubicにアクセスできるようになりました。

・・・もちろん、デスクトップ上のKVMも、ブリッジ設定して、ホストの外へアクセスできるようにすれば、です。その様子はまた次回に。

感想&課題

  • ネットワークの基礎が無いのでちょっときつい
  • レイヤー2ルーティングでブリッジ作成は可能?
  • そもそもルーティングによる接続ってなんだろう
  • ホスト外からアクセスする方法がスマートでない
  • この辺りをもうちょっとまとめたい

橋本修太です。

例によって例のごとく、よくわからないけど動かなくなって、よくわからないままに手探りで解決したので、覚書を残させて頂きます。

現象

kubectlでdeploymentのyamlをapplyしても、DESIREDからCURRENTに移行しなくなった

要するに、新しいpod(Dockerで言うところのコンテナ)が動かなくなった、という事です。

原因

不明

直前に、nginx-ingress入れたりしていたんですけど、それでしょうか・・・・

解決方法

crictlで、Exitedなkube-controller-manager-****を削除したら、動き出しました。

手順

現象発生時、何かを調べたとは思うのですが、忘れてしまいました・・・とりあえずKubernetesを再起動させました。

NODEの削除(masterでの作業)

$ kubectl drain <node name> –delete-local-data –force –ignore-daemonsets
$ kubectl delete node <node name>

NODEの再起動(master含む各NODEでの作業)

$ kubeadm reset

$ reboot

いつもこの方法なんですけど、これでいいんでしょうか?

そして、いつもどおり起動していきます。

master起動

kubeadm init –cri-socket=/var/run/crio/crio.sock –pod-network-cidr=10.244.0.0/16

cp -i /etc/kubernetes/admin.conf ~/.kube/config

kubectl apply -f ./kube-flannel.yml

最後の、flannelのymlは、githubから落としてきたものです。詳細はGeeko Magazineをご覧ください。ただ、README.mdに書いてある、以下のコマンドでも正しく動きそうですね。flannelかな?と思って、こちらで試してみたのですが、動作は同じようでした。masterなので、いつどういう動作をするかは、保証されないのでしょうが・・・

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

そして、同じ現象に出くわします。nodeの状態を以下のコマンドで確認するのですが、

kubectl get nodes

ずっと、STATUSはNotReadyのまま。

kube-system(というnamespaceで配置される、システム系のpod)を確認します。

kubectl get pods –all-namespace

すると、kube-controller-manager-****(****は、マスターのマシン名)のSTATUSが、CreateContainerErrorとなったまま。

ふーむ・・・ここでグーグル先生に泣き付く事小一時間。こんな感じで辿りました。

ログ確認

journalctl

Kubicは、Kubernetes関係のログはほぼここに入っています。いるはずです。いると思っています。

すると、こんな感じのログが立て続けに出力されていました。

pod_workers.go:190] Error syncing pod
****************** (“kube-controller-manager-linux-riis_kube-system(*********************)”), skipping: failed to “StartContainer” for “kube-controller-manager” with CreateContainerError: “the
container name \”k8s_kube-controller-manager_kube-controller-manager-linux-riis_kube-system_********************_**\” is already in use by \”************************************
\”. You have to remove that container to be able to reuse that name.: that name is already in use”

******はマスクです。ランダム英数字が入っています。また、linux-riisが、masterのマシン名です。

podのログも確認してみましたが、同じようなログが出力されていました。(はずです・・・もしかしたら、コンテナを生成できなかった、程度だったかもしれません・・・)

kubectl logs pods/kube-controller-manager-****(マシン名) -n kube-system

-nオプションで、namespaceを指定しないと、見つからないと言われるので注意です。

ふむふむ、どうも、IDだかがかぶってしまって、新しいkube-controller-managerを起動できないようです。

ここでイメージとコンテナの確認です。Kubicはcri-oを使っているため、コンテナ関連のコマンドはcrictl、サービスはcrioになります。crictlのホームページはこちら。Dockerと似たような感じで使えるのではないでしょうか。ちなみに、このコマンドが入っているパッケージはcri-toolsです。

サービスステータスをチェックします。

systemctl status crio

CNIのデフォルトネットワークが見つからないよ、というエラーが見えますが、flannelを適応すれば直るでしょう・・・直ると信じたいです。(事実、直りました。)

では、コンテナの確認です。

crictl ps -a

すると、Runningとなっているものと、Exitedとなっているもの、2つのkube-controller-manager-****が。その他にも、kube-apiserver-****や、kube-scheduler-****も同じように、二種類。

Exitedとなっているものは不要なので(不要で終了したのでExitedなはずなので)、削除しましょう。

crictl rm ****(コンテナIDです。先のcrictl ps時に表示されます。)

そして、システム系のpodを確認。

kubectl get pods –all-namespaces

すると、なんと、kube-controller-manager-****が、Runningに変わっているではありませんか!

ただ、ちょっと待ってkubectl get nodesしても、NotReadyだったので、同じくExitedだった、kube-apiserver-****と、kube-scheduler-*****のコンテナも、削除しました。

そして待っていると・・・・無事、masterがReadyになりました。

後は、ワーカーNodeのkubeadm joinもすんなり動き、正常稼働に戻りました。

課題&感想

  • 情報収集の方法をもっと知りたい
  • crictl知ったのは良かった
  • Kubicの再インストールを考えたけど、粘ってみてよかった。(いつもこうとは限らない)
  • 正常時のログとかを認識していないと、異常時にあたりを付けにくい
  • ingressは、Kubic用があるっぽい
  • 今見てみたら、kube-schedulerとか、Exitedなのがあった・・・

この記事は、「openSUSE AdventCalendar 2018」19日目の記事です。

皆さんこんばんわ。橋本修太です。

今日は、本家MLでみかけた豆知識について紹介したいと思います。

スレッドの流れ

①投稿者は、古いラップトップがTumbleweedで上手く動かないようです。でも、Windowsや、Leapだと上手く動く模様。そして、エラーメッセージを添付しています。

②エラーメッセージを見た他の方が、対処方の書かれたページを案内してくれます。「グーグルすれば見つかるよ」

③投稿者は、そこにかかれてあった方法で無事に解決しました。「なんてことだ、どうしてぐーぐる事をすぐ忘れてしまうんだ」(すみません、多分な訳です)

めでたしめでたし・・・・なのですが、この次に、SUSEで カーネル開発を行っている岩井氏が、次の投稿を。

④【意訳・一部抽出】ちょっとこのバグについて補足を。どうしてこの現象がLeapでは起こらないかと言うと、Leapのカーネルにはワークアラウンドを適用していて、この手のバグが発生しないようにしている。それに対して、Tumbleweedは可能な限りupstreamに近い形を保持しようとしているので、こういうワークアラウンドは適用していない。そのうちupstreamで修正されるんじゃないか?

※①のMLはこちら 右下のnextから次の投稿へ進めます。

ふむふむ。確かに、TumbleweedとLeapのコンセプトに合うやり方ですね。

カーネル

そこで、カーネルのパッケージを眺めてみたのですが・・・申し訳ありません!リテラシーが無さ過ぎて、ここだ、という部分は見つけられませんでした。

眺めてみたページはこちら。

kernel-source.changesを比べてみるのが、それっぽかったです。Tumbleweedは次々と新しいバージョンのカーネルが適用されるログが見られ、Leapは長いことパッチ適用が続いています。(少なくとも、そういうふうに見えました。)

TumbleweedはTumbleweedで、パッチ類は何もしていない、という訳でもなさそうですね。

課題&感想

  • カーネル読みたい
  • そもそもOBSでのパッケージングを知りたい
  • 機会があれば岩井さんとお会いしたい
  • Tumbleweedの方にだけ、klpなんとかっていうのがあって、どうも、Kernel Live Patchの事っぽい

明日は @ftake さんによる、openSUSEでChromeを使う方法です。こちらもemacsインストールの記事等のように、即効性の高い記事になりそうですね。こうご期待。

この記事は、「openSUSE AdventCalendar 2018」16日目の記事です。

皆さんおはようございます。橋本修太です。

さて、先日jaのMLにこんな投稿がありました。

【意訳】

openSUSE(Kubic)でCloud Foundry動かしたことある人います?

Kubicのキーワードが目に止まり、はて、Cloud Foundryとは?と思った私は、調査してみました。

本記事は情報収集のみとなります。「やってみた」は次の機会になりますこと、ご了承ください。

Cloud Foundryとは

ホームページはこちら。概要を纏めてくださっているページが幾つか有りますので、それらを見ていきますと、どうやら、webアプリケーションのソースコードをpushするだけで、ビルド・デプロイを自動で行ってくれる、オープンソースのソリューションの模様(商用版もあり)。イメージとしてはherokuに近いですね(こんな記事もありました)。

「アメリカのFortune 500企業のうち約半数が導入済み」といった謳い文句も見られますね。

インストール方法

いくつかあるようです。Cloud Foundry自体、複数のコンポーネントで構成されるソリューションなので、手順があったり、インストールを支援してくれるソリューションがあったりします。

また、Pivotal、SUSEなどがチューニングしたソリューションもあって、それぞれ強みがあるようです。

ちなみに、Cloud Foundryとやりとりを行うコマンドラインツール群、cf-cliは、openSUSEにパッケージがありました。(動くかな?)

A. PCF-DEVをインストール

PCFとは、Pivotal Cloud Foundryの略です。Pivotalはクラウドで有名な会社のようです。

ここが展開している、ローカル開発用のCloud Foundry、PCF-DEVが、インストールしてみるには丁度良いよ、という投稿もstack overflowで見たりしました。

構成としては、Linux(私の場合openSUSE)の上に、VirtualBoxを動かし、その中でPCFを動かすようです。

インストール方法はこちら

B. BOSHでインストール

BOSHは、Cloud Foundryの導入・運用を制御するソリューションのようです。

単一マシンに展開したり、クラスタ構成に展開したりもできるようです。

通常、Cloud Foundryをインストールと言えば、この方法が正攻法?なのかもしれません。

C. SUSE Cloud Foundryをインストール(on Vagrant)

SUSEも、Cloud Foundryには力を入れていて、チューニングしたソリューションを持っていました。

githubはこちら

主なチューニング点として、以下が挙げられていました。

  • Kubernetes(Docker)の上で動くように、Cloud Foundryのコンポーネントのコンテナライズにfissileを使っている
  • Cloud FoundryのコンポーネントはopenSUSE Steamcellで動く
  • オプションとして、Cloud FoundryのAppをopenSUSE stackのpreviewで動かす事が出来る

Steamcellだの、stackだの、previewだの、ちょっとピントこない単語が沢山・・・これらはおいおい調べていく事にしまして、1番目に付いて、もともとCloud FoundryはKubernetesの上で動くようには作られていなかったのですが、そこをSUSE等が開発したとの事です。

件のgithubには、on Kubernetesで動かす方法も記載されているのですが、ここではPCF-DEVと同じように、VMの上で動かす方法を。

Disclaimerに、「openSUSE 42.xは、libvirtでテストしてますよ」とあります。ここが42.xになっているのが、ちょっと気になるところですが・・・(あと、SUSEのgithubなのに、openSUSEがOpenSUSEになっている所とか)

あとは、Deploying SCF on Vagrantのセクション通りにやっていけばよさそうです。

ただ、要件にいきなり「メモリは16G以上は用意してね」とあって、私のデスクトップはもう無理状態です。

D. SUSE Cloud Foundryをインストール(on Kubernetes)

C.で触れましたが、Kubernetesの上にインストールできるのが、SCFの強みとの事。Helmでインストールするようですね。インストールページには要件等書いてありますので、適応させて行けば動くでしょうか?

ちなみに、環境チェック用スクリプトがあるのですが、Kubic上で走らせた所、半分ぐらいerrorとなってしまいました。

課題&感想

  • やってみる!
  • もう少し、正確かつ精密な情報を収集し、記事にする

駆け足で情報収集だけしたのですが、結構複雑な構成をしていて、ちゃんと理解しようとするとそれなりのボリュームになりそうです。使う側は、ソースコードをcf pushすれば、デプロイまで完了、とやりやすい事この上無いですね。

では、16Gメモリを積んでいるノートPCがあるので、近いうちにやってみたをやってみたいと思います。

明日は @ftake さんの、geeko.jpをメンテナンスした話ですね。塩漬けに近かったサイトですので、色々と面白い話題が出てきそうです。こうご期待。

 

 

 

 

openSUSEでDvorakキーボード配列を使う

By Syuta Hashimoto @ 2018-12-12 07:27

この記事は「openSUSE AdventCalendar 2018」12日目の記事です。

※2018/12/15 頂いたコメントを反映しました

全国1名※1のDvorakキーボード配列ユーザーの皆様、こんばんわ。橋本修太です。

※1 独自調査(要するに、私は一人しかDvorakユーザーを知らないのです・・・)

それでは、早速openSUSEでキーボード配列をDvorakにする方法を見てみましょう。

結論 YaSTで設定

YaST > ハードウェア > システムキーボード配列 と辿っていきます。

そして、このシステムキーボード配列を選択すると出てくる一覧から、「Dvorak」を選択します。

一番上なので、選びやすいですね。みなさんもどんどんこのDvorakを選択していきましょう。

Dvorakとは

Dvorak博士が考案した、タイプしやすさを考えたキーボード配列です。左手の小指の所が「a」なのは変わらないのですが、そこから内側に向けて「o」「e」「u」「i」となっています。これ、ローマ字タイプですと、母音に当たりますね。なので、感覚的に右手、左手、右手、左手、と、リズムを刻むように交互に指を動かす感じになって、スムーズにタイプが出来ます。

配列の全容は先程のページでどうぞ。タイプ負荷か減るので、腱鞘炎の予防にもなるとの事です。

使っている感想としては、キーがほぼホームポジションで足りるので、指を少ししか動かさずにタイプ出来ます。QWERTY時の幅広く指を動かさないといけないダルさが全く無いです。素直に、楽ですね。

一般的なキーボード配列

対して、一般的なキーボード配列は「QWERTY」と呼ばれています。左上の「Q」から右に向かってキーを読んでみましょう。ほら、「QWERTY」になりましたでしょう。

このQWERTY、生い立ちには諸説あるようですね。様々な理由から少しづつかわっていって、この形になったようです。

その他の設定方法

さて、さっきはぱぱっとYaSTでDvorakを設定してしまいましたが、X環境下なら以下のコマンドで設定も出来ます。

setxkbmap dvorak

これをXmodmapに書いておけば、Xセッション開始時にDvorakにする事も出来ますね。

ちなみに私はXmodmapには以下の設定を書いています。

!replace 無変換 to Alt_L
keycode 102 = Alt_L
!replace 前候補変換 to Alt_R
keycode 100 = Alt_R

スペースの左の「無変換」を左Altに、右の「変換」を右Altに、それぞれ割り当てています。

※2018/12/15追記

@ftakeさんより、コメントを頂きました。

ibus-mozc を使っている人は、エンジンに Mozc (Dvorak) を追加するだけでも使えます。Mozc (JP) や Mozc (US) も追加しておけば、Super+Space でレイアウトの切り替えもできます。

との事です。をを、なるほど。

そう言えば、その昔、この辺りの設定でDvorakにした事があったような・・・

と、いうことで

YaSTで簡単設定なので、是非皆さんもDvorak試してみましょう。すっごく楽ですよ。

課題&感想

  • 職場のキーボードはQWERTYから変更できなかったりする
  • emacsのキーバインドが意図された動きでなくなる
  • 物理的にプリントされているアルファベットが参考にならないため、ランダム文字列のパスワード入力とか至難
  • YaSTの設定は結局何処の何を設定している?
  • 右手、左手、の交互打鍵が、たまに入れ替わってしまう
  • ログイン時はQWERTYで、コンソールでもXでも、ログインしたらDvorakにしたい

そういえば、以前ribbonさんにタイピング練習ソフトを紹介して頂いたような・・・ribbonさん、何でしたっけ?

※2018/12/15追記

@ribbonさんより、教えて頂きました。

GNU Typist https://www.gnu.org/software/gtypist/ の、たぶん前身です。
今見てみましたが、Dvorakコースがあります。

今度やってみたいと思います。

明日はemaxserこと、川上さんの、openSUSEでDropboxを使う記事です。即効性の高い記事になりそうですね。こうご期待。