0
1

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 3 years have passed since last update.

Ansibleとは何か

Posted at

 Ansibleはオープンソースの構成管理とOSやソフトウェアなどの設定作業を自動化するツールであり、主にLinuxやWindowsなどの管理に利用されている。

 クラウド環境やコンテナ環境でも管理可能なモジュールは提供されているが、Ansibleは基本的には管理者が手動で実行・管理していたOSコマンドやOS上の設定ファイルを自動で管理する。本稿ではこの機能を中心に説明していく。

 Ansibleとは、OSのターミナルから実行するコマンドのことであり(以下、「Ansibleコマンド」と呼ぶ)、Ansibleコマンドが導入されているサーバーを本稿では「Ansibleサーバー」と呼ぶ。

 AnsibleサーバーでAnsibleコマンドを実行すると、Ansibleサーバーから被管理サーバーへアクセスして各種設定を行う。

 被管理サーバーへのアクセスと設定の反映には、対象がLinuxサーバーの場合はSSHプロトコルとPythonを、Windowsの場合はWinRM(Windows Remote Manager:Windowsリモート管理)プロトコルを使用する。被管理サーバー側に、Ansibleのクライアントを導入する必要はない。

 このクライアントの導入不要という点はAnsibleの大きなメリットの1つであり、そのため被管理サーバーを作成してから直ちにAnsibleでのセットアップが可能となる。

 Ansibleにはいくつかコマンドが存在するが、Ansibleによる構成管理というと、ansible-playbookコマンドを実行する形が一般的である。

 ansible-playbookコマンドを実行する際には、PlaybookファイルとInventoryファイルが必要である。Playbookファイルは、被管理サーバーに対して設定する内容を記述したテキストファイル(YAMLフォーマット)で、パッケージ管理、ユーザー管理、ファイルやディレクトリ操作、サービス操作など、さまざまな設定が可能である。

 一方、Inventoryファイルは被管理サーバーの接続情報を定義するテキストファイルで、主に被管理サーバーのホスト名やIPアドレスのリストを記載するほか、被管理サーバーにアクセスする際に使用するユーザーID、パスワードやSSH鍵、被管理サーバーに導入されているPythonのパス、といった情報を記載することもある。

 Ansibleコマンドの実行イメージは、以下のとおりである。

$ ansible-playbook -i Inventoryファイルパス Playbookファイルパス 

 デフォルトでは、ansible-playbookコマンドを実行したユーザーIDとSSH鍵で被管理サーバーにSSH接続して、Playbookを実行する。

 異なるユーザーIDとSSH鍵でSSH接続する場合は、-uや–private-keyオプションなどを使用し、被管理サーバーがWindowsである場合はInventoryファイルにユーザーIDやパスワードを記述する。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?