サーバーをはじめ増え続ける社内のIT機器を管理するのに、負担を感じている企業は少なくないでしょう。Ansibleは、そんな企業に役立つ作業の自動化ツールです。この記事ではAnsibleとは何かやその活用例、インストール方法まで分かりやすく解説しています。あわせて競合するツールとの違いや、メリットについても紹介しているので参考にして下さい。
目次
Ansibleとは?【オープンソースの構成管理ツール】
AnsibleはサーバーをはじめとしたIT機器の管理作業を効率化・自動化する際に使う、オープンソースの構成管理ツールです。もともとは米Ansible社によって開発されましたが、現在はAnsible社を買収したレッドハット社が開発・提供しています。
構成管理ツールができること、役割
構成管理ツールとは、IT機器の設定(構成)を効率的に管理するためのツールです。構成管理ツールでは、「IT機器がどのように設定(構成)されているべきか」をあらかじめ定義しておきます。その上で、IT機器とその定義内容に差異がある場合、構成管理ツールは自動で定義した設定(構成)にしてくれるわけです。
昨今では、企業は非常に多くのIT機器を利用しているのに加え、技術の進歩によってその構成も複雑化しています。それら全ての構成を、正確に管理するのは簡単ではありません。管理者の負担も、大きくなり続けている状況です。
構成管理ツールを使えば、IT機器の設定(構成)に関わる煩雑な作業を自動化できます。これにより管理者の負荷を軽減できる上に、人的ミスの削減も可能です。必要な構成が漏れなく定義されることによって、属人化の予防にもつながります。
Ansibleの主なメリット・特徴
名称(提供元) | Ansible (レッドハット社) | Chef (Chef社) | Puppet (Puppet社) |
---|---|---|---|
開発言語 | Python | Ruby | Ruby |
定義ファイルの書式 | YAML | DSL | DSL |
構成管理を行う上で プログラミング知識の 要/不要 | 不要 | 必要 | 必要 |
エージェントの必要性 | 不要 | 必要 | 必要 |
GUI | × ※Ansible Towerの 追加導入でGUIの利用も可能 | 〇 | 〇 |
複雑な処理への対応 | △ | 〇 | 〇 |
構成管理ツールとしてのAnsibleは、類似する他ツールと比べた場合にどのようなメリット・特徴があるのでしょうか。上記は、Ansibleと同様に人気の高い構成管理ツール「Chef」「Puppet」とAnsibleの比較表です。本項では上記表の内容を中心として、Ansibleの特徴・メリットを解説します。
高度なプログラミングの知識が不要
Ansibleでは、YAMLという形式の定義ファイル※によって構成管理を行います。YAML形式の定義ファイルは直観的で分かりやすいことから、作成にあたって高度なプログラミング知識は必要ありません。その結果、学習コストが少なくてすみ導入しやすい点もメリットと言えます。
※Ansibleでは、この定義ファイルをPlaybookと呼びます。
エージェントが不要
Ansibleでは他構成管理ツールと違い、管理対象のIT機器に対し「エージェント」と呼ばれる専用ソフトウェアをインストールする必要がありません。
エージェントが必要な構成管理ツールでは、仮に管理対象のIT機器が100台あれば、その全てに対しエージェントのインストールが必要です。一方、Ansibleならこの場合でも、エージェントの導入が必要ありません。
これでどれだけ工数の差が生じるか、言うまでもないでしょう。
サーバー以外の構成管理も可能
構成管理ツールの対象となるのは、一般的にはサーバーです。けれどAnsibleはサーバー以外にも、仮想環境・ネットワーク機器・ストレージなどを管理する機能も搭載しています。
Ansibleで管理可能なIT機器は、現在も増え続けている状況です。
Ansible Tower追加導入でGUI制御なども可能
Ansible TowerはAnsibleの機能を拡張する有料のソフトウェアです。Ansible Towerを追加することによって、以下が可能となります。
- GUIによる制御
- ジョブスケジューリング
- 権限管理
逆に言うと、Ansible単体ではこれら機能を実現できません。この点は、Ansibleを使う上で覚えておくべき点とは言えます。
Ansible Towerとほぼ同じ事が可能なソフトウェアに、AWX projectがあります。
AWX projectは無料のソフトウェアである代わりに、Dockerの実行環境が必須という条件が付いてしまいます(Ansible TowerはDockerコンテナでは導入不可)。
また、AWX projectにはサポートがなく更新頻度も高い為、コミュニティと自力だけで何とかしていく必要があります。
>開発や検証に最適!日額20円から利用できるKAGOYA CLOUD VPS!
Ansibleを使うときの注意点
Ansibleは他ツールに比べメリットの多い構成管理ツールですが、いくつか注意点もあります。ここでは、Ansibleを使うときの主な注意点をまとめるのであわせてチェックして下さい。
対象機器が少ないシーンでは向いていない
Ansibleは、構成管理が必要な対象機器が少ないシーンでは適していません。Ansibleを使うのに高度なプログラミング知識が必要ないとは言っても、YAML形式の定義ファイル(Playbook)を使うには、それなりの学習が必要となります。そのため対象機器が少ないのであれば、手動で構成管理をした方が早い上に手間もかからないわけです。
間違ったときの影響範囲が大きい
Ansibleは簡単な操作で、多くのIT機器に対して自動で設定の変更が可能です。裏を返せば仮に定義ファイルの記述を誤ると、たくさんのIT機器に対し誤った構成を適用することになります。Ansibleは、このように設定を間違ったときの影響範囲が大きくなる点は注意しなくてはなりません。
複雑な処理に対応しにくい
Ansibleの定義ファイル(Playbook)は、前述した通り直観的でわかりやすいのが特徴です。その反面、条件分岐が多くなる場合など複雑な処理に対応しにくいのは否めません。(記述が多くなるということで、不可能というわけではない。)複雑な処理が必要な場合は、プログラミング言語を使った他ツールを使った方がシンプルに対応できます。
Ansibleの参考になる活用事例
ここでは、Ansibleを効果的に活用した事例を2つ紹介します。どちらもAnsibleのメリットを活かせた事例なので、今後Ansibleを利用するか検討する際の参考にして下さい。
膨大な構成管理にかかる工数の大幅な削減に成功した事例
A社では、それまで膨大な数に及ぶ社内IT機器の棚卸しを手動で行っていました。たとえば管理対象となるサーバーのOSや物理情報、ミドルウェアの情報などをほぼ全て手動で実行していたのです。
しかし手動での棚卸しでは長い時間と手間がかかっていた上に、常にヒューマンエラーの恐れもありました。たとえば構成管理やアクセス権限管理に関する情報は、手動で収集し表計算ソフトでまとめていたとのことです。これら作業のヒューマンエラーによるリスクも、大きな問題となっていました。
そこでA社では、Ansibleによる構成管理の自動化をすすめます。構成管理ツールとしてAnsibleをえらんだもっとも大きな要因は、エージェントレスで導入の負荷が少なかったことです。またYAML形式で誰でも簡単に定義ファイルを作成できる点も、A社はメリットと感じていました。
A社がAnsibleを導入した結果、導入前と比べ棚卸しにかかる工数を約50%削減できたとのことです。ヒューマンエラーについても自動化によって解消することに成功しました。
大規模システムの環境構築を短期間で完了させた事例
B社では、大規模なシステムを約3ヵ月という短納期で納入する必要に迫られていました。しかし従来通り環境構築を行った場合は、その納期では間に合いません。手動では、求められた品質やコストを実現することも不可能でした。
そこでB社が新しく採用したのが、Ansibleによる構成管理の自動化です。Ansibleを導入したことでサーバー環境の設定作業が自動化され、大幅に工数を削減し作業を迅速にすすめられた上にコストも節約できました。その結果、顧客の求める納期と予算でシステム納入も完了したとのことです。
Ansibleのインストール方法
ここでは一例として、Ubuntu22.04LTSにAnsibleをインストールする方法を紹介します。
下記コマンドを、記載した順番通りに実行して下さい。
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
上記コマンド実行後、以下コマンドを実行し正確にインストールされているか確認します。
ansible --version
この様に「ansible…」と、バージョンが表示されればインストールは成功です。
Ansibleは以下のような書籍などを使い、より詳しく学ぶことができます。
・「Ansible実践ガイド」(インプレスブックス)
https://book.impress.co.jp/books/1118101094
Ansible実践ガイドはAnsibleの特徴から、実践的な使い方までまとめた書籍となっています。
まとめ
AnsibleはIT機器の管理を効率化・自動化するオープンソースの構成管理ツールです。Ansibleを使うことでIT機器の煩雑な設定作業が自動化されるため、管理者の負担を大幅に軽減できます。また自動化によって、ヒューマンエラーの削減を実現できる点もメリットです。
他の構成管理ツールと比較したAnsibleの特徴として、管理対象へエージェントをインストールする必要がない点があげられます。直観的な記述が可能なYAML形式の定義ファイルを使うため、設定にあたり高度なプログラミング知識も必要ありません。これらの点からAnsibleは多くの企業にとって、導入しやすい構成管理ツールと言えます。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。