]> Frank Brehm's Git Trees - salt/states.git/commitdiff
Adding state and service for bind
authorFrank Brehm <frank@brehm-online.com>
Wed, 9 Mar 2016 18:56:08 +0000 (19:56 +0100)
committerFrank Brehm <frank@brehm-online.com>
Wed, 9 Mar 2016 18:56:08 +0000 (19:56 +0100)
bind/conf.sls
bind/default_zones.sls
bind/dirs.sls
bind/init.sls
bind/map.jinja [new file with mode: 0644]
bind/rndc.sls
bind/user.sls

index 61fa6be786f3817d917a882c63dce4ddd85ef3a4..3e0c554a3b05e631a96be8b8bada0ee709685e21 100644 (file)
@@ -11,7 +11,10 @@ bind-conf_acl:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
+    - watch_in:
+      - service: bind
 
 bind-conf_log:
   file.managed:
@@ -23,14 +26,20 @@ bind-conf_log:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: /var/log/bind
+    - watch_in:
+      - service: bind
 
 bind-keys-file:
   file.exists:
     - name: {{ etc_dir }}/bind.keys
     - require:
+      - pkg: bind
       - file: bind-etc-dir
+    - watch_in:
+      - service: bind
 
 bind-conf_options:
   file.managed:
@@ -42,10 +51,13 @@ bind-conf_options:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: bind-home-dir
       - file: bind-keys-file
       - file: bind-rndc-key
+    - watch_in:
+      - service: bind
 
 bind-conf_local:
   file.managed:
@@ -57,8 +69,11 @@ bind-conf_local:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: bind-conf_zones.rfc1918
+    - watch_in:
+      - service: bind
 
 bind-conf_pri:
   file.managed:
@@ -70,8 +85,11 @@ bind-conf_pri:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: bind-zones-dir
+    - watch_in:
+      - service: bind
 
 bind-conf_sec:
   file.managed:
@@ -83,8 +101,11 @@ bind-conf_sec:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: bind-home-dir
+    - watch_in:
+      - service: bind
 
 bind-conf:
   file.managed:
@@ -96,6 +117,7 @@ bind-conf:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: bind-conf_acl
       - file: bind-conf_options
@@ -103,5 +125,7 @@ bind-conf:
       - file: bind-conf_default-zones
       - file: bind-conf_pri
       - file: bind-conf_sec
+    - watch_in:
+      - service: bind
 
 # vim: filetype=sls
index b177a8af006884818381e43b1118d3b2eceea450..991784e397f1c789c1180b7cf90101f60bf8a72b 100644 (file)
@@ -10,7 +10,10 @@ zone-db.0:
     - mode: 644
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-default-zones-dir
+    - watch_in:
+      - service: bind
 
 zone-db.127:
   file.managed:
@@ -21,7 +24,10 @@ zone-db.127:
     - mode: 644
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-default-zones-dir
+    - watch_in:
+      - service: bind
 
 zone-db.255:
   file.managed:
@@ -32,7 +38,10 @@ zone-db.255:
     - mode: 644
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-default-zones-dir
+    - watch_in:
+      - service: bind
 
 zone-db.empty:
   file.managed:
@@ -43,7 +52,10 @@ zone-db.empty:
     - mode: 644
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-default-zones-dir
+    - watch_in:
+      - service: bind
 
 zone-db.local:
   file.managed:
@@ -54,7 +66,10 @@ zone-db.local:
     - mode: 644
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-default-zones-dir
+    - watch_in:
+      - service: bind
 
 zone-db.root:
   file.managed:
@@ -65,7 +80,10 @@ zone-db.root:
     - mode: 644
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-default-zones-dir
+    - watch_in:
+      - service: bind
 
 bind-conf_default-zones:
   file.managed:
@@ -77,6 +95,7 @@ bind-conf_default-zones:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: bind-default-zones-dir
       - file: zone-db.0
@@ -85,6 +104,8 @@ bind-conf_default-zones:
       - file: zone-db.empty
       - file: zone-db.local
       - file: zone-db.root
+    - watch_in:
+      - service: bind
 
 bind-conf_zones.rfc1918:
   file.managed:
@@ -96,6 +117,9 @@ bind-conf_zones.rfc1918:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - file: zone-db.empty
+    - watch_in:
+      - service: bind
 
index 339fbb8352ab5e3c893a0a342aaac0c2ab1b41f4..d71825b7ae36f66e345a989c66bc48e1b7d5f12f 100644 (file)
@@ -10,6 +10,7 @@ bind-etc-dir:
     - dir_mode: 2755
     - makedirs: True
     - require:
+      - pkg: bind
       - group: bind-group
 
 bind-zones-dir:
@@ -19,6 +20,7 @@ bind-zones-dir:
     - group: bind
     - dir_mode: 755
     - require:
+      - pkg: bind
       - file: bind-etc-dir
 
 bind-default-zones-dir:
@@ -26,6 +28,7 @@ bind-default-zones-dir:
     - name: {{ def_zones_dir }}
     - makedirs: True
     - require:
+      - pkg: bind
       - file: bind-etc-dir
 
 bind-home-dir:
@@ -36,6 +39,7 @@ bind-home-dir:
     - dir_mode: 775
     - makedirs: True
     - require:
+      - pkg: bind
       - group: bind-group
 
 /var/log/bind:
