今回はFuncを利用する上での基本となる、funcコマンドの使用方法について解説します。
funcコマンドの概要
funcコマンドはcertmaster上で実行します。コマンドの実行パターンとしては、管理対象のminion一覧を表示する場合と、各minion上でモジュールを実行して結果を取得する場合の、2パターンがあります。
管理対象のminion一覧を表示する場合は、以下のように実行します。
各minion上でモジュールを実行して結果を取得する場合は、以下のように実行します。
targetは対象となるminionを指定します。ワイルドカードや;(セミコロン)区切りで複数のminionを指定することができます。例えば、
と実行すると、管理対象となっているすべてのminionを表示します。また、
と実行すると、ホスト名がwwwではじまるminionを表示します。ピンポイントで複数のminionを指定する場合には、
といった形で、;(セミコロン)で区切って指定します。
また、モジュールを実行する場合の引数moduleには実行するモジュール名を、methodには実行するモジュールのメソッド名を、[args ...]には、モジュールメソッドの引数を、必要に応じて指定します。
では、実際にfuncコマンドを実行してみましょう。
管理対象minion一覧表示
管理対象minionの一覧を表示すると、以下のような結果が返ってきます。
結果の最初の行は、リストで渡されたminionの一覧をそのまま表示しており、2行目以降では、minionのホスト名をひとつひとつ表示しています。
モジュールの実行と結果表示
利用できるモジュールの一覧表示
モジュールを実行する前に、まずはどういったモジュールが使えるのかを知る必要があります。そのためには、systemモジュールのlist_modulesメソッドを実行します。
利用できるモジュールがリストとして返ってきます。
モジュールに関する情報の表示
各モジュールにどういったメソッドが存在するか確認したい場合には、call の後に利用したいモジュール名を指定し、続けてlist_methodsメソッドを指定します。
この例では、serviceモジュールで利用できるメソッドをリストで取得しています。
メソッドリスト中にある、module_descriptionメソッドを実行すると、モジュールの説明が表示されます。
module_versionメソッド、module_api_versionメソッドを実行すると、モジュールやモジュールAPIのバージョンが表示されます。
モジュールメソッドの実行と結果表示
では、serviceモジュールを実行して、minion上のntpdサービスを起動してみます。
最後の0はexitコードです。
きちんと起動されているかどうか確認するために、serviceモジュールのstatusメソッドを実行してみます。
exitコードが0なので、ntpdが起動していることがわかります。次に、ntpdサービスを停止してみます。
この状態でstatusメソッドを実行してみます。
exitコードが3となっており、ntpdが起動していないことがわかります。
以上がfuncコマンドの基本的な使い方です。他にも様々なモジュールがありますので、色々と試してみてください。
次回はPythonプログラムからモジュールを呼び出して実行する方法について解説する予定です。