12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[初心者]Ansibleの学習環境の構築1/3(Ansibleとは)

Last updated at Posted at 2023-02-28

はじめに

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回→

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?