我们在第三方主机上托管了很多网站。对于每个网站,我们也有相应的暂存网站 - 通常在同一主机提供商的另一台服务器上。我开始使用 Digital Ocean 进行暂存网站只是因为它们设置起来更快,最重要的是我们获得了 root 访问权限。有时,当我们从暂存推送到实时时,它会破坏某些方面,因为服务器环境不一样 - 例如运行不同版本的 Php。是否有一个命令可以在托管服务器上运行以获取系统变量、包和配置的完整列表?然后我就可以在 Digital Ocean 上“构建”一个精确的副本。
答案1
您可以使用 Ansible、CFEngine3、puppet 等配置工具来创建“脚本”,确定服务器应是什么样子,然后使用它来设置生产和阶段。相同的脚本将产生相同的服务器(如果您编写正确的话),而且当发生不良情况时,您有灾难恢复计划来修复您的服务器。
答案2
在 bash 中,没有一个通用的命令来获取软件包信息,因为 centOS 和 Ubuntu 使用 2 个非常不同的软件包管理器,而 BSD 则完全不同。现在您可以查看发行版表单等,并找到可以告诉您所有已安装软件包的命令,但其中很多都是辅助软件包,它们将与其他软件包一起安装。如果您知道您可以熟练地操作服务器并最终使其“工作”,这将有所帮助。所以这就是我要做的
首先,您需要选择并学习配置管理工具。我使用 Ansible,因为我是一名系统管理员,即使在桌面上也喜欢 Linux。Ansible 基于 Python 并依赖 ssh,这使其适合我的开发和 DevOps 工作流程。我是公司中的独立开发人员,并且我运营自己的基础设施。其他一些工具包括 Chef、Puppet、Salt 和 Fabric,但这不是一份详尽的清单,只是我能想到的那些。
接下来,投入时间构建一个可复制的系统。大多数配置管理工具可以绑定到许多服务和其他模块,这在处理多个主机和提供商时可能是一件好事。构建此系统将标准化您的整个堆栈,无论它托管在哪里,这将消除暂存和生产之间的差异。即不再需要“安装了哪个版本的 PHP”,或者“这个盒子是否锁定”。
这些配置管理工具还可以集成到您的公司聊天工具中。这意味着您可以从聊天室进行部署,而不必触及任何命令行。这个想法被称为“ChatOps”,可能会引起您的兴趣。
利润???
TLDR;没有人回答
- 选择工具
- 学习和部署工具
- 延长
- 利润???