Originally posted on Digital Ducttape
Foreman is a tool I have used for a long time as an external node classifier for Puppet and its smart-proxy for integration with DNS. However when Foreman recently added support for building EC2 instances inside a VPC, I thought it was a great opportunity to use the same tool for a new buildout.
Shortly after starting I discovered that reverse DNS is unfortunately broken for EC2 VPC builds. Foreman does not map a relationship between VPC subnets and any DNS smart-proxy. Unswayed I took to #foreman and was guided to a potential solution.
Enter foreman_hooks . This plugin for foreman allows you to subscribe to create/update/destroy events and invoke any executable. Lucky for me this was a great workaround for the functionality lacking in the recent 1.3 release. Initially I wrote a script utilizing the smart-proxy API to create PTR records but it complained that the IP address was already assigned. Fair enough. Without further investigation I wrote instead a short shell script which does the same thing using nsupdate with tsigs and viola! Integrated forward and reverse DNS for EC2 VPC deployments. A few more lines of code added support for the destroy hook and now the feature is complete.
diff --git a/dist/privacy/index.html b/dist/privacy/index.html
index 10aae5f..2af2afb 100644
--- a/dist/privacy/index.html
+++ b/dist/privacy/index.html
@@ -1,5 +1,5 @@
Privacy Policy — dd0c.net — dd0c.net Home About Services
GitHub Privacy Policy Effective: March 22, 2026
Overview This is a personal website. It does not collect, store, or process personal data from visitors.
Analytics This site does not use cookies or third-party analytics services. No tracking scripts are loaded.
Third-Party Services Some pages may embed content from third-party services (e.g., YouTube videos, GitHub gists). These services may collect data according to their own privacy policies.
Contact If you have questions about this policy, contact contact@dd0c.net .
Privacy Policy ·
+ Home About Services
GitHub Privacy Policy Effective: March 22, 2026
Overview This is a personal website. It does not collect, store, or process personal data from visitors.
Analytics This site does not use cookies or third-party analytics services. No tracking scripts are loaded.
Third-Party Services Some pages may embed content from third-party services (e.g., YouTube videos, GitHub gists). These services may collect data according to their own privacy policies.
Contact If you have questions about this policy, contact contact@dd0c.net .
\ No newline at end of file
diff --git a/dist/services/index.html b/dist/services/index.html
index 06373eb..ffe9a84 100644
--- a/dist/services/index.html
+++ b/dist/services/index.html
@@ -1,6 +1,6 @@
Services — dd0c.net Home About Services
GitHub Services Hourly and flat-cost projects.
Contact: contact@dd0c.net
Successful projects include Service deployments into and out of the cloud Zip-code based retail store locator Data-mining applications Custom web traffic reports Trouble ticket reporting Custom IVR application System automation with Puppet Ruby and PHP development SNMP network discovery CloudStack/XenServer implementation Skills DNS configuration File system sizing and creation Startup and shutdown scripts Kernel performance tuning Disaster recovery process implementation Installation and configuration of new hardware Installation of third party software packages Privacy Policy ·
+ Home About Services
GitHub Services Hourly and flat-cost projects.
Contact: contact@dd0c.net
Successful projects include Service deployments into and out of the cloud Zip-code based retail store locator Data-mining applications Custom web traffic reports Trouble ticket reporting Custom IVR application System automation with Puppet Ruby and PHP development SNMP network discovery CloudStack/XenServer implementation Skills DNS configuration File system sizing and creation Startup and shutdown scripts Kernel performance tuning Disaster recovery process implementation Installation and configuration of new hardware Installation of third party software packages
\ No newline at end of file
diff --git a/dist/terms/index.html b/dist/terms/index.html
index 150f2bd..2b28fe1 100644
--- a/dist/terms/index.html
+++ b/dist/terms/index.html
@@ -1,5 +1,5 @@
Terms of Service — dd0c.net — dd0c.net Home About Services
GitHub Terms of Service Effective: March 22, 2026
Use of This Site This is a personal website. All content is provided for informational purposes only.
Content Unless otherwise noted, all content on this site is © Brian Galura. You may link to any page freely. Reproducing content in full requires permission.
No Warranties Content is provided "as is" without warranties of any kind. Technical articles may reference outdated software or configurations.
External Links This site may link to external websites. I am not responsible for the content or privacy practices of those sites.
Contact Questions? Reach out at contact@dd0c.net .
Privacy Policy ·
+ Home About Services
GitHub Terms of Service Effective: March 22, 2026
Use of This Site This is a personal website. All content is provided for informational purposes only.
Content Unless otherwise noted, all content on this site is © Brian Galura. You may link to any page freely. Reproducing content in full requires permission.
No Warranties Content is provided "as is" without warranties of any kind. Technical articles may reference outdated software or configurations.
External Links This site may link to external websites. I am not responsible for the content or privacy practices of those sites.
Contact Questions? Reach out at contact@dd0c.net .
\ No newline at end of file
diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro
index d13302a..175c18b 100644
--- a/src/layouts/Base.astro
+++ b/src/layouts/Base.astro
@@ -77,7 +77,7 @@ const { title } = Astro.props;
-
+
Home
About