今回はFuncを利用する上での基本となる、
funcコマンドの概要
funcコマンドはcertmaster上で実行します。コマンドの実行パターンとしては、
管理対象のminion一覧を表示する場合は、
$ sudo func target list_minions
各minion上でモジュールを実行して結果を取得する場合は、
$ sudo func target call module method [args ...]
targetは対象となるminionを指定します。ワイルドカードや;
$ sudo func "*" list_minions
と実行すると、
$ sudo func "www*" list_minions
と実行すると、
$ sudo func "www.example.org;mail.example.org" module method
といった形で、
また、
では、
管理対象minion一覧表示
管理対象minionの一覧を表示すると、
$ sudo func "*" list_minions
['https://func02.example.org:51234', 'https://func01.example.org:51234']
func02.example.org
func01.example.org
結果の最初の行は、
モジュールの実行と結果表示
利用できるモジュールの一覧表示
モジュールを実行する前に、
$ sudo func "func01*" call system list_modules
on https://func01.example.org:51234 running system list_modules ()
['certmaster', 'command', 'copyfile', 'filetracker', 'func_module', 'hardware',
'jobs', 'mount', 'nagios-check', 'netapp.snap', 'netapp.vol', 'netapp.vol.clone', 'networktest', 'process', 'reboot', 'rpms', 'service', 'smart', 'snmp', 'sysctl', 'test', 'yumcmd']
利用できるモジュールがリストとして返ってきます。
モジュールに関する情報の表示
各モジュールにどういったメソッドが存在するか確認したい場合には、
$ sudo func "func01*" call service list_methods
on https://func01.example.org:51234 running service list_methods ()
['status', 'reload', 'get_running', 'stop', 'start', 'inventory', 'get_enabled', 'restart', 'module_description', 'module_version', 'module_api_version', 'list_methods']
この例では、
メソッドリスト中にある、
$ sudo func "func01*" call service module_description
on https://func01.example.org:51234 running service module_description ()
Allows for service control via func.
module_
$ sudo func "func01*" call service module_version
on https://func01.example.org:51234 running service module_version ()
0.0.1
$ sudo func "func01*" call service module_api_version
on https://func01.example.org:51234 running service module_api_version ()
0.0.1
モジュールメソッドの実行と結果表示
では、
$ sudo func "func01*" call service start ntpd
on https://func01.example.org:51234 running service start (ntpd)
0
最後の0はexitコードです。
きちんと起動されているかどうか確認するために、
$ sudo func "func01*" call service status ntpd
on https://func01.example.org:51234 running service status (ntpd)
0
exitコードが0なので、
func "func01*" call service stop ntpd
on https://func01.example.org:51234 running service stop (ntpd)
0
この状態でstatusメソッドを実行してみます。
func "func01*" call service status ntpd
on https://func01.example.org:51234 running service status (ntpd)
3
exitコードが3となっており、
以上がfuncコマンドの基本的な使い方です。他にも様々なモジュールがありますので、
次回はPythonプログラムからモジュールを呼び出して実行する方法について解説する予定です。