さぽろーぐ さぽろーぐ

お客様のためにとことん疑う癖、調べる癖

サポートにおけるコマンド操作
シェア
以前の投稿で、EX-CLOUDのWordPressホスティングについてはSSLサーバー証明書のインストール作業をコマンドで行っているという話を書きました。

コマンド操作はサポート対象外となっているため、参考情報を提供するのみで、スタッフによる直接のサポートはしません。

もちろん、他の案件などでまったくコマンド操作をしていなかったのではありません。コマンド操作でサーバーにログインしてログを見ることや、サーバーの状況の確認を頻繁に行っていましたし、Plesk搭載サーバーのウェブやメール設定では、それぞれの修復コマンドを入力しなければ問題を解決できないケースもありました。

ただ、WordPressホスティングだけは特別で、SSLサーバー証明書をインストールする際には、サポートスタッフがコマンド操作でウェブサーバーの設定を変えること前提でログインし、サポートする必要がありました。

今回はなにかの事件ではなく、サポートにおけるコマンド操作について私の考えを書いてみたいと思います。

コマンド操作CLIとGUI

WordPressホスティングはWordPress用に準備されたLinuxのサーバーですが、WordPressダッシュボード以外はグラフィカルな管理画面は一切用意されていません。「このサービスの売りになる部分(SSL証明書のインストールなど)を提供するために、サポートでも最低限のコマンド操作が必要」ということになり、一部のサポートではコマンド操作が導入されました。

そもそも、コマンド操作ってどんなものでしょうか。

たとえば、グラフィカルな管理画面にアカウントとパスワードを入力して、画面上のボタンをマウスでぽちぽちっと作業を行えるのがGUI(Graphical User Interface)での操作です。サーバー全体のメール、ウェブ等の一元管理画面で言えば、PleskやCpanelのようなものだったり、メールの管理画面ならQmailAdminだったり、データベースならPHPMyadminだったり、さまざまなGUIの管理ツールと管理画面があります、

これに対して、ウェブブラウザーではなく、TeratermやPuttyなどのSSHターミナルソフトを用いてサーバーにログインし、文字入力でサーバーに対して指令を行うのがコマンド操作、すなわちCLI(Command Line Interface)による操作です。                

GUIは路線図による乗り換え案内、CLIは言葉による指令

私は、GUI作業は、電車の路線図を見ながら乗換駅を確認するようなイメージに近いイメージを持っています。これに対してコマンドラインでの作業は、言語を使った会話、もしくは計算式を提示しているような感じがします。

たとえば新宿三丁目から虎ノ門駅への行き方を、誰かに案内する例でイメージしてみましょう。

GUIで視覚に訴える方法は、新宿三丁目で路線図を片手に「丸の内線の赤坂見附で降りて、ホーム向かいの銀座線に乗り換えて浅草方面へ2駅進む」というような説明になります。地下鉄という交通手段に限定して説明することで、決まったレールに従ってコマを進めるイメージになります。

スタート地点は丸の内線新宿三丁目(M09)、銀座線を乗り継いで虎ノ門(G07)へ向かう。

それに対して、CLIでは、「新宿三丁目でタクシーを拾って、虎ノ門へ行ってください。道順はお任せします」と伝えるのに近いでしょうか。あるいはもっと手っ取り早く「虎ノ門駅のある北緯35度40分12.5秒 東経139度45分0秒の位置へジャンプ」という指令を出して瞬間移動するというイメージかもしれません。

コマンドのほうが自由に見える部分もありますが、一度成功したコマンドがいつも正しく機能するとは限りません。また、人間が行うことですから間違ったコマンドを入力してしまうこともあるでしょう。

たとえば、上記のコマンド例、「北緯35度40分12.5秒 東経139度45分0秒の位置」を伝える際、一文字でも数字や桁を誤ったらまったく別のところに着いてしまいます。

コマンドは自由度が高い分、それを使う人の現状把握力、記憶力(記録力)、判断力が試されるように思います。もちろん難しいものばかりではありませんが、何か操作をする場合「今の作業で何に影響がでるか、元の状態に戻せるか」などをきちんと認識しておく必要があるものだと思っています。

