インフラ

[Ansible入門 前編]Ansibleの概要

Ansible 入門前編

こんにちは、ちゃりおです。

社内へのAnsible啓蒙の一環として、Ansibleの入門記事を書いてみます。
後編には、Dockerを使ったansibleのハンズオンを用意しています。

ちゃりお
ちゃりお
Ansibleの概要についてです。

Contents

なぜインフラをコードするのか

Ansibleを使用することで、インフラをコード化することができます。
これまで行っていた、構築作業を自動化することができます。

コード化せず手動でサーバを構築する場合、下記の流れが考えられます。

  1. 手順書作る
  2. 手順書をレビューしてもらう
  3. 手動で手順書の通り構築する

この方法の問題点は下記があります。

  • 手順書を書くのが手間
  • 手順書のレビューがしづらい(ファイル形式やフォーマットやら)
  • 手順書を管理する必要がある(最新化したり)
  • 作業ミスが発生する(手動なので)
  • 構築台数が増えると構築にかかる時間も増えていく
  • サーバの中身がブラックボックスになりやすい

自動化することで、解決します。

  • 手順が大幅に減る(実行手順だけ)
  • GithubのPRでレビュー可能
  • Github上でコードで管理できる
  • 自動化された手順通り行われる
  • 並列実行することで何台でも時間は変わらない
  • コードにすべて書かれている

構成管理ツールとは

Ansibleは構成管理ツールの一つです。

サーバ・ソフトウェアとか何らかの構成を構築したり管理するのを代わりにやってくるツールです。

設定を自動化するだけだったら、シェルスクリプト使えばいいじゃんと思う方もいるのではないでしょうか。
ちょっとした作業を自動化するにはには問題ないかもしれませんが、複雑な作業を書くにはつらくなりがちです。

例えば、ユーザ追加するシェルスクリプトを書いたとします。

実行して一回目は、普通にユーザ追加ができました。
しかし、2回目実行した際、該当ユーザがいるにも関わらずユーザ追加の処理は実行されます。

これを避けるためには、2回目はユーザ追加しないという処理を書く必要があります。
このように、やりたい処理以外にも色々制御する処理を書く必要がでてきます。

徐々に複雑になっていきスクリプトのメンテナンス性は下がっていきます。

構成管理ツールは、処理を自動化するという観点ではなく、マシンを目的の状態にするという観点で作成されたツールのことです。

Ansibleの特徴

YAMLで記述できる

Ansibleを書けるようになるために、特別な言語の習得は不要です。
設定ファイルを書くようにサーバの構成を書くことができます。

エージェントレス

構成管理ツールによっては、専用のエージェントを対象のサーバにインストールする必要がありますが
Ansibleでは不要です。

対象のサーバにSSHが可能であれば、実行することができます。

Python製のツール

Python製のツールです。
現在、主要なOSにはPythonがでデフォルトで入っているので、インストールも容易です。

さまざまな対象がコントロールできる

Ansibleでは、下記のように様々な対象をコントロールすることが可能です。

  • 物理サーバ
  • LinuxやWindowsなどのOS
  • ネットワーク機器
  • ストレージ
  • 仮想化基盤
  • クラウド環境

Redhatがサポートしている

OSSですが、Redhatがサポートを提供しています。
エンタープライズ版とコミニュティ版があります。

コミニュティ版は無償で使用することができます。
サポートが受けられるエンタープライズ版があることで、SIerでも提案しやすいと思います。

まとめ

前半では、構成管理ツールを使う目的についやAnsibleの特徴についてまとめてみました。

構成管理ツールは最終的にマシンを目的の状態にする、という観点で作成されたツール
Ansibleの特徴

  • YAMLで記述できる
  • エージェントレス
  • Python製のツール
  • Redhatがサポートしている

後編に続きます。

ansible入門 後編
[Ansible入門 後編] Dockerを使ったハンズオン前回に続き、Ansible入門です。 今回は、Docker環境でAnsibleを試してみます。 Ansibleの概要について ...
ansible28yum
[Ansible] "yum lockfile is held by another process "エラーの対処法こんにちは、ちゃりおです。 yumモジュールを使って複数のパッケージをインストール際に、"yum lockfile is held b...
現役インフラエンジニアが選ぶUdemyインフラ系のおすすめコース3選動画学習プラットフォームUdemyのインフラ系おすすめコースを厳選しました。どのコースも基礎から学べるので、インフラ経験が浅い人にもおすすめです。...

Amazonで「Ansible」の本をみてみる!!