Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?

    • このページをはてなブックマークに追加

    公開日:2021年10月07日 最終更新日:2021年10月14日

    「Ansibleはどんなもの?自動化ってどういうこと?」 「Ansibleは、他の構成管理ツールとなにが違うの?」 と悩んではいませんか。
    構成管理ツールを導入し自動化することで、作業の効率化が図れます。しかし、Ansibleで具体的に何ができるのか、どう効率化につながるのかイメージしづらい方もいるでしょう。

    そこで今回は、構成管理ツールの中でも特に人気の高い『Ansible』について解説します。
    具体的には
     • Ansibleとは一体どんなものなのか
     • Ansibleでできること・できないこと
     • Ansibleの導入メリットと手順
    などを紹介。

    また記事の後半では、他の類似ツールとの違いやAnsibleの案件相場なども合わせて紹介しています。構成管理ツールの導入を検討している方や、Ansibleを仕事でも活かしたいといった方はぜひ参考にしてください。

    1.【初心者向け】Ansibleとは?

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    出典:Red Hat Ansible Automation Platform|Ansible

    Ansibleとは、有名なオープンソースの構成管理ツールのひとつ。開発はLinuxのディストリビューションも提供しているRedHat社が行っており、Pythonで作られています。

    ▲ページトップへ戻る

    1.1 Red Hatの構成管理ツール

    RedHat社が提供するAnsibleは、サーバ構成やネットワーク構成など従来は人力で管理していた複雑な設定を「Playbook」というファイルにまとめて少ないステップですぐに実装・管理できるツールです。

    主な管理対象には以下が挙げられます。

    • サーバ構成
    • ネットワーク構成
    • ソフトウェア構成
    • 外部サービスとの連携

    Ansibleは、YAML形式で書くPlaybookというファイルを用いてこれらの「構成」を管理します。管理ホストに実装する必要な設定や手順を、そのまま保存できる形式です。

    クライアントレスのため、他の構成管理ツールと比較して導入しやすいことが魅力でしょう。

    なおAnsibleは権限管理やPlaybookの実行履歴管理などに適した「Ansible Tower」も提供しています。Ansible Towerを使うとユーザー管理がしやすく、プログラマー以外でも安全にPlaybookを使うことができるようになります。開発担当者と運用担当者の切り分けなどもしやすく、開発効率も上がりやすくなるでしょう。

    ▲ページトップへ戻る


    1.1.1 構成管理とは

    ITシステムを構成する要素の例としては、以下が該当します。

    • 電源などの設備
    • ハードウェア
    • サーバー
    • ライセンス
    • ソフトウェア
    • ネットワーク

    構成管理とは、こうした「システムを構築する要素」を管理するもの。特に重要となるのは、システムがアップデートやパッチの適用などで動作しなくなったときです。システムを正常に動作させるためには「アップデート前のバージョンにシステムを戻す」のが手早い解決策ですが、そもそも「正常に動作していた構成」が分からなければ対処しづらくなってしまいます。こういった問題を解決するために、構成管理しているのです。

    とはいえ、システムの規模が膨れ上がるほど「サーバーの構成管理」などは手間が大きくなります。よって特に安定稼働に欠かせないネットワーク構成やサーバー構成の管理を効率化するために「Ansible」は重用されています。

    ちなみに構成管理と似た言葉に「IT資産管理」があります。一緒にされることが多いですが、IT資産管理はライセンス違反の防止が大きな目的です。構成管理はITサービスを安定的に提供することが目的なため、違う点に注意しましょう。

    ▲ページトップへ戻る

    1.2 Ansibleはインフラ構築を3ステップで実施可能

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    通常インフラ構築には、下記の6つの手順が必要です。

    1. 設計を考える
    2. 手順書作成
    3. クラウド/HW設定
    4. OSインストール設定確認試験
    5. ミドルウェアインストール設定確認試験
    6. 作成アプリリリース設定試験

    手順が多く時間がかかってしまうのはもちろん、設定ミスなどが発生してしまう可能性もあります。こういった問題を解決できるのが、Ansibleの大きな魅力です。

    Ansibleでは、

    1. 設計を考える
    2. Playbookの作成
    3. Ansibleの実行

    の3ステップでインフラ構築が完了するため、インフラ構築にかかる時間を大幅に短縮できます。また実行して構築までできるため、人的コストの削減もできるでしょう。

    ▲ページトップへ戻る

    1.3 Ansibleでできること・できないこと

    Ansibleでできることとできないことを分かりやすくまとめると、以下の通りです。

    Ansibleでできる3つのこと

    • インフラ構築の自動化
    • 継続的インテグレーション
    • サーバーインフラ全体の制御

    Ansibleでできない2つのこと

    • GUIによる制御や組織での運用は発展途上
    • Windows対応も発展途上

    これだけではイメージしづらいこともあると思いますので、詳しく解説します。

    ▲ページトップへ戻る


    1.3.1【できること】インフラ構築の自動化

    1つ目に紹介するAnsibleでできることは、先ほども紹介した「インフラ構築の自動化」です。Ansibleを使えば先ほど紹介した、設計・Playbookの作成・Ansibleを実行する、の3ステップでインフラ構築が完了します。

    従来の工程では

    • クラウド/HW設定
    • OSインストール設定確認試験
    • ミドルウェアインストール設定確認試験
    • 作成アプリリリース設定試験

    など設定を手動でやらなければいけませんでしたが、Ansibleでは自動で進めてくれるため手間や時間の削減が可能です。

    ▲ページトップへ戻る


    1.3.2【できること】継続的インテグレーション

    2つ目に紹介するAnsibleでできることは、「継続的インテグレーション」です。
    継続的インテグレーションとは「Continuous Integration」略してCIといわれます。

    開発を行うときに厄介なのが、変更後のファイルをリポジトリにマージするときです。担当していた機能を作り切ったあとにマージしてしまうと、変更範囲が大きく予期せぬバグが発生してしまう可能性も。

    こうした時に役立つのが「CI」。CIツールを利用すれば、変更したコードをすぐにリポジトリにマージしてビルドとテストを実行できます。そのため仮にバグが見つかっても変更箇所が少なく、原因の特定や対処がしやすいです。

    ▲ページトップへ戻る


    1.3.3【できること】サーバーインフラ全体の制御

    3つ目に紹介するAnsibleでできることは、「サーバインフラ全体の制御」です。

    これまでサーバーインフラは、複数人でそれぞれのサーバーを担当し管理していることが一般的。仮に機器設定に変更があった場合も手作業で変更しなければいけないことが多く、担当者の負担が大きい問題がありました。

    ですがAnsibleは

    • 多数サーバの管理
    • ネットワーク
    • クラウド
    • インフラ構築の自動化

    などをまとめて管理・制御できるため、インフラ全体のコスト削減が可能です。

    ▲ページトップへ戻る


    1.3.4【できないこと】GUIによる制御や組織での運用は発展途上

    ここからは、Ansibleでできないことをご紹介します。

    まずAnsibleはコマンドで操作するため、基本的に「Ansible単体」ではGUIによる制御はできません。また組織での運用も、Ansible単体では発展途上です。

    ただし、Ansible Towerを導入すればGUIにもよる制御が可能になります。 ダッシュボードから管理や操作ができるため、プログラミングの知識や技術の浅い担当者でも扱いやすくなります。また、複数人での管理も可能です。

    ▲ページトップへ戻る


    1.3.5【できないこと】Windows対応も発展途上

    Ansibleは主にLinuxディストリビューションなどを対象に発展してきたツールのため、Windowsへの対応は遅れて進んだ経緯があります。

    AnsibleのWindows対応は2021年現在積極的に進んでいます。またWindows OS自体も、WSL(Windows Subsystem for Linux)などLinuxとの互換性を大きく高めています。

    とはいえWindows対応は発展途上でもあり、Windows環境で運用する場合は細かなところで機能面に制限がつく可能性があります。


    ▲ページトップへ戻る

    2. Ansibleと類似製品の違い

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    ここまでAnsibleのできることできないことをお伝えしました。しかし、他の類似製品とどこが違うのか分からない方もいるのではないでしょうか。

    そんな方に向けて、Chef(シェフ)とPuppet(パペット)との違いを表にまとめました!

    Ansible Chef Puppet
    プログラミング知識 不要 必要 必要
    言語 YAML形式 Rudy PuppetDSL
    エージェント 不要 必要 必要
    操作対象 Linux/Windows/Mac Rest操作可能な機器 Linux/Windows/Mac Linux/Windows/Mac
    導入のしやすさ 簡単 やや難しい やや難しい
    可用性 高い 高い 高い
    管理性 簡単 やや難しい 難しい
    相互運用性 高い 高い 高い
    価格(100ノード) 約110万円 約150万円 約120~220万円

    表をみてわかる通り、プログラミング知識や導入しやすさ管理のしやすさなどが他の構成管理ツールと比較してみると優れていることがわかります。

    また価格も、他のツールより比較的安価なのも導入しやすいポイントです。

    なかでも一番のポイントは、他の構成管理ツールはプログラミングの知識が必要になってしまう点でしょう。Ansibleは専門的なプログラミング知識を必要としないため、専門知識を持ち合わせていない担当者でも利用できます。

    ▲ページトップへ戻る

    3. Ansibleの導入メリット

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    Ansibleを導入することでいくつものメリットが得られますが、構成管理ツールだけを導入した時のメリットとどう違うのでしょう。

    • 構成管理ツール導入のメリット
    • Ansible導入によるメリット

    の2つに分けてそれぞれの導入するメリットを紹介していきます。

    ▲ページトップへ戻る

    3.1 構成管理ツール導入のメリット

    構成管理ツールを導入するメリットは、大きく以下の3つが挙げられます。

    • 安全性があがる

    • 作業効率が上がる

    • 他ツールと連携して更なる自動化効率化が実現できる

    構成管理ツールを導入すればシステムの更新時などに「誰が・いつ・何を変更したか」確認できるため、エラーや問題が起きた場合も原因を特定しやすいです。

    また設定したファイルを実行するだけで、簡単にインフラ環境を構築できます。さらに他の自動テストツールやバージョン管理ツールなどにも連携可能なため、構築や管理だけでなく広い範囲で効率化が可能です。
    そして、こうした効率化を「エージェントレス」かつ「読みやすく、書きやすい」環境で実現できるのがAnsibleと言えます。

    ▲ページトップへ戻る

    3.2 Ansible導入によるメリット

    構成管理ツールを導入するとこれまでの作業の効率化や管理がしやすくなるといったメリットが得られますが、Ansibleを導入することでさらに以下のメリットが得られます。

    • エージェントレス
    • YAML形式で読みやすく書きやすい
    • 多数の製品や機器に対応

    それぞれ詳しくお伝えします。

    ▲ページトップへ戻る


    3.2.1 エージェントレス

    エージェントレスとは、管理対象のホスト(サーバーなど)にインストールしないといけないツールやシステムが必要ないことをいいます。

    AnsibleはSSHを利用しリモートで動かすことが可能なため、余計なツールを入れる必要がなく安全性も高いのが魅力です。

    他の構成管理ツールの場合、専用のソフトウェアをインストールしておくのが一般的なため、ツールの導入が必要ないことや遠隔で動かせられるのは非常に良い点と言えます。

    ▲ページトップへ戻る


    3.2.2 YAML形式で読みやすく書きやすい

    Ansibleの2つ目のメリットは、YAML形式でプログラミング知識や言語の知識が浅くても読みやすく書きやすいことです。

    他の構成管理ツールの場合、プログラミング言語を理解していないといけないため非プログラマには扱いが難しい問題がありました。

    ですがAnsibleはYAML形式というプログラマでなくても理解しやすい形式を採用しているため、担当できる人の選択肢が増え人件費を抑えることにも繋がります。

    またYAML形式は、プログラミング言語のように人によって書き方の癖がでにくい形式です。そのため、途中で担当者が変わっても引継ぎやすいでしょう。

    ▲ページトップへ戻る


    3.2.3 多数の製品や機器に対応

    Ansibleのメリットとして最後に紹介するのは、多数の製品と機器に対応している点です。

    Ansibleはすでに800以上のモジュールがあるため、

    • バージョン管理ツール(Git、SVN)
    • 自動テストツール(Serverspec等)
    • 統合監視ツール(Zabbix、Nagios等)

    などとの連携がしやすいです。

    またSlackなどのチャットツールと連携した運用作業も可能なため、複数人との運用でもコミュニケーションが取りやすいのが魅力。

    多くの製品と連携できるため、すでに導入しているツールとも併用しながら運用できます。使い慣れたツールを使いつつ、作業コストを下げられるので非常に便利です。

    ▲ページトップへ戻る

    4. Ansibleのラインナップ(エコシステム)

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    ここからはAnsibleのラインナップを紹介します。Ansibleで扱っているシステムは以下の通りです。

    • Ansible-Galaxy
    • Ansible Tower
    • Ansible-Container
    • TestInfra それぞれ詳しく紹介します。

    ▲ページトップへ戻る

    4.1 Ansible-Galaxy

    Ansible-Galaxyは、Ansibleで利用するPlaybookをロール単位で分けたものを共有できるサイトです。

    ロールとは、

    • 〇〇の動作をさせたい
    • ××のの動作をさせたい

    など、一定の細かい動きや効果などを記載したコードのテンプレートようなものです。拡張機能をイメージしてもらうと分かりやすいかもしれません。

    Ansible-Galaxyでは、ユーザーが作ったさまざまなロールがダウンロードできます。

    ▲ページトップへ戻る

    4.2 Ansible Tower

    Ansible Towerは、RedHat社がサブスクリプションとして提供しているサービスの1つです。2016年から日本でも利用できるようになりました。

    Ansible単体ではできなかった、アクセス権限を複数人で管理できるようになっているほかにも、視覚的にも使いやすいのが特徴です。

    Playbookの連携機能があり

    • GUI(画面操作)
    • CLI(コマンド操作)
    • RESTAPI(外部から操作しやすい仕組み)

    に対応しているため、非プログラマでも使いやすいインターフェースになっているのが特徴です。

    ダッシュボードに機能が全てまとまっており、スケジュール管理からアクセス権限、ユーザーの管理までさまざまな操作できます。

    ▲ページトップへ戻る

    4.3 Ansible-Container

    Ansible-Containerは、Ansibleを用いたDockerコンテナを作成するツールです。
    2021年現在は非推奨となっているため使われることは少ないです。

    Ansibleロールを使って

    • イメージの構築
    • プロジェクトの初期化
    • 既存プロジェクトのサービス追加

    などができる機能がありました。

    ▲ページトップへ戻る

    4.4 TestInfra

    TestInfraとは、Python製のインフラテストツールの1つです。
    Ansible専用のものではなく、Ansible以外にもChef、Puppetなどの構成管理ツールでも使えます。

    デプロイする時やバージョンの更新、アップデート時バグは起きていないか、問題なく正常に機能しているか確認するために使うツールです。

    「pip」がインストールされていれば以下のOSで利用できます。

    • Linux
    • BSD

    ▲ページトップへ戻る

    5.【CentOS向け】Ansibleの導入手順

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    先に簡単に流れを説明すると以下の通りです。

    1. Pythonをインストール
    2. Pythonのパッケージツール「pip」をアップデート
    3. Ansibleをインストール
    4. Ansibleが正常にインストールできているか確認

    インストールする際のコマンドと合わせて分かりやすく解説します!

    【環境】

    CentOS 8.0.1905
    Python 3.6.8
    Ansible 2.9.2

    1. Pythonを下記のコマンドでインストール

    すでにPythonを追加している人は、インストール手順2. へ進んでください。

    $ sudo dnf install python3 -y
    

    Pythonがインストールされているか確認したい場合は、下記のコマンドで確認してみてください。

    $ python --version
    

    2. Pythonのパッケージ管理ツール「pip」のアップデートを行う

    $ sudo pip3 install --upgrade pip
    

    3. Ansibleをインストールする

    $ sudo yum install ansible
    

    4. Ansibleのインストールがちゃんとできたか確認する

    $ ansible --version
    

    ▲ページトップへ戻る

    6.【Ubuntu向け】Ansibleの導入手順

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    先に簡単に流れを紹介すると以下の通りです。

    1. PPAをシステムに追加する
    2. Ansibleをインストールする
    3. Ansibleがインストールできているか確認する

    インストールする際のコマンドと合わせて詳しく紹介します。

    【環境】

    Ubuntu 20.04 LTS
    Python 3.8.5
    Ansible 2.9.2

    1. 以下のサイトで、PPAをシステムにインストールする

    https://launchpad.net/~ansible/+archive/ubuntu/ansible


    2. 以下のコマンドを入力しAnsibleをインストールする

    $ sudo apt update
    $ sudo apt install software-properties-common
    $ sudo add-apt-repository --yes --update ppa:ansible/ansible
    $ sudo apt install ansible
    

    3. Ansibleが正常にインストールできているか確認する

    $ ansible --version
    

    上記のコマンドを入力し、「Ansible 2.9.2」と表示されたら正常にインストールが完了しています。

    ▲ページトップへ戻る

    7.【エンジニア向け】Ansible案件の概要・傾向・相場

    Ansibleとは?構成管理の自動化についてわかりやすく解説 - AWSは使える?【フリーランスエンジニア案件情報 | プロエンジニア】

    Ansibleの案件の多くは、インフラエンジニア・サーバーエンジニア向けが多いです。

    案件例

    • サービスのインフラ運用
    • システムサービスの保守
    • スマートフォンアプリ向けのゲーム開発

    基本的にはインフラの運用と保守が多く、中には開発に携わる案件もあります。相場はおよそ月50~85万円です。

    Ansibleのみを扱う案件もありますが、開発に関連した案件もあります。場合によっては、開発に携わるプログラミング言語の経験や知識を求められることもあるでしょう。

    また、

    • AWSによるインフラ構築や運用経験
    • Azureによるインフラ構築や運用経験
    • GitやGitHubの利用経験
    • 自動化プロダクトの経験

    などがあると、保守や運用の案件でも高単価となりやすいです。

    ▲ページトップへ戻る

    8. まとめ

    ここまで、Ansibleについてさまざまなことをお伝えしてきました。最後に改めておさらいしましょう。

    Ansibleとは、構成管理ツールの1つです。

    Ansibleは以下の特徴があります。

    • エージェントレスなため対象ホストにシステムなどをインストールする必要がない

    • YAML形式を採用しているため読みやすく書きやすい

    • 多数の製品や機器に対応、連携可能

    Ansibleは構成管理ツールのなかでも導入しやすく、YAML形式を採用しているため非プログラマでも管理しやすいです。

    一方で、以下はAnsibleでできない点なので、導入前に確認しておきましょう。

    • GUIによる制御や組織での運用は発展途上
    • Windows対応も発展途上

    とはいえ構成管理ツールの中では扱いやすく、これからインフラ構築周りを勉強したい方、扱えるようになりたい方にもおすすめのツールです。インストール方法も難しくないため、興味のある方はぜひ試してみてはいかがでしょう。

    ▲ページトップへ戻る


    最新の求人情報をチェック!

    月額単価90万円〜
    勤務地 東京都 品川区 ・23区外
    • このページをはてなブックマークに追加

    おすすめ記事

  • ピックアップ

    正社員

    【VMware】インフラエンジニア|公共系企業インフラの再構築 NEW

    年収 :300万円〜600万円

    幅広いプロジェクトから、これまでのご経験やスキルに応じてピッタリなポジションをご用意。たとえば、...

    株式会社アクターリアリティー

    正社員

    【AWS】クラウドエンジニア|パブリッククラウドへのシステム設計・構築 NEW

    年収 :300万円〜

    ●仕事内容● オンプレからパブリッククラウド(特にAWS)へのシステム設計・構築業務 ■パブリックク...

    株式会社アクターリアリティー

    フリーランス

    【PHP】システムエンジニア★薬局・病院向けシステム開発 NEW

    薬局向けシステム、病院向けシステム開発を担当していただきます。 【具体的な業務内容】 ・クライ...

    フリーランス

    【JavaScript/SQL】システムエンジニア★某保険会社向け通達ニュース開発支援(Intra-mart) NEW

    月額単価 :90万円〜

    既存Formaアプリケーションの改修作業(Intra-mart) 工程:設計、開発、単体テスト、結合テスト