連載 :
  Think IT Events

Ansible Practice Meetup ー「Ansible実践ガイド」出版記念イベントレポート

2017年3月21日(火)
三土たつお

昨年末にインプレスから出版された『Ansible実践ガイド』の出版記念イベントとして、著者である北山さんを招いてAnsibleの勉強会が行われました。さっそく内容をレポートします。

場所はいつものとおり神保町にあるインプレスセミナールームでした。

そして受付には『Ansible実践ガイド』の山が!

会場特別価格のうえ、もれなくサインがついてくるとあって、この機会に買い求める方も多く見られました。

システム運用のためのプレイブック(日本ヒューレット・パッカード 北山晋吾氏)

イベントの最初は、『Ansible実践ガイド』の著者である北山さんのお話からです。

北山晋吾氏(日本ヒューレット・パッカード)

北山さんは、Ansibleのプレイブックは設定ファイルではなくコードだと言います。

たしかに、「Infrastructure as Code」っていうぐらいですから、コードなんですよね。設定ファイルみたいに見えるけど。そして、コードだということは、品質管理やバージョン管理やテストの対象にもなるということだし、一般的な原理や原則が適用されるということです。

よく言われるコードの原則には、KISS、DRY、YAGNIなどいくつかありますよね。たとえば「YAGNI」は「後で必要になる、なんてことはない」という考え方です。将来使うかもしれない、という理由で不要なものを入れ込んだら、コードが要らないものにまみれてしまいます。

プレイブックの場合だとどうなるのか、YAGNIの例で見せてくれました。

この例では、RedHatやDebianといったディストリビューションごとに条件分岐するようになっています。でも、自分のシステムでは絶対にDebianを使うことはないと分かっているんだったら、その条件分岐をふくめて不要な部分を削っちゃったほうがシンプルで分かりやすくなりますよね。

YAMLファイルってふつう設定ファイルとして使うので、プレイブックも完全に設定ファイルだと思ってました。でも確かにコードだと意識しないといけないんですね。

そして、運用でもAnsibleを使おう、といいます。

Ansibleは、デプロイの自動化に利用されることが多いそうです。でも普段の運用でも使えるはずですよね。運用にはサーバーの再起動のような定常業務と、トラブルシュートのような非定常業務がありますが、向いているのはもちろん定常業務のほう。

定常業務のプレイブックを作る際は、例えば「nginxの再起動」のような単位で作るのではなく、

  • プロセス起動
  • プロセス停止
  • プロセス確認

のような単位で作っておけば、たとえば再起動は「停止+起動+確認」のようにして組み合わせで再利用ができるのでいい、とのことでした。

ロール適用ツール ~ansible-art~(bbrfkr氏)

bbrfkr(びびりふくろう)氏

bbrfkr(びびりふくろう)さんのプレゼンは、自作のansible-artというツールの紹介だそうです。どんなツールなんでしょうか。

「ロール実行用のplaybookの作成って面倒!」とbbrfkrさんは言います。上記のように、ロールを対象サーバに適用するだけのためのplaybookを書く必要があり、しかもロールごとに書かなければいけません。

その手間を省いて対象サーバにロールを適用できるツールを作ろう! と思って作ったのがansible-artだそうです。使い方は次のとおり、シンプル。

これにより、>ロール名<に指定したロールを、インベントリに書かれた対象サーバに適用します。内部的にはansible-playbookを叩いている、とのことでした。

シンプルに見えますが、ここに至るまでには

  1. 既存のツールの問題点を発見し
  2. 解決策を考え
  3. 実装して
  4. 公開する

という4つのステップを経ているわけで、すごいなと思います。なにかで少々不便を感じても「そういうものなのかな」ですませてしまうことが多いぼくの場合、最初のステップすら出来てないわけですからね。

AnsibleによるHWプロビジョニング -OneViewの連携-(木田貴大氏)

木田貴大氏(日本ヒューレット・パッカード)

次は木田貴大さんによるOneViewとAnsibleの連携についての話。

そもそもHPE OneViewとは、ヒューレットパッカードの開発したインフラ自動化エンジンです。物理ハードウェアのセットアップや運用などを幅広く行うことができます。

そして、ansible-oneviewというAnsibleのモジュール群を使えば、ansibleからOneViewを操作することができるんです。

それを使えば、物理サーバーのBIOSの設定から、OSのインストール、ApacheやPHPのインストールと設定、index.phpの配置までを一気にできます!といってデモを見せてくれようとしたのですが、プレゼンの発表用に用意されたマシンの都合で残念ながらデモが実行できませんでした。代わりに YouTube にデモ動画を公開していますので、以下をご覧ください。

ESXiと始める ansible(Hirofumi Hida氏)

Hirofumi Hida氏

サーバー仮想化ソフトVMware ESXiといえば、たいていの人はvSphere ClientかPowerCLIなどのクライアントで操作していることになると思います。

しかし、GUIで操作するのはオペミスもあるし、あるいは同じ作業を繰り返す場合に効率がよくありません。

そこでAnsibleです! ESXiを操作するためのAnsibleモジュールとしてはvmware_guestなどがあるそうです。

それをつかえば、たとえばESXi上にCentOSの仮想マシンを6台立ち上げる、といったようなplaybookも作れます、とのことでした。

Ansibleで味わうHelion OpenStack(塚本正隆氏)

塚本正隆氏(日本ヒューレット・パッカード)

最後は、日本ヒューレット・パッカードの塚本さんによるHelion OpenStackのお話。

そもそもHelion OpenStackとは、ヒューレット・パッカードの提供するOpenStack のディストリビューションです。

そしてこのHelion OpenStack(HOS)のインストール等を行うツールにHelion Lifecycle Manager(HLM)があり、この中でAnsibleが活躍しているのだそうです。

具体的には、物理ホストのプロビジョニング、設定、OpenStack環境の展開などにAnsibleが使われています。

インストールだけではなく、各サービスの起動・停止・監視や設定変更などにもAnsibleを使っています。エンタープライズ向けのOpenStack環境ではノードも数多くなるため、Ansibleとplaybookで管理するのが便利だ、とのことでした。

ビアバッシュ!

その後は懇親会となりました。

各テーブルでの話を聞いてみると、実際にAnsibleを使っていて困った点の相談が多いようです。たとえば、ansibleに対するテストはどうやっていますか、といった問題でした。テストについては誰も決定版という解答がなく、みな試行錯誤しているようすが伝わってきました。

(編注:2017年3月22日0時20分更新)記事公開当初、動画の埋め込みができておりませんでした。

当日の発表資料等はconnpassのページからご確認いただけます。
https://thinkit.connpass.com/event/47283/
1976年生まれ。プログラマー、ライター。プログラマーとしてはふだんPHPを書いてます。ライターとしてはニフティのデイリーポータルZとかで書いてます。近著「街角図鑑」(実業之日本社)。 http://mitsuchi.net/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています