ITblog

Ansibleについての勉強メモ

2018年10月12日

Ansible

Ansibleについての勉強メモです。

Ansibleとは

  • レッドハットが開発した構成管理ツール
  • サーバを立ち上げてのソフトウェアのインストールや設定をPlaybookと呼ばれる設定ファイルを作ることで、Playbookの内容に沿って自動で行える
  • メリットとしては、複数のサーバを運用する場合、数が多くなればなるほど、サーバの設定を1つ1つ手動でやるのは時間がかかり、設定漏れの問題もある
  • Ansibleをはじめとする構成管理ツールを使うことで、あらかじめ定められた手順に沿って一瞬でサーバ構築をすることができる。

どういうときに必要か

複数のサーバ環境を整える必要があり、手動でやると一つ一つ手間がかかって大変だし、設定漏れが出る可能性があるが、Ansibleを使うことで一瞬で設定して同じ状況を作ることができる。
設定漏れも防ぐことができる。

Chefとの違い

  • ChefはRubyだがAnsibleはPython
  • エージェントレス
  • 記述がYAMLなので学習コストが低い(反面、複雑になると苦手)

Ansibleの利用手順の例

まず Vagrant + VirtualBox を導入

サーバを利用環境の中に立てる。
別に仮想環境でなくてもいいのだが、テストをするのに仮想サーバを使うと便利。

Vagrantの設定ファイルに仮想サーバの設定情報を記述する
Controller、targetの2つのサーバを作成
controllerのサーバにAnsibleを導入して、targetのサーバを操作する

OS情報、ネットワークIPアドレス、ポート番号などを記述

VagrantにOSテンプレートを追加

Vagrant up で設定ファイルに記述した仮想サーバを作成

controllerのサーバにyumでAnsibleをインストール
Ansibleの動作要件にはpythonが必要

Controllerのサーバからtargetへの疎通が必要なため、公開鍵を入れておく

Contorollerのサーバへログインし、inventoryファイルを設定。
これは、対象サーバのIPアドレスを記述する

Controllerから対象サーバへの疎通を確認する

Contorollerにyml形式でplaybookを作成する。
記述は独特の形式なので勉強が必要

記述例として、ホスト、ユーザ、実行するタスクを複数記述する
変数や配列は 別の group_vars/target.yml 内に記述することで記述を簡略化できる

ansible-playbookコマンドでplaybookの内容を実行
実行時に、inventoryの場所と、playbookを指定

Ansibleの便利な点

冪等性(べきとうせい)の担保

例えば同じplaybookを複数回実行した場合、実行対象のサーバに対してすでにPlaybookに記述された状態になっている場合、その状態を実行しない。
例えばcopyをplaybookに設定してある場合、上書き処理も実行しない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です