はじめに
Ansibleの学習を始めて1か月ほど経ったので、これまでの学習内容の振り返りとアウトプットとして、Ansibleを使ったことがない人向けの記事を書きました。
この記事(全3回)を読んで「AWSまたはAzure環境に構築した仮想マシンにAnsibleをインストールし、実際にPlaybookを実行することができるようになる」ことを目標にしています。
1本目となる本記事ではAnsibleの概要についてまとめました。
第1回 Ansible概要(現在のページ)
第2回 学習環境構築
第3回 Ansible実践
作成中
目次
・IaCについて
・Ansibleとは
・学習環境を構築するにあたって
・(余談)Terraformとの違い
IaCについて
サーバなどのインフラの構築をコードを用いて行う方法をIaC(Infrastructure as Code)といいます。
AnsibleもIaCを実現するためのツールの1つです。
IaCの概要については本記事では深堀りしませんが、IaCによって以下のようなメリットが得られます。
・作業効率化・工数削減
・人的ミスの削減
・再利用性の向上 など
本記事でIaCについての詳しい説明は割愛しますが、
IaCを実現する上でIaCの必要性やメリット・デメリットについては理解しておきましょう。
下記に参考になるリンクを記載しています。
Ansibleとは
Ansible® は、プロビジョニング、構成管理、アプリケーションのデプロイメント、オーケストレーション、その他多くの IT プロセスを自動化する、オープンソースの IT 自動化ツールです。他の単純な管理ツールと違い、Ansible のユーザー (システム管理者、開発者、アーキテクトなど) は、ソフトウェアのインストール、日常的に行うタスクの自動化、インフラストラクチャのプロビジョニング、セキュリティとコンプライアンスの向上、システムへのパッチ適用、組織全体での自動化の共有に、Ansible の自動化を使用できます。
Ansibleの特徴
Ansibleの特徴として以下の3つが挙げられます。
1.エージェントレス
2.シンプルで可読性が高い
3.冪等性(べきとうせい)がある
- 1.エージェントレス
- Ansibleは管理対象へのエージェントのインストールが不要であるため、管理対象が多数ある場合でもセットアップの工数を削減でき、導入コストを低く抑えることができます。
- 2.シンプルで可読性が高い
- AnsibleはYAML形式でコードを記載します。そのため可読性が高く、他の構成管理ツール(PuppetやChef)に比べると学習コストが低いです。
- 3.冪等性(べきとうせい)がある
- 冪等性とは、何度処理を実行しても同じ結果になるという性質です。Ansibleは処理を実行する前に、変更の必要があるかどうかを判断し、変更の必要がなければ処理をスキップする仕様があります。これによって処理の重複を防ぐことができます。
学習環境を構築するにあたって
次回の記事で環境構築を行いますが、下記の2点については事前にご準備ください。
・AWSまたはAzureのアカウント(片方だけで問題ありません)
・teraterm(サーバへのSSH接続に使用します)
補足
Azureでの環境構築は記事作成中のためAWSのアカウントをご用意ください。(2023//2/21時点)
(余談)Terraformとの違い
有名なIaCツールの1つにTerraformがあります。TerraformとAnsibleは同じIaCツールですが、大きく違う点があります。そのため、AnsibleとTerraformをどちらも利用するということも可能です。
大きな違いとして、AnsibleとTerraformでは得意な領域が異なります。
具体的には、TerraformはVPCやEC2(VM)など、インフラリソースのプロビジョニングが得意です。
一方で、Ansibleは作成したEC2(VM)の中のOSやミドルの構築管理が得意です。
Ansible | Terraform | |
---|---|---|
開発元 | RedHat | Hashi Corp |
インフラのプロビジョニング | ○ | ◎ |
OS・ミドルの構成管理 | ◎ | ○ |
自動化言語 | YAML | HCL |
プログラミングの型* | 手続き型(命令型) | 宣言型 |
※ 手続き型(命令型)と宣言型
手続き型(命令型)と宣言型の違いは、具体的な手順を記述するか、完成形の状態を記述するかです。
宣言型では、完成形の状態を記述することで、ツールが適切な手順を自動的に処理してくれます。一方、手続き型(命令型)では、完成形ではなく、具体的な手順を記述する必要があります。しかしその分複雑な条件分岐などを記述することができます。
片方のツールだけでも、インフラのプロビジョニングからOS・ミドルの構成管理を行うことは可能ですが、それぞれのツールの長所と短所を理解して、状況に合わせて適切なツールを使い分けることでIaCのメリットを最大限に発揮できます。
さいごに
今回は、Ansibleの概要について紹介しました。
次回は実際にAnsibleの学習環境を構築をしていきます。
第2回→