Tenn25 Blog
Ansibleの基礎知識
11.11.20183 Min Read — In others

11/10 にインフラ勉強会で Ansible AWX の講座をやっていたので個人メモ Ansible についてまとめる。

基本概要

  • 構成管理ツールの一種
  • 冪等性がある
  • 変更が必要ない場合はスキップされる
  • 部冪等性が担保されないものもある。(注意点)

Inventory

  • Ansible が管理する対象(ホスト名や IP)を定義する
  • グループ分けも可能
  • AWS の EC2 の情報を動的にとってくるなど、DynamicInventory もある

Module

  • Ansible から実行するコマンド郡
  • ファイルの操作やミドルウェアに対する設定変更など
  • 実行時に現在の状態を確認し変更がある場合は実施、ない場合はスキップする
  • 一部冪等性が担保されないものもある(command,shell など)

Plugin

  • Ansible がコアとなる機能を提供するために呼び出すもの
  • ConnectionPlugin...ホストと接続する機能
  • CallbackPlugin...Ansible のイベントをフックに呼び出せる機能

PlayBook

  • YAML で記述する
  • こういうことをしたい、このファイルをここに置きたいなどの操作を書く
  • 色々やろうとすると分量が増え 1 つにまとめるのは大変
  • 機能ごとに Role で細分化すると良い

Role

  • PlayBook を細かく切り出したもの
  • 肥大化すると後々一部を抜き出すのが大変なので、Role としてまとめておくと便利

似たようなツールとの違い

  • おそらく対象とするレイヤーが違う
  • Terraform や Cloudformation はインフラの構築を行う
  • Ansible,Chef は各サーバ内のミドルウェアや設定を行う

AWX とは?

  • Ansible 単体だと色々手間だったり手が届かないことをやってくれる
  • AnsibleTower のアップストリームプロジェクト(OSS で無料)
  • 権限管理、Git などとの統合、クラウドとの連携、ワークフロー管理など
  • コンテナベースで動作
  • 更新頻度がとても高い

AWX はどんな時に便利?

  • 組織として権限やログイン情報の管理が必要
  • RBAC,Credential
  • SCM(ソースコントロールマネジメント)
  • 複数の Playbook を繋げて処理を分岐させたい!(GUI でできるワークフローという機能)

所感

  • 基本用語も知らなかったので Ansible の概要がキャッチアップできた
  • AWX の UI がシンプルで好みだった。
  • Ansible をがんがん使ってる現場では必須だと思った。便利そう。
  • とりあえずローカルの VM に対して実行してみるとこからはじめます。。