Ansible とは?

Ansible

Ansible最新情報

NRIのOpenStandiaが提供するAnsible最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Ansible バージョンアップ情報

すべてを見る

更新日:2023-04-24

Ansibleの概要

Ansible(アンシブル)はインフラにおけるサーバ構成管理や、サーバへのファイル展開作業など
を自動化するPython製のオープンソース・ソフトウェアです。
システム構築において、特定機能・構成を持つサーバを複数用意する必要がある場合、
サーバ一台ごとにインストール・設定作業を行うには非常にコストがかかります。
また、手作業の作業量が増えることでミスが発生する可能性も高くなってしまいます。
このような問題に対応するため、Ansibleをはじめとするサーバ構成管理・自動化ツールが
開発されました。
Ansibleと類似する機能を持つソフトウェアとしてはChefやPuppetなどが挙げられます。
AnsibleはAnsible,Inc.を中心に開発・サポートが行われていましたが、
Ansible,Inc.は2015年10月に米RedHat,Inc.に買収されました。
RedHat,Inc.はAnsibleの開発は勿論のこと、その利用を簡便化するツールである
Ansible Towerも開発・リリースしており、Ansibleとその周りのツールについては、
今後その発展が期待されます。

TOPに戻る

Ansibleの主な特徴

類似するサーバ構成管理・自動化ツールと比べたときAnsibleの特徴としては、
下記のような点が挙げられます。

  • エージェントレスであること

Ansibleを利用する場合、特に比較されることの多いChefと異なり構成管理対象である
ホストにクライアントなどをインストールする必要はありません。
管理側のホスト・管理対象のホストが動作条件を満たせばすぐにでも利用可能です。

  • シンプルで初学者でも理解が容易であること

Ansibleの処理は、playbookと呼ばれるYMLファイルでシンプル且つ
容易に理解できる形で記述することが可能です。
例えば、特定のグループ(yum_group)に属するサーバにおいて、rootユーザでyumの
updateを実行するplaybookは下記のように記述できます。

- hosts: yum_group
gather_facts: False  
remote_user: root
# 対象のグループを指定
# ターゲットホストの情報を取得しない
# リモート接続のユーザにはrootを指定
vars_prompt:  
- name: yum update prompt 
prompt: "Execute yum update ?"
private: no
default: Y
# 対話式実行のためのプロンプトを定義
# プロンプト名指定
# 処理の実行可否の確認文
# エコーバックの有無
# デフォルト値の設定
tasks:                         
- name: update yum packages    
yum: name=* state=latest    
when: yum_update =="Y"       
# 処理の定義
# 処理名指定
# パッケージ名、最新版を指定
# プロンプトで許可されていた場合にのみ実行

Ansibleはアーキテクチャそのものも、"SSHログイン"と"処理実行"といったシンプルな構成で
あるため、初学者でも理解が容易であるといえます。
また、AnsibleにはAnsible Galaxyと呼ばれる処理の共有サービスが存在します。

https://galaxy.ansible.com/

このサービスにより、初学者は既存の処理を利用したり、記述を参照したりすることが可能です。

  • 冪等性が確保されていること

Ansibleを使うことで、冪等性を担保することができます。
冪等性とは、同じ処理を何度実行しても同一の実行結果が保証される性質です。
これによって、複数回処理を実行した際に、構成がホストによって崩れてしまうことを
防ぐことができます。
なお、Chefを使った場合でも冪等性を担保することは可能です。

TOPに戻る

Ansibleの機能

Ansibleを使用することで、以下が可能です。

インベントリの構築
  • 自動化するサーバとデバイスのリストを追跡
  • 動的インベントリを使用し、サーバとデバイスが常にクラウドサービスを追跡
  • パターンを使用してインベントリの特定のサブセットを自動化
  • Ansibleがインベントリに使用する接続方法の拡張と改良
コマンドラインツールの使用
  • アドホックコマンドと、様々な操作、および自動化タスクを実行するためのユーティリティを提供
playbookの使用
  • 昇格された権限、または別のユーザとしてタスクを実行
  • ループを使用し、リスト内の項目のタスクを繰り返す
  • playbookを委任し、異なるマシンでタスクを実行
  • 条件付きタスクを実行し、playbookテストで条件を評価
  • ブロックを使用し、一連のタスクをグループ化
機密データの保護
  • Vaultパスワードの保護
  • Ansible Vaultを使用したコンテンツとファイルの暗号化
  • 暗号化された変数とファイルの使用
モジュールとプラグインの使用
  • システムリソースの制御や、システムコマンドの実行が可能なモジュールライブラリを提供
  • Ansibleのコア機能を拡張するプラグインアーキテクチャを提供
  • 独自のモジュール、プラグインを作成、使用することも可能
コレクションの使用
  • playbook、ロール、モジュール、およびプラグインを含んだAnsibleコンテンツの配布形式
  • Ansible Galaxyなどの配布サーバを介して使用可能

TOPに戻る

Ansibleの動作環境

前提となる動作環境は、以下の通りです。

  • 管理側のホストに、Python3.8以上がインストールされていること(Ansible 2.11以降。ただし、Windowsでの動作はサポートされません)
  • 管理対象のホストに、Python2.6以上もしくはPython3.5以上がインストールされていること
  • 管理側のホスト・管理対象のホスト間でSSH通信が可能であること

TOPに戻る

Ansibleのライセンス

Ansibleのライセンスは、GPL v3.0(GNU General Public License)です。
ソフトウェアのコピーや配布、ソースコードの公開を原則とし、ソースコードを改変も
認められています。

TOPに戻る

参考情報

Ansibleの公式サイト

TOPに戻る

Ansibleのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO