Ansible入門者向け学習ガイド(CentOS編)

はじめに

Ansibleへの入門として、Ansibleインストールからplaybookの実行までの一連の流れをまとめました。

Ansibleとは

『Ansible』とはRed Hat社が開発するオープンソースの構成管理ツールです。
構成管理ツールは Chef、Puppetなどのツールもありますが、『エージェントレス』であり設定ファイルの記述がシンプルでわかりやすいため、構成管理ツールの中でもハードルが低く使いやすいのが特徴です。

Ansibleを使えるようになると以下のメリットがあります。

  • 工数の削減が期待できる
  • 品質が向上する
  • 不要なオペレーションやアクセスをなくすことができる

例えば、50台のサーバに同一の設定を行う場合、手作業で行うとミスが発生する可能性があります。それに対し、作業を自動化した場合は全台に同一の設定を実行することができるため、人的ミスを少しでも防ぐことができかつ工数の短縮も図ることができます。
また、不要なオペレーションやアクセスをなくすことができるため、誤動作の防止にもつながります。

Ansibleを理解する

Ansibleは手作業で行うことを自動化するツールです。Ansibleを理解するには自動化を行う前に手作業で目的の動作が行われるか検証するのが良いと思います。
手作業で問題が発生しなかった作業をplaybook化するイメージです。

Ansibleを効率的に学習する前に、まずは大まかな操作(Ansibleの導入からPlaybookの実行まで)を知る必要があると思います。。
また、手順や操作方法が分かるようになれば学習するべき内容を絞り出すことができ、理解がより深まってくると思います。

当サイトでは、単純すぎず複雑すぎない手順を用意いたしました。

Ansibleの操作手順

実際にAnsibleをインストールし操作を行います。当サイトではhttpdのインストール、
httpd.confの修正、firewallの設定、selinuxの設定を行う操作を記述致します。

目次

  1. Ansibleを操作するサーバを準備(以降コントロールノードと呼ぶ)
  2. 構築対象となるサーバを準備(以降ターゲットノードと呼ぶ)
  3. コントロールノードにansibleをインストール
  4. sshの設定(公開鍵認証)
  5. Ansible疎通確認
  6. ターゲットノードで設定を行い内容を手作業で確認
  7. playbook作成
    1. httpdタスクの作成
    2. firewallタスクの作成
    3. selinuxタスクの作成
  8. playbook実行
  9. ターゲットノードで設定が変更されているか確認

項番1,2の手順は様々な環境が存在するため、省略いたします。

OSがインストールされており、ネットワークの設定済みの環境を使用します。

使用環境

  • CentOS7.7(コントロールノード)
  • CentOS7.6(ターゲットノード)