@@ -45,6 +49,7 @@ bind-home-dir:
     - dir_mode: 755
     - makedirs: True
     - require:
+      - pkg: bind
       - group: bind-group
       - user: bind-user
 
@@ -55,6 +60,7 @@ bind-home-dir:
     - dir_mode: 755
     - makedirs: True
     - require:
+      - pkg: bind
       - group: bind-group
       - user: bind-user
       - file: /var/log/bind
@@ -67,5 +73,6 @@ bind-dnssec-dir:
     - dir_mode: 700
     - makedirs: True
     - require:
+      - pkg: bind
       - file: bind-etc-dir
 
index d512b3c26a780b7c3a02bef5a9c336af566397be..36bf9e16abc0e6c02a0f715517959fb8b714f0a5 100644 (file)
@@ -1,3 +1,12 @@
+{%- from "bind/map.jinja" import map with context -%}
+
+bind:
+  pkg.installed:
+    - pkgs: {{ map.pkgs|json }}
+  service.running:
+    - name: {{ map.service }}
+    - enable: True
+    - reload: True
 
 include:
   - bind.user
@@ -5,3 +14,4 @@ include:
   - bind.rndc
   - bind.default_zones
   - bind.conf
+
diff --git a/bind/map.jinja b/bind/map.jinja
new file mode 100644 (file)
index 0000000..5ade004
--- /dev/null
@@ -0,0 +1,68 @@
+{% set map = salt['grains.filter_by']({
+    'Debian': {
+        'pkgs': ['bind9', 'bind9utils'],
+        'service': 'bind9',
+        'config_source_dir': 'bind/files/debian',
+        'zones_source_dir': '/srv/salt/zones',
+        'config': '/etc/bind/named.conf',
+        'local_config': '/etc/bind/named.conf.local',
+        'key_config': '/etc/bind/named.conf.key',
+        'options_config': '/etc/bind/named.conf.options',
+        'default_config': '/etc/default/bind9',
+        'default_zones_config': '/etc/bind/named.conf.default-zones',
+        'named_directory': '/var/cache/bind/zones',
+        'log_dir': '/var/log/bind',
+        'user': 'root',
+        'group': 'bind',
+        'mode': '644'
+    },
+    'Gentoo': {
+        'pkgs': ['net-dns/bind', 'net-dns/bind-tools', 'net-dns/dnssec-root'],
+        'service': 'named',
+        'config_source_dir': 'bind/files/debian',
+        'zones_source_dir': '/srv/salt/zones',
+        'config': '/etc/bind/named.conf',
+        'local_config': '/etc/bind/named.conf.local',
+        'key_config': '/etc/bind/named.conf.key',
+        'options_config': '/etc/bind/named.conf.options',
+        'default_config': '/etc/conf.d/named',
+        'default_zones_config': '/etc/bind/named.conf.default-zones',
+        'named_directory': '/var/cache/bind/zones',
+        'log_dir': '/var/log/bind',
+        'user': 'root',
+        'group': 'bind',
+        'mode': '644'
+    },
+    'RedHat': {
+        'pkgs': ['bind'],
+        'service': 'named',
+        'config_source_dir': 'bind/files/redhat',
+        'zones_source_dir': '/srv/salt/zones',
+        'config': '/etc/named.conf',
+        'local_config': '/etc/named.conf.local',
+        'default_config': '/etc/sysconfig/named',
+        'named_directory': '/var/named/data',
+        'log_dir': '/var/log/named',
+        'user': 'root',
+        'group': 'named',
+        'mode': '640'
+    },
+    'Arch': {
+        'pkgs': ['bind', 'bind-tools', 'dnssec-tools'],
+        'service': 'named',
+        'config_source_dir': 'bind/files/arch',
+        'zones_source_dir': 'zones',
+        'config': '/etc/named.conf',
+        'local_config': '/etc/named.conf.local',
+        'named_directory': '/var/named',
+        'log_dir': '/var/log/named',
+        'user': 'root',
+        'group': 'named',
+        'mode': '640'
+    },
+}, merge=salt['grains.filter_by']({
+    'Ubuntu': {
+        'log_dir': '/var/log/named',
+        'user': 'bind'
+    },
+}, grain='os', merge=salt['pillar.get']('bind:lookup'))) %}
index 082c7336d68216ea8c900c8c5bae919e4a4a0aa8..2da9e7defe86b5d364a351995e5bfb982f7363d5 100644 (file)
@@ -11,9 +11,12 @@ bind-rndc-key:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-etc-dir
       - group: bind-group
       - user: bind-user
+    - watch_in:
+      - service: bind
 
 rndc-keyfile-public:
   file.managed:
@@ -25,6 +28,7 @@ rndc-keyfile-public:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-dnssec-dir
 
 rndc-keyfile-private:
@@ -37,5 +41,6 @@ rndc-keyfile-private:
     - template: jinja
     - backup: minion
     - require:
+      - pkg: bind
       - file: bind-dnssec-dir
 
index e7a2aa1a906ead2d7c61b883a09d996e0463db65..5edb8a0b331158ed5f203d47b374bf77535f3114 100644 (file)
@@ -4,6 +4,8 @@ bind-group:
   group.present:
     - name: bind
     - system: True
+    - require:
+      - pkg: bind
 
 bind-user:
   user.present:
@@ -15,4 +17,5 @@ bind-user:
     - system: True
     - createhome: False
     - require:
+      - pkg: bind
       - group: bind-group