悪気のない1行のコマンドでサーバーも再起不能に

実際にあったお問い合わせの例です。

お客様
サーバーの調子がおかしくなったのですが……。
サポート
最後に何か作業をされましたか?
お客様
ファイルのアップロードができなくて、パーミッションの問題だろうと社内で言われまして。
サポート
はい。
お客様
ルート( / )からすべてパーミッションを777にしたのです。
サポート
……ぁぁ。すべてですか。チェンジモードのコマンドをルート以下すべてに対して発行したってことですかね。
お客様
はい。 chmod -R 777 / を実行しました。

chmodはファイルやディレクトリのパーミッションを変更するコマンドです。基本文法は「chmod アクセス権限 ファイル名あるいはディレクトリ名」。chmodの後ろに-Rをつければ、指定したディレクトリ配下すべてを対象にして変更を行うことになります。

つまりサーバー内のすべてのファイル、ディレクトリに対して一様に「すべて777で設定しなおそう」としたコマンドを発行したというものでした。

これをやられてしまっては、サーバーは決して元の正常な状態には戻せません。こちらのお客様はサーバーを再出荷することになりました。

コマンド操作の作業手順、どう共有すべき?

サポートスタッフへGUIベースの作業手順を伝える際は、ある程度手順は統一、単純化してよいと思います。一方で、コマンド操作については、方向性と作業例だけ提示して、仕様や基本ルールを伝えたら、作業者自身が、調べて、考えて、選択をしてもらうべきなのだろうなと思います。

コマンドは基本文字情報です。ただし、このコマンドの文字情報をただ伝えるのではなく、時間も与えて、理解してから実行させることをよしとしないと、スタッフの質はあがりません。

どんな人もコマンドを一行打つ前に、考えたり、立ち止まったり、顧客のサーバーの利用状況の特徴やこれから打つコマンドの詳細を調査したりしていいのです。

ちなみに、自分で調べ、考えるスタッフを育てるのは、職場環境なのか、自分自身の心がけであるかは私にはわかりません。けれど、経験で知ったことを共有して、認めてもらえる環境があるということは、周りのスタッフにとっても本人にとってもとても大事だと思います。

また、調べたり考えたりする前の準備として、さまざまな習慣づけも必要です。

お客様のサービス中のウェブサイトを見に行く癖、サーバーの状況を確認する癖、作業の影響を調べる癖、もっといいコマンドのオプションがないか追加で調べてみる癖、元に戻すためのバックアップを取る癖……。

シンプルですが、コマンド作業をする上で1つひとつがとても大事な癖だと思います。

こういったことは、コマンド操作でサポートをすることをメインとしている、私たちと同じフロアで働く別業務のスタッフは普通に行っています。自分の中にどうしてこういう癖が育ったのか、それは彼らと一緒に働いていた時に、考える癖、調べる癖を育ててもらったからに他なりません。

・コマンド文字列だけでは、検索で得られる知識となんら変わりがない。それは経験と言えるか。

・自分自身がきちんと確認し、考えて作業をしてもらえているか。

・スタッフがこのサポートをやめて別の就職先にいったとき、ここで何を学べたか答えられるか。

そんなことを考えます。

そして、スタッフにはコマンド操作をひとつやったくらいで、「できた」「わかった」と満足せず、その先やその手前、いろんな何かが転がっているものを見つけ、調べて、知ってほしいと思っています。

ピックアップフレーズ経験は検索エンジンからは拾えない。

個々人の知恵の向上は誰かと一緒に仕事をする上で、一番意義のあること。経験なくして知恵は得られない。

青影青影
サーバー内の情報を参照するコマンドは使いますが、ファイル編集や追加設定を行うコマンドはほぼ使いません。
私は素人ですが、これまで一つのコマンドが及す影響の怖さを耳にしてきました。
コマンド操作はエンジニア等、熟知した方が使うものであり。検証環境等での十分な訓練が必要だと思っています。
シェア
赤影
赤影
生まれも育ちもこちらの事業部というサポートスタッフです。平素より筆ペンとGimpを愛用しています。
おすすめの記事