きっかけ
モジュールの探し方が自分の中でやっと安定してきたので整理します。
もっといい方法があれば教えてください。
前提
現在は色々なナレッジが公開されているので、ググる方がすぐにわかりやすい解説が出てくることも増えてきていますが、
ここでは初心に戻ってAnsible公式マニュアルから探すことを前提とします。
ポイント
3つあります。
- Module Indexのカテゴリで絞り込む
- モジュールの命名規則から検索
- サービス名、コマンド名などのキーワード検索
Module Indexのカテゴリで絞り込む
All Modulesの他にも、下記カテゴリが用意されています(#の後ろは収録製品などの一例)。
- Cloud modules #AWS/GCP/Azure/Docker/OpenStack
- Clustering modules #Pacemaker/k8s
- Commands modules #任意コマンド実行
- Crypto modules #openssh/openssl
- Database modules #MySQL/PostgreSQL/Vertica
- Files modules #ファイルコピー/編集/圧縮/属性管理
- Identity modules #IPA
- Inventory modules #Ansibleのインベントリ管理
- Messaging modules #Rabbitmq
- Monitoring modules #Zabbix
- Net Tools modules #HAPloxy/NetWorkManager/SNMP/LDAP/
- Network modules #ACI/CheckPoint/IOS/VyOS/F5
- Notification modules #Mail/O365/ServiceNow/Slack
- Packaging modules #yum/pkg5/apt/pip
- Remote Management modules #IMC/OneView
- Source Control modules #git/subversion/bitbucket
- Storage modules #EMC/Grusterfs/3par/netapp
- System modules #Linuxシステム管理系
- Utilities modules #Playbookの効率化/拡張機能
- Web Infrastructure modules #AnsibleTower/Apache2/Jenkins/Django/Nginx
- Windows modules #Windows
自分がよく使う処理や製品がどこに属しているかはチェックしておくと検索効率が格段に向上します。
Inventory Modules、Utilities ModulesはAnsible自体に関連するモジュールなので、個人的に知っていないとまず見に来ないです。
全然検討もつかなかったり、お目当てのモジュールがなかった場合はAll Modulesに最後の望みを託し、地道に検索します。
モジュールの命名規則から検索
ほとんどのモジュール名は下記のような命名規則になっています。
※Ansibleのルールなのか、慣習なのかは確認中です。もし情報あればコメントいただけると助かります。
[ 製品名_ [ カテゴリ_ ] ]キーワード
ex: win_ping, MySQL_user, bigip_ssl_key, etc...
製品名がないものもありますが、ほとんどLinux用です。
キーワード部分は多くが共通の言葉を使っているので、xxをするための○○製品版モジュールだ!というのは推測しやすいです。
サービス、コマンド名などのキーワード検索
地味ですが強力。ブラウザの検索機能をフル活用してガツガツ引っかけましょう。
モジュールリストの見方だけ確認しておきます。
モジュール名 - モジュールの簡易説明
Ex: yum – Manages packages with the yum package manager
タイムゾーンを管理したいならtimezone、サービス管理したいならserviceコマンド、という感じで英単語を検索していけばOK。
おわりに
モジュールさえ特定できれば、利用例はマニュアルにExampleセクションがあるのですごく楽です。
それでも見つからなかったら諦めてcommandモジュール使いましょう!いつか有力なナレッジが投稿されると信じて...