オープンソースなシステム管理フレームワーク Func

第2回Funcのインストールと設定・起動

今回はFuncのインストールと設定、起動から、簡単な動作確認の方法までを解説します。

なお、Funcは最近のRed Hat系Linux以外では動作しないようですので、以下の解説も最近のRed Hat系Linuxを前提としています。

Funcのインストール

第1回で解説したように、Funcにはcertmasterとminionという2つの役割が存在しますが、インストール手順はどちらの場合でも同じです。

Fedora 7/8でのインストール

Fedora 7/8であれば、updatesリポジトリにFuncのRPMパッケージが存在しますので、yumで簡単にインストールできます。

$ sudo yum -y install func

Fedora 7/8以外のRed Hat系Linuxでのインストール

Fedora 7/8用のRPMパッケージはnoarchなので、他のディストリビューションでもそのまま利用できそうですが、Pythonのバージョンが異なるとライブラリのインストールパスが異なり、そのままではインストールできませんので、RPMパッケージが用意されていないディストリビューションでは、people.fedoraproject.org上にある、Michael DeHaan氏のサイトからSRPMファイルを入手して、RPMパッケージをリビルドし、インストールします。

まずはSRPMからリビルドするために必要なパッケージをインストールします。

$ sudo yum -y install rpm-build python-devel python-setuptools

次にFuncのSRPMファイルを取得し、RPMパッケージをリビルドします。

$ wget http://people.fedoraproject.org/~mdehaan/files/func/func-0.17-1.src.rpm
$ sudo rpmbuild --rebuild func-0.17-1.src.rpm

最後に、Funcの実行に必要なパッケージのインストールと、Func本体をインストールします。

$ sudo yum -y install pyOpenSSL
$ sudo rpm -ivh /usr/src/redhat/RPMS/noarch/func-0.17-1.noarch.rpm

Funcの起動

certmasterの起動

certmasterの起動には特に設定は必要ありません。以下のコマンドを実行することですぐに起動できます。

$ sudo /sbin/chkconfig certmaster on
$ sudo /etc/init.d/certmaster start

minionの起動

minionを起動するには、まず/etc/func/minion.confを変更する必要があります。certmasterパラメータに、certmasterとなっているホストを指定してください。それ以外は特に変更する必要はありません。

# configuration for minions

[main]
log_level = DEBUG
certmaster = certmaster.example.org
cert_dir = /etc/pki/func
acl_dir = /etc/func/minion-acl.d

設定変更が完了したら、funcdを起動します。

$ sudo /sbin/chkconfig funcd on
$ sudo /etc/init.d/funcd start

Funcでの通信にはSSL証明書での認証が必要であり、funcdをはじめて起動する時には、certmasterに対して証明書の署名リクエストが発生します。certmaster側では証明書へ署名するために、以下のようにコマンドを実行します。

// 証明書リクエスト元ホストの確認
$ sudo certmaster-ca --list
client.example.org
// 証明書リクエストへの署名
$ sudo certmaster-ca --sign client.example.org
/var/lib/func/certmaster/csrs/client.example.org.csr signed - cert located at /var/lib/func/certmaster/certs/client.example.org.cer

これでFuncを利用するための準備が完了です。

Funcの動作確認

certmaster上で以下のようにfuncコマンドを実行することで、Funcが正常に動作しているかどうか確認します。

$ sudo func "*" list_minions
['https://client.example.org:51234']
client.example.org
0

上のように、minionとなっているホストが表示されれば正常に動作しています。minionが複数ある場合には、以下のように複数のminionが表示されます。

$ sudo func "*" list_minions
['https://client0.example.org:51234', 'https://client1.example.org:51234']
client0.example.org
client1.example.org
0

Funcを活用するための第一歩は、funcコマンドを使いこなすことです。次回はfuncコマンドの利用方法について、詳細に解説する予定です。

おすすめ記事

記事・ニュース一覧