You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Upstream publishes source tarballs and installation instructions, not an official package repository. The latest published upstream tarball is `djbdns-1.05.tar.gz`.
8
+
- Upstream installation guidance requires a UNIX-like system plus `daemontools` 0.70 or later and `ucspi-tcp`, then a local compile and `make setup check`.
9
+
10
+
### APT (Debian / Ubuntu)
11
+
12
+
- Debian still ships `djbdns` as a maintained source package and builds split binaries including `axfrdns`, `djbdns-conf`, `djbdns-utils`, `dnscache`, `rbldns`, `tinydns`, and `walldns`.
13
+
- Debian package pages for current and recent releases show distro-managed package availability for supported Debian architectures.
14
+
- Ubuntu still carries `djbdns` in the `universe` source package set. The cookbook's current package-install path is therefore most defensible on Debian-family platforms.
15
+
16
+
### DNF / YUM (RHEL family)
17
+
18
+
- I did not find a primary-source upstream package repository for RHEL-family systems.
19
+
- Inference: the cookbook's source-install path remains the only installation path directly backed by upstream documentation for RHEL-family platforms.
20
+
21
+
### Zypper (SUSE)
22
+
23
+
- I did not find a primary-source upstream package repository for SUSE/openSUSE.
24
+
- Inference: source installation is also the only path clearly supported by upstream guidance on SUSE-family platforms.
25
+
26
+
## Architecture Limitations
27
+
28
+
- Upstream does not publish a tested architecture matrix; its guidance is source-build oriented rather than architecture-specific.
29
+
- Debian and Ubuntu package availability is distribution-managed and architecture-dependent. The cookbook should treat package installs as Debian-family specific, not universally portable.
30
+
31
+
## Source / Compiled Installation
32
+
33
+
### Build Dependencies
34
+
35
+
| Platform Family | Packages / Requirements |
36
+
|-----------------|-------------------------|
37
+
| Debian | Compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`|
38
+
| RHEL | Compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`|
39
+
| SUSE | Compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`|
40
+
41
+
## Known Issues
42
+
43
+
- The cookbook's `install_method` heuristic is cookbook-local logic, not upstream vendor guidance.
44
+
- The cookbook metadata currently advertises platforms that are broader and older than the upstream/package evidence gathered here. Platform modernization should be handled explicitly and separately from this resource migration.
45
+
-`axfrdns` depends on `tcpserver` from `ucspi-tcp`, but the cookbook does not yet model that dependency as a first-class resource concern.
Copy file name to clipboardExpand all lines: README.md
+25-6Lines changed: 25 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ It may work with or without modification on other platforms, particularly using
26
26
27
27
## Chef
28
28
29
-
- Chef 14+
29
+
- Chef 15.3+
30
30
31
31
## Cookbooks
32
32
@@ -57,6 +57,25 @@ It may work with or without modification on other platforms, particularly using
57
57
58
58
## Resources
59
59
60
+
This cookbook is mid-migration from recipe/attribute-driven behavior toward higher-level resources. The current resource-first surface is:
61
+
62
+
-`djbdns_install` - installs djbdns and bootstraps shared users/directories.
63
+
-`djbdns_server` - configures the public tinydns service.
64
+
-`djbdns_internal_server` - configures the internal tinydns service with explicit records or legacy data-bag/template inputs.
65
+
-`djbdns_cache` - configures the public dnscache service.
66
+
-`djbdns_axfr` - configures the axfrdns service that fronts an existing public tinydns directory.
67
+
-`djbdns_rr` - appends tinydns records inside an existing tinydns root.
68
+
69
+
The legacy recipes `default`, `server`, `cache`, `internal_server`, and `axfr` are now compatibility wrappers around those resources.
70
+
71
+
### Resource Model Roadmap
72
+
73
+
-`djbdns_install`: shared install/bootstrap layer
74
+
-`djbdns_server`: public tinydns service
75
+
-`djbdns_internal_server`: internal tinydns service with explicit data-bag/template inputs
76
+
-`djbdns_cache`: public dnscache service
77
+
-`djbdns_axfr`: axfr service bound to an existing public tinydns instance
78
+
60
79
## djbdns_rr
61
80
62
81
Adds a resource record for the specified FQDN.
@@ -89,7 +108,7 @@ end
89
108
90
109
## default
91
110
92
-
The default recipe installs djbdns software from package where available, otherwise installs from source. It also sets up the users that will run the djbdns services using the UID's specified by the attributes above. The service type to use is selected based on platform.
111
+
Compatibility wrapper for `djbdns_install`.
93
112
94
113
The default recipe attempts to install djbdns on as many platforms as possible. It tries to determine the platform's installation method:
95
114
@@ -104,15 +123,15 @@ Service specific users will be created as system users:
104
123
105
124
## axfr
106
125
107
-
Creates the axfrdns user and sets up the axfrdns service.
126
+
Compatibility wrapper for `djbdns_axfr`.
108
127
109
128
## cache
110
129
111
-
Sets up a local DNS caching server.
130
+
Compatibility wrapper for `djbdns_cache`.
112
131
113
132
## internal_server
114
133
115
-
Sets up a server to be an internal nameserver. To modify resource records in the environment, modify the tinydns-internal-data.erb template, or create entries in a data bag named `djbdns`, and an item named after the domain, with underscores instead of spaces. Example structure of the data bag:
134
+
Compatibility wrapper for `djbdns_internal_server`. The resource supports explicit `records`, or the legacy fallback path of the `tinydns-internal-data.erb` template plus a `djbdns` data bag item named after the domain with underscores instead of spaces. Example structure of the legacy data bag:
116
135
117
136
```json
118
137
{
@@ -134,7 +153,7 @@ Aliases and hosts should be an array of hashes, each entry containing the fqdn a
134
153
135
154
## server
136
155
137
-
Sets up a server to be a public nameserver. To modify resource records in the environment, modify the tinydns-data.erb template. The recipe does not yet use the data bag per `internal_server` above, but will in a future release.
156
+
Compatibility wrapper for `djbdns_server`. To modify resource records in the environment, modify the tinydns-data.erb template. The recipe does not yet use the data bag per `internal_server` above, but will in a future release.
0 commit comments