関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、ITインフラの構成管理ツールである「Ansible」について、なるべくわかりやすく解説したものです。
インフラ運用に悩み、「これからAnsibleで自動化をはじめたいけれど、どこから手を付ければいいかわからない」「Ansibleは実際に使っているけれど、どうすれば効果的に自動化できるのだろうか」といった方への道標となるようなトピックを厳選し、なるべく広範にわたってAnsibleを理解するための知識をつめこみました。
本書では、10章に渡ってAnsibleとITインフラ自動化のためのトピックを解説しています。
第1章では、スタティックなITインフラとダイナミックなITインフラの違い、、「Infrastructure as Code」というITインフラ運用に対する考え方などを説明しています。「Ansibleの本なのに、どうして考え方とか抽象的な話が出てくるんだろう」と思うかもしれませんが、Ansibleを正しく効率的に使うためには、「なぜ従来の手法ではダメなのか」「なぜAnsibleで自動化する必要があるのか」ということを理解しておく必要があるからです。
第2章では、Ansibleの概要とプレイブックやインベントリなどのAnsibleの構成要素(コンポーネント)について解説しています。Ansibleを学ぶにあたって最低限知っておくべき情報を説明しています。
第3章では、以降の章での学習を始めるにあたって、演習環境の構築に利用する「VirtualBox」と「Vagrant」について手順を追って説明していきます。これらのツールを活用することで、自分のPCの環境に影響を与えずに本書の演習を実行できるようになります。Windows版で説明していますが、LinuxやmacOSを使っている場合には、適宜、読み替えてください。
第4章では、作成した演習環境上でプレイブックを実行し、出力結果やエラーなどについて確認していきます。
第5章から第7章までは、LinuxやWindows、ネットワーク機器などのさまざまな環境に対して、実際にプレイブックを実行しながら、その動きを確認していきます。演習環境を利用して実際のAnsibleによる自動化を体験することで、より実践的な知識を学ぶことができます。
第8章では、IaaSなどのクラウド環境で利用できる「ダイナミックインベントリ」を解説します。ダイナミックなITインフラであるAWS EC2、Microsoft Azure、Google Cloud Platform(GCP)などの各種IaaS環境と、VMware vSphere上に存在する仮想マシンへの接続について解説しています。
第9章では、仮想のユースケースを元に、自動化のポイントやAnsible文化を社内に広めるための方法を説明しています。新しい技術を導入する際のノウハウは、Ansible以外のツールでも役に立つはずです。
第10章では、Ansibleのオーケストレーションツールである「AWX(Ansible Tower)」について解説しています。AWXでは、Ansible単体ではカバーしきれないエンタープライズ向けのさまざまな機能を提供しています。
書誌情報
- 著者: 八木澤 健人
- 発行日: 2019-11-27 (紙書籍版発行日: 2019-11-27)
- 最終更新日: 2019-11-27
- バージョン: 1.0.0
- ページ数: 288ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
八木澤 健人
1990年8月8日生まれ。文系大学卒業後、誕生日に内定を貰ったことをきっかけに新卒でIT業界へ飛び込む。海外向けのグローバルサポート業務からSIチームに異動し、サーバーやネットワークのインフラ設計、構築などを担当。インフラエンジニアとして約5年勤務し、現在はTwitter転職を経てレッドハットのテクニカルサポートエンジニアとして、「Ansible Engine」および「Ansible Tower」のサポート業務を担当している。趣味は、PCゲームの「League of Legends」でサポートキャラとしてプレイすること、ロードバイクで走り回ること。
目次
第1章 ITインフラストラクチャの課題とAnsible
- 1-1 従来のITインフラが抱える問題
- 1-1-1 スタティックなITインフラの時代
- 1-1-2 ダイナミックなITインフラの台頭
- 1-1-3 ダイナミックなITインフラ運用の問題点
- 1-1-4 局所的自動化
- 1-2 Infrastructure as Code
- 1-2-1 Infrastructure as Codeとは
- 1-2-2 Infrastructure as Codeを実践する
- 1-3 Ansibleを導入するメリット
- 1-3-1 エージェントレス
- 1-3-2 YAMLによる学習コストの低いPlaybook
- 1-3-3 多種多様な環境に対応
- 1-3-4 冪等性が担保される
第2章 Ansibleの概要とアーキテクチャ
- 2-1 Ansibleとは
- 2-1-1 Ansibleの概要
- 2-1-2 Ansibleの動作要件
- 2-2 Ansibleのコンポーネント
- 2-2-1 プレイブック(Playbook)
- 2-2-2 インベントリ(Inventory)
- 2-2-3 モジュール(Module)
- 2-2-4 プラグイン(Plugin)
- 2-2-5 ロール(Role)
第3章 実行環境の準備
- 3-1 VirtualBoxのインストール
- 3-1-1 インストーラーのダウンロードとインストール
- 3-2 Vagrantのインストール
- 3-2-1 Vagrantのダウンロード
- 3-2-2 Vagrant Boxの起動
- 3-2-3 Ansibleのインストール
- 3-2-4 Vagrantの停止と削除
第4章 Ansibleを実行してみよう
- 4-1 Adhocコマンドの実行
- 4-2 ansible-playbookコマンドの実行
- 4-2-1 実行準備
- 4-2-2 プレイブックを実行する
- 4-3 PLAY RECAPを見てみよう
- 4-3-1 Rescued/Skipped/gnored
- 4-4 エラーを読み解いてみよう
- 4-4-1 接続エラー(Unreachable)
- 4-4-2 文法エラー(Syntax Error)
- 4-4-3 エラーを回避する
第5章 Linuxサーバーを自動化してみよう
- 5-1 検証環境の構築
- 5-1-1 仮想マシンの起動
- 5-1-2 インベントリの作成
- 5-1-3 プレイブックの作成
- 5-2 プレイブックを実行してみよう
- 5-3 ロールに分割する
- 5-3-1 ロールに分割するメリット
- 5-3-2 プレイブックをロールに分割する
- 5-3-3 ロールの汎用性を高める
- 5-4 監視サーバー(Zabbix)を構築する
- 5-4-1 Zabbixとは
- 5-4-2 プレイブックの作成
- 5-4-3 プレイブックの実行とZabbixの初期設定
- 5-5 監視サーバー(Zabbix)にホストを追加する
- 5-5-1 プレイブックの作成
- 5-5-2 プレイブックの実行
- 5-6 Ansible Vaultを活用する
第6章 Windows Serverを自動化してみよう
- 6-1 検証環境の構築
- 6-2 接続してみよう
- 6-2-1 事前準備
- 6-2-2 認証方式
- 6-2-3 接続する
- 6-3 Windowsでよく使うモジュール
- 6-3-1 win_feature:Windowsの役割と機能を管理する
- 6-3-2 win_chocolatey:Chocolateyを利用してパッケージをインストールする
- 6-3-3 win_updates:Windows Updateを実行する
- 6-3-4 win_hotfix:Windowsの修正パッチ(Hotfix)を適用する
- 6-3-5 win_user:ローカルユーザーを管理する
- 6-3-6 win_domain_user:ドメインユーザーを管理する
- 6-4 Windowsホストのドメイン参加を自動化する
- 6-4-1 win_domain_membership:ドメインやワークグループへホストを追加する
第7章 ネットワーク機器を管理してみよう
- 7-1 ネットワーク機器の自動化
- 7-2 ネットワーク向けのコネクションプラグイン
- 7-3 ネットワークモジュール
- 7-3-1 Cisco IOS向けのモジュール
- 7-3-2 Juniper Junos向けのモジュール
- 7-4 ネットワークモジュールを検証する
- 7-4-1 インターフェイスを設定する
- 7-4-2 ファイアウォールのルールを設定する
- 7-4-3 コンフィグのバックアップを取得する
第8章 クラウド上のリソースを管理してみよう
- 8-1 Ansibleによるクラウドの管理
- 8-1-1 ダイナミックインベントリ
- 8-2 AWSを管理してみよう
- 8-2-1 AWSのダイナミックインベントリの設定
- 8-2-2 インスタンスを作成する
- 8-2-3 インスタンスに接続する
- 8-2-4 ダイナミックインベントリを活用する
- 8-2-5 ダイナミックインベントリの設定を変更する
- 8-2-6 CloudFormation/Terraformと連携する
- 8-3 Azureを管理してみよう
- 8-3-1 ダイナミックインベントリの設定
- 8-3-2 仮想マシンを作成する
- 8-3-3 仮想マシンに接続する
- 8-3-4 ダイナミックインベントリを活用する
- 8-4 GCPを管理してみよう
- 8-4-1 ダイナミックインベントリの設定
- 8-4-2 インスタンスを作成する
- 8-4-3 インスタンスに接続する
- 8-4-4 ダイナミックインベントリを活用する
- 8-4-5 ダダイナミックインベントリの設定を変更する
- 8-5 vShpereを管理してみよう
- 8-5-1 ダイナミックインベントリの設定
- 8-5-2 ダイナミックインベントリを活用する
- 8-5-3 ダイナミックインベントリの設定を変更する
第9章 実践的な環境で使ってみよう
- 9-1 Windows Server中心の社内システムの自動化
- 9-1-1 背景
- 9-1-2 自動化の目的
- 9-1-3 運用タスクの洗い出し
- 9-1-4 プレイブックの作成
- 9-2 仮想化基盤の自動化
- 9-2-1 背景
- 9-2-2 自動化の目的の確認
- 9-2-3 タスクの洗い出し
- 9-2-4 プレイブックの作成
- 9-3 テストの自動化
- 9-3-1 背景
- 9-3-2 自動化の目的
- 9-3-3 タスクの洗い出し
- 9-3-4 プレイブックの作成
- 9-4 Ansibleによる自動化を進めるためのアイデア
- 9-4-1 Ansibleの導入を阻むもの
- 9-4-2 Ansibleの輪を拡げるために
第10章 AWX(Ansible Tower)を使ってみよう
- 10-1 AWXの概要
- 10-2 AWXをインストールしてみよう
- 10-2-1 動作環境
- 10-2-2 AWXのインストール
- 10-2-3 AWXのダッシュボード
- 10-2-4 プロジェクトの設定
- 10-2-5 インべントリの設定
- 10-2-6 認証情報