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 に対して実行してみるとこからはじめます。。