Ansibleを触ってみた

タイトル通り「Ansible」をかるく触る機会があったのでAnsibleって何?どんなことが出来るの?とか実際にやった内容を簡単にまとめてみようと思います。

Ansibleとは-
・Red Hatが開発するInfrastructure as Code(インフラをコードで管理する仕組み)の概念に基づいた、オープンソースの構成管理を中心とする自動化プラットフォームである。

・Ansibleでは、Playbookと呼ばれるYAML形式の構成ファイルにサーバ内部の定義を記述することで、同じ構成のサーバを冪等性(べきとうせい)を担保して構築することができるようになります。
※冪等性-同じ操作を何度繰り返しても、同じ結果が得られるという性質を指す。

どんなことが出来るの?-
Playbookを記述することで複雑で膨大なサーバー群を一括管理し、人が手で行うよりも迅速に環境構築や設定を行うことが出来ます。

Ansibleの特徴-
Ansibleの特徴として、定義ファイル(Playbook)をYAML形式でテキストファイルに記述するため構造がシンプルで読み書きしやすく学習コストが低く、コード管理のため変更箇所がファイルの比較コマンドなどで差分が拾いやすいという点や、多数のベンダー機器やマルチレイヤに対応しているパワフルさ、エージェント導入のコストがかからないという点が特徴といえます。

上の画像は実際に使用したPlaybookです。赤枠の「hosts」の中に操作をするサーバのIPアドレスを記述し「playbook_config_crawl.yml」で全hostsを対象に行う内容を記述しています。
今回のこれは対象2サーバの現在のrunning_configをAnsibleサーバの「/myfolder」配下に「IPアドレス.log」として収集するように動きます。

今回触ってみた時点では対象サーバも2台と少なめですが実際にデータセンターなど数百台のサーバに同一の設定を入れたりバックアップを取ったり、ソフトをインストールしたりとなると手動では時間もかかるし途中でミスが発生するかもしれません。
しかしAnsibleを利用することで作業時間の大幅な短縮や人的ミスの抑制にもつながります、その一方で作業の中に都度人の判断を挟むような分岐などの複雑なものは自動化に向いていないという側面もあります。

Ansibleを使うことで普段の非効率な作業が一気に解消するかもしれません、簡単な紹介になりましたが詳しいPlaybookの記述方法などAnsibleに興味を持った方がいたらぜひ調べてみてください。