我有几个配置相同的云托管服务器。我希望它们共享一个 httpd.conf 文件,我可以在一个地方编辑该文件。有没有办法设置 apache 以使用远程映射文件?或者其他可以提供相同功能的服务?
答案1
实现此目的的一种方法是使用共享文件系统。您可以使用 sshfs 使远程文件或目录在本地可供您使用
您需要在其中一台机器上安装 sshfs 并使用以下命令
命令:-
sudo mkdir /etc/apache2/remote_conf_directory
sudo sshfs -o allow_other,defer_permissions root@remoteIP:/etc/apache2/ /etc/apache2/remote_conf_directory
现在配置将可供您使用,现在可以替换本地计算机 apache 配置中的配置目录路径或覆盖它
我希望你能从中得到一个想法
答案2
事实上,你是从不同的、甚至可能是错误的角度来看待问题的。
让我们重新定义它。
1)我们希望维护一个配置文件,供分散在云中的多个 apache 实例使用。
2)所有实例都应检测配置文件的变化并自动重新启动。
现在这正是 ansible 或任何其他配置管理工具所设计的要求。您可以为 ansible 编写一个剧本,它将
1)在本地检查配置文件的 md5 值,在远程检查配置文件的 md5 值
2)若本地文件内容发生改变,则将文件推送至所有主机。
3)重新启动云端的httpd服务。
4)如果无法连接到任何云实例,则通知/记录失败。
最后,将这一切放入 cron 中,您就再也不用担心配置管理了。只需更新主机清单,ansible 会处理其余的事情。