我正在尝试使用以下方式自动部署我公司的基础设施蓝绿部署我认为 ansible 非常适合这个项目。
其中一个网站是 WordPress 安装,其中包含约 100GB 的图片。目前,数据库与其自己的服务器中的 nginx+php 配置是分开的。
我的疑虑在于:
1-我应该让 ansible 创建那个特定的网站还是一般的 WordPress?(已经有很多自定义代码了)
2-当在蓝色和绿色之间切换时,保持媒体文件夹(上传)同步的最佳方法是什么?
答案1
根据您的评论 - 当然它总是有意义的。
Ansible 不仅可以“克隆”环境,还非常适合用于灾难恢复场景。此外,如果您自动执行对环境的任何更改,您可以更轻松地查看所做的任何手动更改。
- 当您使用 Ansible 时,您的安装会“更好”地记录下来,因为某些文件中的配置更改不会丢失 - 它是任务的一部分 - 您可以避免完全访问您的生产主机(我看到有人拒绝 Ansible 以外的任何 SSH 访问)。任何手动更改都会出现,因为它将在下一次 Ansible 运行中恢复。
- 即使一开始需要一些时间,但一段时间后升级和更新就会变得容易得多
- 因为您可以在测试环境上运行剧本,然后在生产环境等上运行剧本。
- 如果您认为您需要另外 20 台服务器 - 那么您只需要在库存中增加 20 条新线路,并在剧本运行的下一个小时内喝一杯咖啡。
关于具体问题
一个非常好的选择是考虑灾难恢复。在这种情况下,您有一个“空”操作系统在运行,并且您的 ansible 构建了您的完整环境。如果您能做到这一点 - 您就是公司的英雄。而每一步都是一步。我会这样做(而且我已经这样做了)。因此,安装、配置操作系统是一步(这一定不是第一步),安装、配置 Wordpress、ReverseProxy(如果是的话)、DB 等是另一步。制定一个计划:您经常做什么可以自动化 - 自动化它,您就有更多的时间。如果你认为它不能自动化,你为什么这么认为。
这是一个需要您自己回答的问题。使用 rsync 是一种选择。使用网络共享是另一种选择。Ansible
syncronize
中有一个模块(使用 rsync)。https://docs.ansible.com/ansible/latest/modules/synchronize_module.html