第1回 Ansibleとは(2/2)

技術特集

第1回 Ansibleとは

Ansible

Ansible実行イメージ

AnsibleはPlaybookの記載内容に従い、PythonやPowerShellのスクリプトを生成します。その後、SSHやWinRM等を使用して構築対象サーバにスクリプトを送って実行します。そして、実行後スクリプトを削除して終了します。このため、構築対象のサーバには影響を与えずに実行することができます。

Ansibleにより得られる効果

Ansibleを使用することにより、以下のような効果が期待できます。

  • 【生産性】

    自動的に構築作業が行われるため、人間が手作業で実施した場合に必要となる手順書確認や入力等の待ち時間がなくなります。また、複数の環境を構築する場合の並行作業も可能となるため、同じ時間でより多くの環境構築が可能となります。

  • 【属人性】

    Playbookで定義した設定内容はチームの共有資産としてメンバー全員で管理することができます。一度Playbookを作成してしまえば、再利用により誰でも何度でも同一の環境を構築できます。また、内容を変更したい場合も既成のPlaybookを加工利用することができ、属人性を極力排除することができます。

    設定の検証作業に関してもPlaybookで管理する事が出来るため知識、スキルが無くても実施する事が可能となります。

  • 【品質】

    前述の通り、コンピュータにより処理自動的に構築作業が実行されるため、人間の介入によるオペレーションミスがなくなります 。また、繰り返し使用/試験されているPlaybookを利用するため品質が担保されます。

Ansibleの使いどころ

AnsibleはLinuxやWindowsのサーバだけでなく、クラウド上の環境(AWSやAzure、GCP)やコンテナ上の環境、ネットワーク機器に対しても利用可能です。1ミドルウェア/1設定変更のような小規模な利用方法であっても有効活用できます。

また、サーバ/サービスの起動停止や情報収集、セキュリティパッチ適用等の定型的な運用作業においても利用可能です。人手による作業に比べて早く、品質が高くなるだけでなく、運用担当者にログインさせない事によるセキュリティリスクの低減も図る事ができます。

Ansibleのラインナップ

元々OSSのGUIツールとして開発が行われてきましたが、そのエンジン部分が完成した際にCUIツールとしてリリースされました(Ansible)。2015年にRed Hat社に買収され、同社の保守サポートを有する商用版も提供されています。その後、2017年にGUIツールが完成しOSS版(AWX)、商用版(Ansible Tower)共に公開されたため、現在は4種類の選択肢(下表)があります。

OSS版で新規機能の開発、不具合解消を行った後に商用版が更新されるという流れとなっているので、OSS版は実験的な位置付けとなり、本番環境は商用版を導入することを推奨します。

AnsibleTower、AWXはAnsibleのWebGUIツールで、権限管理や監査機能、ワークフロー等、CUIツールのAnsibleにはない機能が補完されています。

  • 権限管理&監査機能

      どのユーザに、どこまでの権限を与えるか制御が可能(AD/LDAPとの連携可能)。

      また、ログから何が誰によって実施されたかの確認を行うことが可能です。

権限管理&監査機能

  • ワークフロー機能

      複数のPlaybookを、成否に応じて順番に実行する構築手法をとることが可能です。

ワークフロー機能

おわりに

今回は、Ansibleの特徴を始めとした概要を中心に説明しました。

次回からは実際にPlaybookの作成方法などAnsibleを用いた環境構築に関して紹介いたします。