Ansible および BSD¶
BSD マシンの管理は、Linux/Unix マシンの管理とは異なります。BSD を実行している管理ノードをお持ちの場合は、以下のトピックを確認してください。
BSD ノードへの接続¶
Ansible はデフォルトで OpenSSH を使用して管理ノードに接続します。これは、認証に SSH キーを使用する場合に BSD で機能します。ただし、認証に SSH パスワードを使用する場合、Ansible は sshpass に依存します。sshpass のほとんどのバージョンは BSD ログインプロンプトを適切に処理できないため、
BSD マシンに SSH パスワードを使用する場合は、OpenSSH ではなく paramiko
を使用して接続します。これは、ansible.cfg でグローバルに実行するか、inventory/group/host 変数として設定することもできます。以下に例を示します。
[freebsd]
mybsdhost1 ansible_connection=paramiko
BSD のブートストラップ¶
Ansible はデフォルトでエージェントレスですが、管理ノードで Python が必要になります。Python を使用しないと、raw モジュールしか動作しません。このモジュールを使用して Ansible をブートストラップし、Python を BSD バリアントにインストールするために使用できます (以下を参照) が、非常に制限されており、Ansible の機能を最大限に活用するには Python を使用する必要があります。
次の例では、Ansible の全機能に必要な json ライブラリーを含む Python 2.7 をインストールします。 コントロールマシンでは、FreeBSD のほとんどのバージョンに対して次のコマンドを実行できます。
ansible -m raw -a "pkg install -y python27" mybsdhost1
または、ほとんどのバージョンの OpenBSD の場合は、次のようになります。
ansible -m raw -a "pkg_add -z python-2.7"
これが完了すると、raw
モジュール以外の他の Ansible モジュールを使用できるようになります。
Note
この例では、FreeBSD で pkg を使用し、OpenBSD で pkg_add を使用する方法を示しましたが、BSD の代わりに適切なパッケージツールを使用できるはずです。パッケージ名が異なる場合もあります。インストールする Python パッケージの正確な名前は、使用している BSD バリアントのパッケージ一覧またはドキュメントを参照してください。
..BSD_python_location:
Python インタープリターの設定¶
さまざまな Unix/Linux オペレーティングシステムおよびディストリビューションに対応するために、Ansible が常に既存の環境変数 (または env
変数) を使用して、適切な Python バイナリーを特定することはできません。モジュールは、デフォルトでは、最もよく使用される /usr/bin/python
を参照します。BSD バリアントではこのパスが異なる可能性があるため、ansible_python_interpreter
インベントリー変数を使用して、バイナリーの場所を Ansible に通知することが推奨されます。以下に例を示します。
[freebsd:vars]
ansible_python_interpreter=/usr/local/bin/python2.7
[openbsd:vars]
ansible_python_interpreter=/usr/local/bin/python2.7
Ansible でバンドルされているプラグイン以外のプラグインを使用する場合は、プラグインの記述方法に応じて bash
、perl
、または ruby
に同様の変数を設定できます。以下に例を示します。
[freebsd:vars]
ansible_python_interpreter=/usr/local/bin/python
ansible_perl_interpreter=/usr/bin/perl5
利用可能なモジュール¶
Ansible のコアモジュールの大半は、Linux/Unix マシンと他の汎用サービスを組み合わせて記述されているため、Linux に限定したテクノロジー (LVG など) を対象とするものを除き、その大半が BSD 上で正常に機能します。
コントロールノードとしての BSD の使用¶
BSD をコントロールマシンとして使用することは、BSD バリアントの Ansible パッケージをインストールするか、pip
または「from source」の指示に従うのと同じくらい簡単です。
BSD ファクト¶
Ansible は、Linux マシンと同様の方法で BSD からファクトを収集しますが、データ、名前、構造は、ネットワーク、ディスク、およびその他のデバイスにより異なる可能性があるため、BSD 管理者にとっては出力が多少異なるもののまだ馴染みがあることが期待できます。
BSD の取り組みおよび貢献¶
Ansible では、BSD サポートが重要になります。貢献者の大半は Linux を使用し、対象としていますが、BSD コミュニティーは活発で、できるだけ BSD が使いやすくなるように努めています。 BSD と検出された問題または非互換性を報告してください。修正を含む pull リクエストもお寄せください。
See also
- アドホックコマンドの概要
- 基本コマンドの例
- Playbook の使用
- Ansible の設定管理言語について
- モジュールを開発する必要がありますか
- モジュールの書き方
- メーリングリスト
- ご質問はございますか。サポートが必要ですか。ご提案はございますか。 Google グループの一覧をご覧ください。
- irc.freenode.net
- IRC チャットチャンネル #ansible