我想我想知道类似于我可以为某些主机创建 DNS 记录,将同一域中的其他查询委托给另一个 DNS 服务器吗?,但我希望我能通过 BIND 得到不同的答案。
基本上,我已经有home.mydomain.tld
一个公开的 A 记录,它是动态更新的。我想知道是否有某种方法可以简单地在我的家庭网络中为该域提供本地服务而不覆盖它。真的,只是本地 AAAA 记录。A 记录希望来自我路由器的 DNS/DHCP 服务器;了解 IPv6 还不够聪明。
如果没有,我想我可以每隔一段时间半自动地填充 A 记录,但如果有可能避免这样做,我想尝试一下。
我正在寻找对我的基础架构执行定期滚动升级的最佳方法。
通常,这涉及在每台主机上执行此操作,一次一个:
sudo yum update -y && sudo reboot
Run Code Online (Sandbox Code Playgroud)
但是,我遇到了可扩展性的限制。
我只想在我的每个角色中一次重新启动一个节点,这样,比如说,我不会同时关闭所有负载均衡器或数据库集群成员。
理想情况下,我想做类似的事情:
for role in $(< roles_list.txt) ; do
mco package update_all_and_reboot \
--batch 1 --batch-sleep 90 \
-C $role -F environment=test
done
Run Code Online (Sandbox Code Playgroud)
但是,这似乎并不存在。我不确定使用“shell”代理是否是最好的方法?
mco shell run 'yum update -y && reboot' \
--batch 1 --batch-sleep 90
Run Code Online (Sandbox Code Playgroud)
不过,我是否只是为这项工作寻找了错误的工具?有没有更好的方法来管理这些滚动重启,但我可以以某种方式与我的 Puppet 分配的角色联系起来,这样我就可以放心,我不会一下子删除任何重要的东西,但我仍然可以做一些并行更新和重启?
我在网上查阅了大量参考资料,这些参考资料告诉我,我应该能够设置一个前端,例如:
frontend http_https
bind 1.2.3.4:443 ssl crt /etc/haproxy/tls/mycert.pem
bind 1.2.3.4:80
mode http
option httplog
option forwardfor
option http-server-close
redirect scheme https code 301 if !{ ssl_fc }
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
http-request set-header X-Request-Start t=%Ts%ms
http-response set-header Strict-Transport-Security max-age=15768000
use_backend %[req.hdr(host),lower,map(/etc/haproxy/domains-to-backends.map)]
Run Code Online (Sandbox Code Playgroud)
当我在后端服务器上获取 a 时tcpdump
,我看到所有add-header
和set-header
标头,但没有看到任何X-Forwarded-For
标头。
如果我添加类似的内容:
http-request add-header X-Client-IP %[src]
Run Code Online (Sandbox Code Playgroud)
我确实看到该标头连同正确的客户端 IP 一起传递。
任何人都可以深入了解为什么这可能行不通吗?或者有什么理由我不应该只使用http-request set-header X-Forwarded-For %[src]
而不是option forwardfor
?
后端部分示例:
backend bk_foo …
Run Code Online (Sandbox Code Playgroud)