このエントリーをはてなブックマークに追加

入門Ansibleを出版しました

この度「入門 Ansible」を、Amazonにて出版致しました。

今までAnsibleに関する日本語の本はありませんでしたが、Ansibleの入門書的な位置づけとして、まずこれを読めば分かる、ということを目指して執筆しました。

本書を執筆するにあたり、レビュー頂いた方々に感謝致します。

内容はちょっと長いですが、以下の通りです。

  • はじめに
    • Ansibleの特徴
    • Ansibleはシンプル
    • ChefやPuppetとの違い
    • Ansibleは "Better Shell Script"
  • Ansibleを使ってみよう
    • インストール
    • inventoryファイル
    • モジュール (module)
  • playbookを作ってみよう
    • YAMLの文法
    • playbookを書いてみる
    • playbookの解説
    • task
    • handler
    • よく使うモジュール
  • 複雑なplaybookを作ってみよう
    • 繰り返し -- with_items
    • 出力を保存してあとで使う -- register
    • 条件付き実行 -- when
    • 成功するまで繰り返す -- until
    • 外部情報の参照 -- lookup
    • 変数を処理する -- filter
    • キーボードから入力する -- vars_prompt
    • 管理ホストで実行する -- local_action
    • 実行するモジュールを変数で変更する -- action
    • 環境変数を設定する - environment
    • 失敗しても無視する - ignore_errors
    • 非同期でtaskを実行する -- async
  • 大規模なplaybookを構築してみよう
    • 他のplaybookを読み込む -- include
    • 推奨ディレクトリ構成 -- ベストプラクティス
    • まとめて再利用 -- role
    • 並列実行 -- fork
    • 順々に実行する -- serial
    • AWS EC2との連携
    • ホストのリストを動的に作成 -- dynamic inventory
  • コマンドラインオプションを使ってみよう
    • ssh認証
    • 対象ホストを制限する -- limit
    • 実行するtaskを制限する -- tag
    • dry-run実行 -- check
    • taskを確認しながら実行 -- step
    • 差分表示 -- diff
  • 変数ファイルの暗号化 -- ansible-vault
    • ansible-vaultの使い方
    • 暗号化されたファイルの使い方
  • 公開されているroleを使ってみよう -- Ansible Galaxy
    • Ansible Galaxyとは
    • roleの検索方法
    • roleを手に入れる
    • roleの使い方
  • よくあるご質問
    • 接続できない
    • ControlPath too longというエラーが出る
    • 実行しても途中で止まる
    • inventory ファイルがなくても接続したい
    • 一つのplaybookが複雑になってしまった
    • python not foundというエラーが出る
    • Windowsで使いたい
    • ansible-playbookに変な絵が表示される
    • ansibleが収集する変数を知りたい
    • invalid type <type 'list'>と出る
    • 変数を使った時に "Syntax Error" が出る
    • "---" はどういう意味?
    • Ansibleという名前の由来は?
  • おわりに
  • 付録: モジュールを自作する
    • モジュールの動作
    • モジュールの形式
    • モジュールのサンプル
    • Pythonでの便利関数
    • モジュールのデバッグ
  • 付録: Ansible plugin
    • pluginの種類
    • lookup plugin
    • filter plugin
    • callback plugin
    • action plugin
    • connection type plugin
    • vars plugin
  • 付録: ansible configファイル
    • defaultセクション
    • paramiko セクション
    • ssh_connection セクション
    • accelerateセクション

「入門」ですので、Ansibleの紹介や、インストール、YAMLの解説など、Ansible playbookを書き始める前の段階から記述しています。また、最初に基本的なplaybookを記述できるようにし、その後に複雑な機能を紹介していく、という形式にしています。

そうは言いつつ、設定ファイルの詳細やモジュールとpluginの作成についてなどが載っていたりするので、入門者以外の方にも満足頂けるのではないかと思っています。

サンプル

「どんなものかちらっと見てみたい」という方もいらっしゃると思いますので、1章と2章をサンプルとして公開します。

入門Ansibleサンプル

これはPDFですので、Amazonで購入していただいたものとはフォーマットが異なる点に注意してください。

課題トラッカー

https://bitbucket.org/r_rudi/ansible-book/issues

にて課題トラッカーを公開しております。誤字脱字、間違いを見つけたときは、もしよろしければ、こちらに登録して頂ければ修正致します。また、「この部分をもっと解説して欲しい」という要望がありましたら、同じく登録して頂ければ可能な限り反映したいと思います。

今後の予定

3ヶ月後をめどに、課題トラッカーで受け付けた課題を修正し、その他にGumRoadにてPDF、epub版を公開する予定です。もちろん、Amazonにて引き続き修正したものを販売する予定です。

ちなみに紙の書籍化は今のところ予定ありません。

その他

  • 完全にSphinxのみで執筆しました。これに関してはまた別途。
  • 表紙の絵を描いていただける方募集中です…