我购买了一个 VPS(ubuntu 20.04)来部署我的 Laravel 项目。
安装所有依赖项后:
- PHP(7.4)
- MySQL
- Java 8
- 作曲家
- npm
- ElasticSearch
- (...)
我的问题是:是否有可能创建类似于图像与以前的安装一起使用,以便下次安装其他 VPS 而无需重复相同的工作?
答案1
如果您愿意阅读一点,ansible 可以成为您的朋友。您可以构建一个简单的剧本来自动部署您的软件包,分发配置文件并更改系统设置。Cloud-init 也可以在这里派上用场,但是我没有使用该工具的经验。一个简单的 ansible 剧本只会部署您的软件包,如下所示(考虑到所有软件包都在默认存储库中可用):
- hosts: target_host
become: true
vars_files:
- /path/to/vars/file/if/needed
tasks:
- name: Install Dependencies
apt:
pkg:
- php=version
- mysql
- java-default
- composer
- npm
- elasticsearch
您还可以使用 clonezilla 或 Veeam 之类的程序进行系统备份(适用于 Linux 的免费 veeam 产品不需要重新启动,并允许您构建可启动媒体进行恢复),但此时您将不得不担心底层硬件是否与您现有的 VM 相匹配。
基本上,我不认为有一个简单的答案可以解决这个问题。也许还值得与您的托管提供商核实,看看他们是否具有克隆功能/图像创建功能(我知道这在 Azure 中很容易实现)。