OpenTofu 是什么?

OpenTofu 是一个开源的基础设施即代码(IaC)框架,被提出作为 Terraform 的替代方案,并由 Linux 基金会管理。OpenTofu 的问世为应对 HashiCorp 将 Terraform 的许可证从 Mozilla Public License v2.0(MPLv2)更改为 Business Source License v1.1 而开发的。OpenTofu 的目标是提供可靠且公正的基础设施即代码管理选项,确保其在稳定的许可证下保持真正的开源。

在 Linux 基金会的指导下,OpenTofu 可以无缝地替代 Terraform v1.6.x,同时确保与 Terraform v1.5.x 及其之前的版本完全向后兼容。

自 OpenTofu 创建以来,该项目引起了极大的关注。截至本文撰写时,OpenTofu 项目在 GitHub 上拥有超过16,800个星标,而 OpenTofu Manifesto 项目则有超过36,200个星标。

在 Walrus 中集成 OpenTofu

默认情况下,Walrus 使用 Terraform 作为其部署引擎。由于 OpenTofu 是 Terraform 的直接代替,您可以在 Walrus 系统中无需任何代码更改地轻松设置 OpenTofu。

按照快速入门指南(https://seal-io.github.io/docs/zh/quickstart) 部署 Walrus 服务器,并在 Kubernetes 集群中设置容器服务。

首先,检查服务的部署日志。

可以看到这里使用 Terraform 执行部署。

接下来,通过以下步骤切换到 OpenTofu:

  • 在左侧导航菜单中点击 系统设置
  • 点击 部署管理
  • 点击 基础设置 旁边的 编辑 按钮。
  • 将运行 镜像 更改为 sealio/opentoufu-deployer:v1.6.0-beta5-1
  • 点击 保存

接下来,Walrus 将使用 OpenTofu 作为部署引擎。让我们通过以下步骤创建另一个服务:

  • 在左侧导航菜单中点击 应用管理
  • 点击进入 dev 环境详细页面。
  • 点击 新建 并选择 服务
  • 输入名称为 myapp-tofu
  • 选择容器服务模板。
  • Image 字段中填入 nginx
  • 点击保存并部署。

部署完成后,让我们再次查看部署日志。

日志中显示了 OpenTofu 的版本和调用信息,说明这一次 Walrus 使用了 OpenTofu 执行部署。细心的读者会发现在 CLI 参数中还有 terraform 的字样,这是因为在该镜像中,我们给 tofu 设置了 terraform 的别名。

未来展望

通过上述教程,我们可以体验到 Walrus 的灵活性,此外它还可以集成到任意 CI/CD 流水线中,帮助您简化应用部署和应用交付。

在 HashiCorp 宣布修改 Terraform 的开源许可证之后,OpenTofu 一直被业界视为 Terraform 的最佳开源替代项目。OpenTofu 在其官方博客(https://opentofu.org/blog/opentofu-release-candidate-is-out) 中宣布将于本月发布首个稳定版本。

对于用户来说,从 Terraform 切换到 OpenTofu 自然不是为了一时新鲜,而是期望借助一个稳定的开源项目实现 IaC。我们会持续关注 OpenTofu 的项目进展,期待借助 OpenTofu 所带来的创新方案为用户解决当前面临的问题与挑战。

在 Walrus 上轻松集成 OpenTofu的更多相关文章

  1. React Native 轻松集成分享功能(iOS 篇)

    产品一直催我在 RN 项目中添加分享功能,一直没找到合适的库,今天让我看到了一个插件分享给大家. 在集成插件之前,需要在各大开放平台上成功注册应用,并通过审核(支持 3 个可选的主流平台).支持的平台 ...

  2. React Native 轻松集成统计功能(Android 篇)

    关于推送的集成请参考这篇文章,本篇文章将引导你集成统计功能,只需要简单的三个步骤就可以集成统计功能. 第一步 安装 在你的项目路径下执行命令: npm install janalytics-react ...

  3. React Native 轻松集成分享功能(Android 篇)

    关于推送的集成请参考这篇文章,关于统计的集成请参考这篇文章,本篇文章将引导你集成分享功能. 在集成插件之前,需要在各大开放平台上成功注册应用,并通过审核(支持 3 个可选的主流平台).支持的平台如下: ...

  4. 程序员必备的编程助手!SmartCoder助你轻松集成HMS Core

    当开发者在集成HMS Core遇到一些疑问时,需要翻阅官网文档,反复查看集成说明或者API调用说明,或者研究GitHub上的开源示例代码,花费较多的时间,在IDE环境和网页浏览器之间反复切换也会耗费很 ...

  5. 在KCloud上轻松“玩转”Docker

    继CoreOS和Atomic镜像上线之后,刻通云紧跟Docker技术发展脚步,近期又推出了Ubuntu Core镜像,成为国内首家支持Ubuntu Core镜像的基础云服务商,同时也是国内唯一一家同时 ...

  6. React Native 轻松集成统计功能(iOS 篇)

    最近产品让我加上数据统计功能,刚好极光官方支持数据统计 支持了 React Native 版本 第一步 安装: 在你的项目路径下执行命令: npm install janalytics-react-n ...

  7. Linux平台上轻松安装与配置Domino

    Linux平台上轻松安装与配置Domino Domino Server的编译安装过程中需要用到libstdc++-2.9和glibc-2.1.1(或者其更高的版本)两个编译模块,它们是Linux开发编 ...

  8. 读懂 PetaLinux:让 Linux 在 Zynq 上轻松起“跑”(转)

    对于Zynq这样一个“ARM+可编程逻辑”异构处理系统我们已经不陌生,其创新性大家也有目共睹.不过想要让更多的应用享受到这一“创新”带来的红利,让其真正“落地”则需要大量系统性的工作,去营造一个完善的 ...

  9. 从Github上轻松安装R包—githubinstall包--转载

    1.综述 越来越多的R包正在由世界上不同的人所创建,其中一部分原因是devtools包使得开发R包1变得更加简单.devtools包不仅让开发R包变得简单,而且用于分发R包. 当开发者发布一个R包的时 ...

  10. 微软Azure配置中心 App Configuration (一):轻松集成到Asp.Net Core

    写在前面 在日常开发中,我这边比较熟悉的配置中心有,携程Apollo,阿里Nacos(配置中心,服务治理一体) 之前文章: Asp.Net Core与携程阿波罗(Apollo)的第一次亲密接触 总体来 ...

随机推荐

  1. 深入解析枚举(Enum):在程序设计中的应用与优势

    深入解析枚举(Enum):在程序设计中的应用与优势 引言 在程序设计中,我们经常需要用到一组具名的常量,这些常量表示一些有限的离散状态或取值范围.例如,表示方向(上.下.左.右).星期几.性别等.为了 ...

  2. PostgreSQL学习笔记-5.基础知识:触发器、索引

    PostgreSQL 触发器是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用. 下面是关于 PostgreSQL 触发器几个比较重要的点: PostgreSQL 触发器可以在BEFORE ...

  3. How to Install Python on Linux

    Summary Hostmonster uses the preinstalled version of Python that ships with CentOS. Because of this ...

  4. 漏洞扫描与安全加固之Apache Axis组件

    一.Apache Axis组件高危漏洞自查及整改 Apache Axis组件存在由配置不当导致的远程代码执行风险. 1. 影响版本 Axis1 和Axis2各版本均受影响 2. 处置建议 1)禁用此服 ...

  5. 使用 OpenTelemetry 构建 .NET 应用可观测性(4):ASP.NET Core 应用中集成 OTel

    目录 前言 使用 elastic 构建可观测性平台 在 ASP.NET Core 应用中集成 OTel SDK 安装依赖 基础配置 Instrumentation 配置 创建自定义 Span 和 Me ...

  6. go 流程控制之switch 语句介绍

    go 流程控制之switch 语句介绍 目录 go 流程控制之switch 语句介绍 一.switch语句介绍 1.1 认识 switch 语句 1.2 基本语法 二.Go语言switch语句中cas ...

  7. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列表展示和选择处理

    我们在WPF应用端的界面中,使用lepoco/wpfui 来做主要的入口框架,这个项目它的菜单内置了不少图标,我们需要在动态菜单的配置中,使用它作为图标的展示处理,本篇随笔介绍如何基于图标枚举集合进行 ...

  8. 安装vscode

    1.下载vscode安装包 因为vscode官网下载太慢, 所以从360的软件库下载: https://baoku.360.cn/soft/search?kw=vscode 2.直接点击安装 3.设置 ...

  9. 为何 DevOps 会给开发人员带来压力和倦怠?

    企业正在享受 DevOps 实施带来的好处,但这也是有代价的.开发人员需要承担额外的责任,可能会导致他们感到疲惫不堪.因此我们可以采取一些方法来确保 DevOps 工程师的满意度. DevOps 的支 ...

  10. 原来 Lambda 这么简单

    目录 前身 -- 匿名类 lambda 表达式 方法引用 类名::静态方法 类名::实例方法 对象::实例方法 总结 前身 -- 匿名类 何为匿名类? 没有类名,直接通过new关键字创建这个类的实例 ...