我是从 Microsoft Azure 的角度出发,希望从使用 VM 手动创建/部分脚本化的基础架构设置转变为使用 Azure DevOps 作为代码、基础架构和管道的单一存储库的完整 IaC。
在我当前的基础架构中,我们有很多 Windows Server VM,在配置后仍然需要额外的操作系统配置和应用程序安装。
我是否正确地认为,如果您仅配置 Azure 托管服务(如存储、容器、应用服务等),而不使用 VM 等 IAAS,IaC 才能真正“按预期工作”?当然,我仍然可以“编码”虚拟机本身,但这仍然使 VM 的配置未编码?那么 IaC 可以完全用于“传统”IAAS 场景吗?
答案1
IaC 适用于虚拟机和任何云基础设施。但您说的不是 IaC,而是配置即代码,这是下一层。您希望您的 IaC 工具将任务交给您的 CaC 工具,这可能很简单,只需运行带有自定义脚本扩展的 PowerShell 脚本,也可能是一个功能齐全的配置即代码工具,如 Puppet、Chef、Ansible 等。
答案2
将其视为一个分层过程 - 您可以使用 terraform 或其他工具来构建资产,然后使用 salt/chef/ansible/puppet 等工具进行配置管理。您可以构建并触发某些操作以根据需要应用配置。