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