LoginSignup
15
13

More than 5 years have passed since last update.

書評: Ansible実践ガイド / 北山晋吾・著 / インプレス (2016.12)

Last updated at Posted at 2017-01-05

最近同僚が書いた本の書評をひとつ。

Title: Ansible実践ガイド (Impress top gear)
Publisher: インプレス (Dec. 21, 2016)
Author: 北山 晋吾
ISBN-13: 9784295000464
Amazon: http://amzn.asia/baqt6oa

まず、感想を大きく2点ほど。
1) 単なる技術やプロダクトの入門書ではなく、ビジネスや運用を意識した上で、ansible をどう使いこなしてまさに「実践」すればよいのかを教えてくれる本。辞書として使うのは間違いで、読み進めるにしたがって自分で考えながら手を動かす必要がある。
2) ぜひ査読させてほしかったw

本書の構成は以下のようになっている。

  • 1章 Ansibleの概要
  • 2章 Ansibleの基礎
  • 3章 プレイブックとインベントリ
  • 4章 アプリケーションデプロイメント
  • 5章 システムの構成管理
  • 6章 ブートストラッピング
  • 7章 Infrastructure as Code の実践

最初の3章までが基礎編、4章以下が具体的なテーマに即した実践編である。

内容に入る前にざっくり条件を。

  • 対象バージョン: ansible 2.2
  • ansible 実行環境: CentOS 7.2
  • ansible の install 形態: distro package manager, pip, source install が網羅されている。
  • サンプルコード(プレイブック)は以下で公開されている。筆者はまだ試せていないが、基本的に記述の通りに作業すれば問題なく動作する(と、思う)。

以下、各章の紹介に移る。

1章では、Business Agility からはじめて、"クラウド" "DevOps" と話をつなげる中で、構成管理の変遷にともない、なぜ ansible のようなものが必要になったのか、説いている。
クラウド登場以前までの「ITサービスとしての構成管理」は、考え方としては ITIL ・ツールとしてはCMDBで行われてきた。これは、ある意味静的な構成管理であった。一方、クラウド以後に必要性が顕在化してきたのは 「動作しているシステムの(ある意味動的な)構成管理」である。これは、筆者の言葉を借りれば、「システムをあるべき状態に収束させること」とも言える。

この際、Infrastructure as Code といった「しくみ」を適用しようとするだけでなく、「しくみ」自体を組織の実情にあった形で展開するだとか、業務・運用の手順、さらには組織の文化を継続的に改善していくことが重要である。
これがもっとも重要な論点であり、実際本書を通して繰り返し述べられている。

2章と3章が ansible の基本的な解説である。

4章以下が、具体的なシナリオと playbook 例に基づいたansible の実践方法の解説である。

  • 4章 アプリケーションデプロイメント

keepalived + HAProxy + Apache2 + MySQL という多層クラスタ構成のWordpressサービスが題材である。単純に初期デプロイを行うだけでなく、台数増減やローリングアップデートのような運用シナリオも含め、具体的な playbook 例に基づいて ansible の使いこなし方が解説されている。

これは、5章以降でも言えることだが、現実的に維持可能な運用のためには、何に気をつけるべきなのか?繰り返し強調される。しかも、どんな組織にでも適用可能な絶対の答はないので、自分で考え続けることが重要である。

  • 5章 システムの構成管理

LinuxとWindowsを題材にとり、OSの初期設定 ansible で構成する方法が具体的に解説されている。
筆者には、特に、Windows でここまで自動化が可能になっているのは新鮮だった。

  • 6章 ブートストラッピング

6章の題材は、インフラレイヤのリソースプロビジョニングである。
API経由でインフラが操作できるクラウド環境として、Docker と OpenStackを題材に、ansible を用いてクラウド基盤上にインフラリソースを作成する方法が解説されている。
本章のキーワードとしてはダイナミック・インベントリ の考え方だろうか。

なお、ベアメタルへのOSプロビジョニングも、他のツールと組み合わせて ansible で制御はできるのだが、本書では割愛されている。1

余談だが、AWSやAzure等のPublic Cloudを例にとってもよかったのではないかと思う。ネット上や類書で情報が豊富にある(だろう)ことと、紙面の問題だろうか。

  • 7章 Infrastructure as Code の実践

最後の7章は、6章までの具体的なシナリオに即した解説にはそぐわない、全体的なベストプラクティスがまとめられている。

前半は「プレイブックのベストプラクティス」で、管理対象の規模に応じたプレイブックの構成方法(特に、柔軟性と可読性・保守性のトレードオフ)と再利用の実例、パフォーマンス・チューニング、トラブルシューティングである。
後半では、ansible そのものから一歩踏み出して、プレイブックのコーディング規約、バージョン管理、(プレイブック自体の)CIがカバーされている。

  • そのほか

全体的な感想をもう少し。
個人的には、「レビュー」の観点をもう少し入れても良かったのではないかと思う。筆者がかかわっている界隈では github の PR 機能ではなく gerrit を使っているのだが、これも紙面の都合だったのかもしれない。

  • まとめ

以上、単純なツールの使い方の解説ではなく、現場でどう使いこなして実践すればよいのか、具体的な例を交えて詳細に解説されている本である。オススメの一冊ではあるのだが、読者にもいろいろ要求する本なので、心して読んでほしい(笑)

  • Disclosure

本書の著者は職場の同僚ですが、私は自費で本書を購入しました。


  1. 昨今は、Composable Infrastructure 等と、物理的なハコもAPI管理できるようになりつつあるが、それはまた別の話。 

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13