IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

スーパーエンジニアの独り言

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第49回 シャンティシャンティ 2015年8月

 「シャンティ シャンティ シャンティ」"Shanti Shanti Shanti"

 どこか宮沢賢治の詩の中に出てきそうなオノマトペの響きで「アンシブル」という意味不明な名前を知りました。どうやら「アンシブル」(Ansible)とはソフトウェアの名称らしいのです。そこで「アンシブル」について調査してみることにしました。その探索過程をここに記すことにします。

 まずアンシブルが何者なのか?ということですが、マイケル・デハーン(Michael DeHaan)という米国の方が作成したソフトウェア・ツール(道具)です。カテゴリとして分類されるのは「構成管理ツール」"configuration management tool" という代物です。パイソン(Python)というプログラミング言語で実装されています。

 仕組みは、ssh(Secure Shell)で接続したリモートマシンにsftp(SSH File Transfer Protocol)で必要なコマンドを送信した後にリモート側で実行します。

図1.仕組み

fig01

 図解した様に、とてもシンプルな仕組みです。機能としては要するにリモコンです。リモコンとなるべくアンシブルをインストールするのは、「コントロールマシン」"control machine" だけです。リモコンで操作される(コマンドをリモートで実行される)のが管理対象となる「マネージドノード」"managed node" となります。また複数を対象にしてコマンド並列実行が可能でマネージドノード "managed nodes" にもできます。

図2.システム構成

fig02

 必要とされる環境はコントロールマシンにはPython 2.6(もしくは2.7)だけがあればアンシブル(Ansible)をインストールできます(Python 3 は現在サポートされていませんが今後のAnsible 2以降のリリースで対応予定との事)。因みにアンシブルの最新バージョンは、1.9.2 "Dancing In the Street" (Jun 26, 2015)です。リリースを遡ると、1.8 "You Really Got Me"、1.7 "Summer Nights"、1.6 "And the Cradle Will Rock"、... 1.0 "Eruption"、0.7 "Panama" などと続いています。 お気づきかもしれませんがリリース名がヴァン・ヘイレン(Van Halen) の曲名になっています(最初の二曲はカバーソングです。ヴァン・ヘイレン押しなのはデハーンさんの好みなのでしょうが、とても好感が持てます)。

 管理対象となるマネージドノードにはPython 2.4(出来れば2.5)以降がインストールされていれば良いだけです。ですが、ほとんどのLinuxディストリビューションにはPythonがプリインストール済みであることからほとんど何もせずに手軽に使えそうな感じです(PowerShellを使えばWindowsマシンをマネージドノードとすることも可能だそうです)。

 そして利用のための設定は主に二つあります。「インベントリ」"Inventory" と「プレイブック」"Playbook" です。商品目録や在庫品を意味するインベントリにはアクセスするリモートホスト(マネージドノード)の情報を書きます。他方、戦略を意味するプレイブックはリモートホストで実行したいプレイ(タスク)を書きます。プレイブックのファイルフォーマットはYAML(YAML Ain't Markup Language)で記述し標準で提供されるモジュール(module)を指示することが出来ます。標準モジュールはPythonで実装された処理の最小単位となるものが用意されており、実行したい処理に該当するモジュールを選び組み合わせて記述することで意図する処理が可能なタスクが出来るという仕掛けです。

 モジュールには標準モジュールだけでも十分な数(二百以上)がありますのでお好きなものを取捨選択できそうです。また標準以外にも公開された共有リポジトリ(アンシブル・ギャラクシー、Ansible Galaxy)が存在しますので、有用なモジュールや利用方法を見つけ出すこともできそうです。もしそこにも意図するものが無ければPython(もしくは、シェルスクリプトなど)で自作モジュールを作成出来ます。またプレイブックは単なるデータフォーマットであるYAMLで記載できるのがとても魅力的です。

 ここまでのアンシブルの印象としては、事前の環境要求事項の少なさから来るお手軽さとシンプルな仕組みで出来ている構成から非常にセンスの良いものと感じました。

 更にアンシブルがカテゴライズされている構成管理ツールと呼ばれる他の有名なソフトウェアと簡易ながらも比較してみることでその立ち位置を把握してみようと思い試みました。それをまとめた図を掲載します。まとめに記載している抽出した項目は、登場年、実装言語、定義ファイル形式、スケーラビリティの大小、共有リポジトリの有無、管理ノードへのエージェントインストールの要不要、学習及び運用コストの高低、です。

図3.構成管理ツール

fig03

 特に着目できるのは、学習及び運用コストの低さです。これはDSL(domain-specific language、ドメイン固有言語)を使わずに済むという事が要因として大きいのです。持論としてドメイン固有言語は無ければそれに越したことはないと考えているからです。DSLは確かに局所的な問題解決に特化したものとして、その状況下だけの問題解決を行う有効な方法であることは違いないとそれには同意します。対象としている処理、それだけを記述するためだけに存在するのですから語彙も少なく記述も簡易になるので勿論有効なはずです。しかしながら、対象となる事象が一つであれば良いのですが幾つもあった場合には事象と同数となる幾つもの固有DSLが登場する羽目になりますので、もはや利用者が覚えきれないということが起こるでしょう。特にRubyの(内部、外部問わず)DSLでは、方言になぞらえることができる程にRubyのスクリプトではないのに等しいもの(記法)となりますので、なるべくならば標準のRubyの記述で対応できることを強く望んでいるのです。実際に頻繁に使っていなければ該当DSLを思い出すのに時間が掛かって逆に手間になります。つまり、できればDSLは無い方が良いというのが結論です。アンシブルではRubyやPythonといった軽量プログラミング言語に拠るDSLではなくデータフォーマットのYAMLで記述します。記述内容としては指示書になるのでDSL同等の内容となるのですが、データフォーマットが故にその敷居が低いという事が有効に作用するものと期待が持てます。ですから学習及び運用コストが低いとみているのです。

 このように並べて眺めてみると筆者の観点ではアンシブルは中々良い位置に居ることが分かります。ライバルとなりそうなのはソルト(Salt)ですが、知名度の低さは排除できるものの共有リポジトリが存在しないという点が大きくマイナスです。何故なら、共有リポジトリは重要だからです。知見を共有する場があることで様々な立場で試みている利用者の方々が集いその情報がリポジトリとして蓄積し集約されているのですから、同様の障害や不具合についての履歴、或いは、遭遇した問題も既に解決済みでその回避方法、そして便利なユーティリティ(モジュール)が公開されている事を含め利用を続けていく際には共有リポジトリの存在は重要なポイントとなります。

 このように調べていくとアンシブルから想う事、そしてその先に視えてくる事が少なからずあるのですが、少し時間を置いて熟成させ僅かでも熟考した方が良いとも想われますので、また別のタイミングで再考する機会に譲りたいと思います。

 因みに当初筆者が反応した音であるアンシブル(Ansible)の語源ですが、ランチボックス型の超光速通信機器の事だそうです。これは女流作家のアーシュラ・クローバー・ル=グウィン(Ursula Kroeber Le Guin)が執筆した「ハイニッシュ・サイクル」"Hainish Cycle" というS.F.小説 シリーズに登場する架空の機器の名称でした。ジブリでアニメ化された「ゲド戦記」"Tales from Earthsea" は彼女の著作であると言えばその巨匠ぶりがご理解頂けましょう。アンシブルの共有リポジトリが銀河になぞらえているのもこれで納得がいきました。

 その超光速通信機器アンシブルの作者であるマイケル・デハーン(Michael DeHaan) 氏に関する情報からの推測ですが、これまたオノマトペのような響きのデハーン(DeHaan)という変わった名前はオランダに由来する名前らしく米国人である彼の御先祖様がオランダ出身とも憶測されます。また彼の経歴をみると、RedHatに在籍(在籍中にCobblerを作成)、その後Puppet Labs, Inc.を経由してAnsible, Inc.を創業した様子なのですが、現在はCTOを辞して転職(DataStaxを経て、現在時点でInteractive Intelligenceに在籍)したみたいです。どうやら一介のプログラマに戻ったのかもしれませんし、現場の方が性に合っているという事なのかもしれません。この経歴から分かることとして代表的な構成管理ツールを複数経験し酸いも甘いも良く知った上で別のアプローチとしてアンシブルを制作したことが伺えます。ですからツールを並べた際にシンプルな構成が引き立つ優位性をアピール出来ているのだろうと想像に違わないでしょうし、今後はアンシブルが流行りとなっている構成管理ツールのラインアップの中で一際注目されるのではないのかと考える予測も出来ましょう。

 昨夜、芥川賞のピースの又吉(又吉直樹氏)と大阪のオバちゃんが出演していた「オイコノミア」というテレビ番組を観ていましたら、経済学では「流行りに乗る」というのは、探索費用(サーチコスト)を減らすという意味で合理的な経済行動との事です。慶應義塾大学の先生(中島隆信氏)が解説されていました。特に流れの速いIT業界では特殊用途、又は、よほどニッチな存在以外は旬が過ぎると直ぐに陳腐化してしまい流行り(本流)以外は淘汰されて残らないという知見をお持ちの事でしょう。つまりは川の真ん中で流行りに乗っておけば、将来どうしてもマイグレーションしなければいけないと言った様な機会費用(オポチュニティコスト)を排するという意味でも効率的です。この業界では流行りに乗るのが何よりの得策(合理的な経済行動)なのかもしれないと思いを巡らせます。

 ところで流行りに乗るという意味でも前回のコラム(「第48回 ジルスコット」)にて、まるでオノマトペにしか聞こえなかった名前「トーフビーツ」(tofubeats)を同僚に教えて貰ったという件を綴りましたが、そのトーフビーツによる「水星 (suisei)」というお薦めされた楽曲を聴いてみましたが、打ち込みエレクトロニカ(Electronica)系のトラックに歌謡曲テイストのメロディが載ったとても良い曲でした。

 この「水星」ではトーフビーツが奏でるトラックで唄っているのが会社員ラッパーのオノマトペ大臣(Onomatope Daijin)です。彼をフィーチャした「水星 feat,オノマトペ大臣」がオリジナルの楽曲としてリリースされているのを聴いたのです。期せずして前回コラムでのオノマトペが被りましたが、この「水星 feat,オノマトペ大臣」という楽曲が iTunes Music Store にアップロードされるとダンス・チャートで一位を獲得すると同時に12インチEP盤もリリースされて全国のレコード・ショップで一大旋風を巻き起こしたそうです。そんなムーブメントの存在すら全く知りませんでした。

 そんなことは露知らず後輩にお薦めされた曲を聴いてみると、ラップ/ヒップホップ・ミュージックと所縁のない筆者にとって新鮮には感じましたが歌謡曲風味でアレンジされているのでとても聴きやすくスチャダラパーが小沢健二と共演した「今夜はブギーバック」を想起させるものでした。それに相当する程に「水星」という楽曲自体がとても良いものと感じました。

 トーフビーツ(tofubeats)は、他の楽曲でも森高千里という燦然と輝くメジャーシンガーを筆頭にBONNIE PINK(ボニー・ピンク)、仮谷せいら(かりや せいら)、といった多数の女性ボーカルを配したコラボレーションをしています。他にも藤井隆とのコラボレーションもあり歌謡曲へのアプローチの特徴が見えます。どうやらトーフビーツが歌謡曲好きだったのだそうです。またこれらオリジナル楽曲をトーフビーツ自らによるリミックス(Remix)を盛んにリリースしているのもDJミックス系エレクトロニカの本領発揮ということでしょう。

 それらコラボレーション中でも世間一般の知名度を誇る森高千里を擁するという戦略はアプローチの成功と利害の一致を見たからなのでしょうが、これは有名なエピソードのエディ・ヴァン・ヘイレン(Eddie Van Halen)がマイケル・ジャクソン(Michael Jackson)の「今夜はビート・イット」"Beat It"でギターソロを弾いてその技量がMTVで広く露出したことで見事にロックのカテゴリを飛び越えて一般への認知を確保したことと相通ずるしたたかさも感じます。実際にはエディの場合はクインシー・ジョーンズ (Quincy Jones)から急に電話が掛かって飛び入りでレコーディングしただけ(しかもノーギャラ)で参加したのが結果オーライとなったのですが、トーフビーツの場合は計画的であり、この戦略が功を奏して一位を獲得するのにも繋がっているかもと勘ぐります。

 また「水星」は DAOKO(だをこ)という女性歌手(現役女子高生)がカバーしており、インディーズを経た彼女のメジャーデビューとしてのファーストアルバム一曲目に収録されています。歌詞が異なる当バージョンも彼女のパーソナリティを垣間見せながらも韻を踏んだ歌唱がとても良く頭の中に響いてきました。歌詞がするっと入ってくるのです。オリジナル曲のオノマトペ大臣とは違った味覚を得ます。「水星」という楽曲自体が絶大な評価を得ていることでDAOKOだけでなく様々なアーティストがこの楽曲をカバーしているのです。これに関してはEAST END×YURI(イーストエンド プラス ユリ)のミリオンセラーである「DA.YO.NE(だよね)」での女性ボーカルによるマイルドなテイストのヒップホップ・ミュージックを彷彿させるのと並行して同楽曲を元ネタにバリエーション展開を図った大阪弁「SO.YA.NA(そやな)」に端を発して、北海道弁、名古屋弁、広島弁、博多弁と次々とローカルバージョンをリリースした商魂逞しさも感じたのですが、「水星」では楽曲のカバーバージョンに留まることなく、これらカバーを原曲としたリミックスが星の数ほど無数に存在しているのです。この現象はインターネットを介して草の根レベルで行われており、楽曲のあり方に別の可能性も示唆するものでありましょう。デジタルデータ媒体がインターネット経由で市井の人が介入(自由に出入り)するというのは、人気を博しているオープンソースソフトウェア (Open-Source Software, OSS) とも相通ずるものがあるのではとも感じます。

 このようにして紆余曲折した末にようやく「トーフビーツ」(tofubeats)の楽曲を拝聴するに至りまして「『水星』って曲良いね。」という会話が教えてくれた後輩とやっと成り立ちました。そうすると彼は間を置かずに「『エビスビーツ』(EVISBEATS)も良いですよ」と返答。又もやオノマトペ襲来です。

 重ねレコメンドされました 「エビスビーツ」"EVISBEATS" はAMIDA(アミダ)さんが、一人で活動しているバンドなのだそうです。矢継ぎ早にトーフビーツの次にエビスビーツの楽曲を聴いてみますと、芥川龍之介の「蜘蛛の糸」を下書きにしたストーリーや坊主(男の子)と鳥の牧歌的な様子を描いた物語を言葉で紡いでおり、緩やかに流れるダウンビートのメロディに載せて正に阿弥陀如来を冠して無明の現世をあまねく照らすかの如く仏教をモチーフとした歌詞が散りばめられたヒップホップでこれまたとても宜しいものでした。通勤電車でヘビーローテになっております。

 「魔法の言葉はシャンティシャンティ。」

 宮沢賢治の童話で多用されている韻文を踏んだリズム感を持ったオノマトペは、まさにラップ(Rap)の源流とも言えるのかもしれないと勝手に推測しています。それ故に賢治の作品に親しんだ我々にとっては、ヒップホップ・ミュージック(Hip Hop Music)はどこか懐かしい響きを持って受け入れ易いのかもしれません。

 次回もお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes