jriguera.dnsmasq
ansible-role-dnsmasq
dnsmasqをセットアップするための多機能な役割で、次の哲学に基づいて作成されています: https://github.com/jriguera/ansible-role-pattern/blob/master/README.md
この役割は、さまざまな目的(DNS、TFTPなど)のための異なるインターフェースの定義と、多くのdnsmasqパラメータの管理をサポートしています。また、resolv.confファイルの管理も行えます。
Ansible 2.0を利用しており、Ubuntu Trusty、Xenial、およびCentOS 7で動作します。
設定
デフォルトの設定パラメータは次の通りです:
dnsmasq_enabled_on_startup: True
# resolvconfを管理する
dnsmasq_resolvconf: False
# 上流リポジトリからインストールするか、オペレーティングシステムのパッケージから直接インストールする
dnsmasq_os_packages: True
# グローバルパラメータ、設定が必要です!さもなくば無視されます!
dnsmasq_dhcp: True
dnsmasq_tftp: True
### resolv.conf
#dnsmasq_host_domain: local
#dnsmasq_host_search: local
dnsmasq_host_resolvers: [ "127.0.0.1" ]
# dnsmasqがシステムログにエントリを送信する施設を設定します。デフォルトは
# DAEMONで、デバッグモードの時はLOCAL0になります。指定した施設に
# '/'が1つでも含まれている場合、ファイル名として扱われ、dnsmasqはその
# ファイルにログを記録します。施設が'-'の場合、dnsmasqはstderrにログを記録します。
dnsmasq_conf_log: /var/log/dnsmasq.log
# 非同期ロギングを有効にし、オプションでsyslogへの書き込みが遅いときに
# dnsmasqがキューに入れる行数の制限を設定します。
#dnsmasq_conf_log_async:
dnsmasq_conf_log_dns: False
# リッスンするIPまたはインターフェースのリスト(すべての場合は空のリスト)
dnsmasq_conf_listen: []
# 対応するインターフェースだけをリッスンしている場合でも、dnsmasqは
# ワイルドカードアドレスにバインドします。その後、応答すべきでない
# リクエストを捨てます。この利点は、インターフェースが出入りしたり
# アドレスが変わったりしても機能することです。
dnsmasq_conf_bind_interfaces: 'dynamic'
### DNS
# ローカルサブネット上のホストからのDNSクエリのみを受け入れます。
# つまり、サーバー上にインターフェースが存在するサブネットです。
#dnsmasq_conf_local_service: True
# プレーンな名前(ドットやドメイン部分がないもの)を決して転送しません
dnsmasq_conf_domain_needed: True
# DNS転送ループを検出するコードを有効にします;つまり、上流サーバーに
# 送信されたクエリがdnsmasqインスタンスへの新しいクエリとして戻る状況です。
#dnsmasq_conf_dns_loop_detect: True
# /etc/hostsまたはDHCPリースファイルで見つからないプライベートIP範囲(192.168.x.xなど)
# のすべての逆引きは、「そのようなドメインは存在しません」という応答で
# 上流に転送されずに返答されます。
# ルーティングされないアドレス空間内のアドレスを転送しないでください。
dnsmasq_conf_bogus_priv: True
# dnsmasqに/etc/hostsを読み取らせたくない場合、次の行のコメントを外してください。
dnsmasq_conf_no_hosts: False
# 追加のホストファイル、/etc/hosts形式(リスト形式です!)
#dnsmasq_conf_hosts:
# - ["127.0.0.1", "localhost"]
# - ["::1", "ip6-localhost", "ip6-loopback"]
# - ["fe00::0", "ip6-localnet"]
# - ["ff00::0", "ip6-mcastprefix"]
# - ["ff02::1", "ip6-allnodes"]
# - ["ff02::2", "ip6-allrouters"]
# - ["192.168.1.10", "foo.mydomain.org", "foo" ]
dnsmasq_conf_hosts: []
# dnsメモリキャッシュサイズをここに設定します。
cache-size: 1024
# ネガティブキャッシングを無効にします。ネガティブキャッシングにより、
# dnsmasqは上流のネームサーバーからの「そのようなドメインは存在しません」という
# 応答を記憶し、同一のクエリに対して転送せずに応答できます。
# 上流サーバーからのネガティブ応答には通常、dnsmasqがキャッシングに使う
# SOAレコードの中に生存時間情報が含まれています。このパラメータが定義されていない場合:
# "no-negcache"。
dnsmasq_conf_negcache: 5
# このフラグは、dnsmasqに各クエリを/etc/resolv.confに表示される順序で
# 各サーバーで試させるものです。
dnsmasq_conf_strict_order: False
# このフラグは、dnsmasqにすべてのクエリをすべての利用可能なサーバーに送信させます。
# 最初に応答したサーバーからの応答が元のリクエスターに返されます。
dnsmasq_conf_all_servers: False
# dnsmasqに"/etc/resolv.conf"や他のファイルを読み取らせたい場合。
# 空または未定義の場合はresolv.confの読み取りを無効にします。
dnsmasq_conf_resolv: /etc/resolv.conf
# /etc/resolv.confの変更をポーリングしないでください。
dnsmasq_conf_no_poll: False
# dnsmasq_conf_no_pollがFalseの場合、/etc/resolv.confは再読み込みされるか、
# DBus経由で上流サーバーが設定され、DNSキャッシュがクリアされます。
dnsmasq_conf_clear_on_reload: True
# 上流サーバーのIPアドレスを直接指定します。このフラグを設定しても
# /etc/resolv.confの読み取りは抑制されません: ['localnet', '192.168.0.1']
# PTRクエリをネームサーバーにルーティングする例:これは全てを送信します:
# 192.168.3/24に対するaddress->nameクエリをネームサーバー10.1.2.3に送信します
# ['3.168.192.in-addr.arpa', '10.1.2.3']
#dnsmasq_conf_servers:
# - [ "/google.com/", "8.8.8.8" ]
# - "8.8.4.4"
dnsmasq_conf_servers: [ "8.8.8.8", "8.8.4.4" ]
# すべてのローカルマシンに対して自身を指すMXレコードを返します:'_self'
# すべてのローカルマシンに対してdnsmasqサーバーを指すMXレコード:'_local'または''
# すべてのローカルマシンに対して「servername」を指すMXレコード:'servername'
# "maildomain.com"という名前のMXレコードを返し、ターゲットは
# "servername"、優先度50:[maildomain.com, servername, 50]
#dnsmasq_conf_mx: servername
#dnsmasq_conf_mx_domain: {{ hostvars['k4.ww.mens.de'].
#dnsmasq_conf_mx_pref: 1
# DNSにA、AAAA、PTRレコードを追加します。これにより、関連するIPv4(A)および
# IPv6(AAAA)レコードを持つ1つ以上の名前がDNSに追加されます
#dnsmasq_conf_host_records:
# -[]
# dnsmasqが権限あるサーバーとして機能するDNSゾーンを定義します。
#dnsmasq_conf_auth_zone: []
### DHCP
# DHCPトランザクションに関する多数の追加情報をログに記録します。
dnsmasq_conf_log_dhcp: False
# dnsmasqのドメインを設定します。これはオプションですが、設定されている場合、
# 以下のことを行います。
# 1) DHCPホストが、この設定に一致するドメイン部分を持つ場合、
# 完全修飾ドメイン名を持つことができます。
# 2) "domain" DHCPオプションを設定し、これによりDHCPで構成されたすべてのシステムの
# ドメインを設定する可能性があります。
# 3) "expand-hosts"のためのドメイン部分を提供します。
# ドメインが"#"として指定された場合、/etc/resolv.confの最初の
# "search"ディレクティブからドメインが読み取られます。
dnsmasq_conf_domain: '#'
# dnsmasq_conf_domainが設定されている場合、無修飾名はもはやDNSに
# 入力されず、修飾名のみが入力されます。
dnsmasq_conf_dhcp_fqdn: True
# dnsmasqが間違いなくネットワーク上で唯一のDHCPサーバーである場合に
# 設定する必要があります。
dnsmasq_conf_dhcp_authoritative: True
# dnsmasqはDHCPクライアントのためにMACアドレスのハッシュを使って
# IPアドレスを選択するように設計されています。
dnsmasq_conf_dhcp_sequential_ip: True
# DHCPサーバー名およびファイル名フィールドの再利用を無効にします。
dnsmasq_conf_dhcp_no_override: True
# 統合DHCPサーバーを有効にするにはこれをコメントアウトしてください。
# リースのために利用可能なアドレスの範囲とオプションで
# リース時間を提供する必要があります。複数のネットワークがある場合、
# 各ネットワークについて繰り返す必要があります。
#dnsmasq_conf_dhcp: []
#dnsmasq_conf_dhcp:
# - device: eth0:
# range: [192.168.1.80, 192.168.1.150, infinite]
# option: []
# ignore_names: True
# generate_names: True
# boot: []
# tftp: /var/lib/tftpboot
# DHCPホスト情報をリストまたは指定されたローカルファイルから読み取ります
#dnsmasq_conf_dhcp_hosts: []
# リースデータベースファイルの使用を完全に抑制します。ファイルは
# 作成されず、読み取られず、書き込まれません。
dnsmasq_conf_dhcp_leasefile_ro: False
# 新しいDHCPリースが作成されたり、古いものが破棄されたり、TFTPファイル
# 転送が完了したときに、このオプションで指定された実行可能ファイルが実行されます。
#dnsmasq_conf_dhcp_script: files/program.bin
### TFTP
# TFTPのセキュアモードを有効にします。これがないと、dnsmasqプロセスが正常な
# UNIXアクセス制御ルールの下で読み取れるファイルはすべてTFTP経由で入手できます。
dnsmasq_conf_tftp_secure: False
# TFTPリクエスト内のファイル名をすべて小文字に変換します。これはWindowsマシンからの
# リクエストに便利です。
dnsmasq_conf_tftp_lowercase: True
# 許可される最大同時TFTP接続数を設定します。
dnsmasq_conf_tftp_max: 50
# TFTPサーバーがクライアントと「ブロックサイズ」オプションを交渉できないようにします。
dnsmasq_conf_tftp_no_blocksize: False
これらのデフォルトパラメータは、ロール変数として上書きできます。site.yml
の例を見て、vagrant up
を使用してテストしてください。
dnsmasqの管理に加えて、このロールはdnsmasq_resolvconf: true
およびdnsmasq_host_*
パラメータを定義することで、/etc/resolv.conf
ファイルの管理も行えます。
作者
José Riguera López jriguera@gmail.com
インストール
ansible-galaxy install jriguera.dnsmasq
ライセンス
Unknown
ダウンロード
714