vnode.ypserver

Ansible ロール: ypserver

CI

このロールは、OpenBSDおよび他のBSD*オペレーティングシステムの一部であるYP/NISサーバーをインストールして設定します。 現在、このロールはOpenBSDのみをサポートしており、近い将来にFreeBSDとNetBSDのサポートを追加する予定です。

必要に応じて、このロールはシステムドキュメントを参照します。例として、yp(8)のマニュアルページがあります。

要件

操作

このロールを使用するためには、外部のロールやモジュールは必要ありません。

テストと開発

テストと開発のために、このロールは以下の外部ツールに依存します:

  • Vagrant(VirtualBoxまたはVMWareプロバイダーをサポート)
  • VagrantCloud(具体的には、generic/openbsd6ボックス)

ロール変数

利用可能な変数は以下にリストされています。デフォルト値を含みます(defaults/main.ymlを参照)。 すべての変数は実装されるべきです。実装されていない場合は、問題を報告してください。

必須変数

ロールを使用する際に設定する必要がある変数。

ypserver_domain: ""

必須。有効なNISドメイン名が必要です。これは、設定しようとしているNISドメインの名前です。

ypserver_master: ""

必須。ドメインの到達可能なNISマスターサーバーをリストする必要があります。

ypserver_servers: []

必須。ドメインのNISサーバーのセットをリストする必要があります。このリストには、ypserver_masterサーバーも含める必要があります。 注意: スレーブサーバーのみを設定する場合(すでに存在するマスターに対して)、マスターがこのロールを適用するホストグループに含まれていないことを確認してください。

ypserver_serverinfo: {}

必須ですが、ドメインのNISサーバーがDNSまたは/etc/hostsで見つかる場合は空でもかまいません。

空でない場合、この辞書はドメインのサーバーのIPv4および/またはIPv6アドレスをリストします。このロールは、必要な行を/etc/hostsに追加します。サーバーに接続できないか解決できないと、NISコードはハングします。詳細については、yp(8)を参照してください。

以下の例は、デュアルスタックネットワークにおけるmasterおよびslaveサーバーのアドレスを示しています。

ypserver_serverinfo:
  master:
    - "192.0.2.1"
    - "2001:db8::111:1"
  slave:
    - "192.0.2.2"
    - "2001:db8::111:2"
ypserver_ypservacl: {}

必須ですが、ypserver_set_ypserveraclが設定されている場合にのみ。この辞書は、ypserv.acl(5)ファイルのルールをリストします。このACLファイルは、YP/NISサーバーへのアクセスを適切なネットワーク範囲に制限することを許可します。 ypserver_set_ypserveraclが設定されていない場合、この変数は[securenet(5)](https://man.openbsd.org/securenet)ファイルを代わりに作成しますが、こちらはより制限された形式です。ルールがこれらの制限を考慮していることを確認してください。

必ずスレーブサーバーとYP/NISにアクセスする必要のあるクライアントも含めてください。たとえば、ローカルホスト、1つのスレーブサーバーslave、および192.0.2.0/24ネットワークのクライアントにアクセスを許可したい場合、次のようにします:

ypserver_ypservacl:
  - action: allow
    type: host
    host: "localhost"
  - action: allow
    type: host
    host: "master"
  - action: allow
    type: host
    host: "192.0.2.2"
    tag: "slave"
  - action: allow
    type: net
    host: "192.0.2.0"
    mask: "255.255.255.0"
    tag: "Clients"
  - action: deny
    type: all

オプション変数

ypserver_usedns: true

YP/NISマップがホスト名のルックアップにDNSを使用できることを指定します。trueのままにすることをお勧めします。falseに設定した場合、ypserver_serverinfoおよび/またはypserver_set_hostsが正しく設定されていることを確認してください。

ypserver_unsecure: false

OpenBSDやFreeBSDクライアントのみを提供する場合は、falseのままにすることをお勧めします。

trueに設定すると、passwdマップに(暗号化された)パスワードエントリが含まれます。すべてのYP/NISクライアントがOpenBSDまたはFreeBSDで動作する場合、この変数をfalseに設定しても安全です。詳細は、OpenBSD FAQを参照してください。この設定はNISの固有の安全性の低さを解決するにはほとんど効果がありません。

ypserver_nopush: false

スレーブサーバーでマップの更新が必要な特定の措置がない限り、trueのままにすることをお勧めします。

trueに設定すると、マスターで更新されたマップは自動的にスレーブサーバーにプッシュされません。その場合、スレーブサーバーの更新を別の方法(たとえば、cronジョブやrsyncを使用)で手配する必要があります。

ypserver_source_dir: '/etc'

NISドメインによって提供されるマップのソースディレクトリ。マスターサーバーに存在し、ypserver_source_maps変数で参照されるファイルを含む必要があります。

ypserver_source_maps:
  passwd: 'master.passwd'
  group: 'group'

この辞書は、NISドメインマスターがクライアントに提供するマップとそのソースファイルをリストします。これらのファイルは、ypserver_source_dirディレクトリ内にマスターに存在する必要があります。他のサポートされているマップについては、Makefile.yp(8)を参照してください。

ypserver_passwd_minuid:  1000
ypserver_passwd_maxuid: 32765
ypserver_group_mingid:   1000
ypserver_group_maxgid:  32765

これらの変数は、NISマップに含めるユーザー名とグループの下限/上限を示します。これにより、システムアカウントがマップに漏れるのを防ぎます。

サーバー上で複数のYP/NISドメインをサポートするための変数

この変数は、サーバー上で複数のNISドメインをホストすることを許可するためのものです。当初はこのような使用を意図していなかったため、問題が発生した場合は、GitHubで報告してください。

ypserver_set_domainname: true

これは、メイン(デフォルト)ドメイン名として意図されたドメインに対してtrueのままにすることをお勧めします。同じサーバー上でホストする他のNISドメインにはfalseを設定する必要があります。

追加設定

これらの変数はロールの呼び出しに必要ではなく、デフォルト値は問題ないはずです。

ypserver_set_hosts: false

trueに設定すると、ロールはNISサーバーのIP情報を/etc/hostsファイルに追加します。これは通常、ドメインがDNSルックアップを使用しない場合(ypserver_usednsfalseに設定されている)に便利です。この場合、ypserver_serverinfo変数に対して各NISサーバーのIP情報が必要です。

ypserver_set_yppasswdd: false

yppasswdサービスを有効にし、マスターサーバーのユーザーがNISマップでパスワードを変更できるようにします。ただし、OpenBSDの最近のバージョン(5.9以降)にはこの機能が含まれていません。

ypserver_set_ypservacl: false

ypserv.acl(5)ファイルに従ってACLファイル/var/yp/ypserv.aclを作成します。これにより、YP/NISサーバーへのアクセスを適切なネットワーク範囲に制限できます。ypserver_ypservacl変数が適切に設定されている必要があります。

ypserver_set_cronjob: true

ロールによる設定以外の手配が不要/希望でない限りtrueのままにすることをお勧めします。ドメインのマップの更新とスレーブサーバーの不足しているマップのチェックのための定期的なcronジョブを設定します。

ジョブ名 インターバル 注記
YPドメイン更新 ypserver_ypdomain 15分ごと マスターサーバーで
YPドメイン更新 ypserver_ypdomain :05に毎時 スレーブサーバーで

内部変数

これらの変数はロール内で使用されており、ユーザーによる変更は意図されていません。変更は自己責任で行ってください。通常、これは基礎となるオペレーティングシステムのハードコーディングされた値に対応しています。

ypserver_ypdbdir: '/var/yp'
ypserver_ypdbdir_domain: "{{ ypserver_ypdbdir }}/{{ ypserver_domain }}"
ypserver_securenet: "{{ ypserver_ypdbdir }}/securenet"

依存関係

なし。

例のプレイブック

以下は、masterslaveの2つのサーバーでシンプルなYP/NISドメインを作成する例です。ドメインはlegacyと呼ばれ、マップのソースファイルは/etc/legacyにあります。

---
- hosts: ypservers
  roles:
    - role: vnode.ypserver
      vars:
        ypserver_ypdomain: legacy
        ypserver_master: master
        ypserver_servers: "{{ groups['ypservers'] }}"
        ypserver_source_dir: "/etc/{{ ypserver_domain }}"

ライセンス

MIT

著者情報

このロールは2020年にRogier Kriegerによって作成されました。

プロジェクトについて

Install and configure a YP/NIS server

インストール
ansible-galaxy install vnode.ypserver
ライセンス
mit
ダウンロード
212
所有者