![Snappy 应用程序和 Charms(和点击)之间有什么区别](https://linux22.com/image/868216/Snappy%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%20Charms%EF%BC%88%E5%92%8C%E7%82%B9%E5%87%BB%EF%BC%89%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB.png)
我听说用于包装和安装Ubuntu 上的沙盒中的应用程序是点击桌面下一步和手机/平板电脑上的包。
如果我理解得没错,活泼ubuntu 核心应用程序的打包方式与点击应用程序相同(均使用 apparmor),它可能被标记为“snappy”,以确保它们针对的是服务器,而不是客户端设备。
我也知道有一些魅力在 Ubuntu 服务器的 Juju 工具上在服务器上安装应用程序。
那些点击/快速应用程序与 Charm 相同吗?
如果我说 charms 就像可以安装 .deb 或 snappy 应用程序的容器,同时还可以添加一些元数据以允许 Juju 工具知道(例如)如何配置应用程序,或者如何将应用程序连接在一起,这样人类就可以更轻松地配置充满技术服务器应用程序的环境,那么我是对的;而且这些 charm 只是为了在 Juju 上工作,可以大规模部署,而不一定只在 1 台设备上?
答案1
Charms 不是包,Charms 是跨多台机器部署服务的代码和元数据;因此它们消耗debian 软件包。人们将 charms 比作“云软件包”或“用于云的 apt-get”,但它不是一个打包系统,而是一个代码集合。
典型的 charm install 钩子可能包含apt-get
从存储库安装软件的命令,或者它们可能抓取 tarball,甚至可能包含二进制文件本身。charm 如何安装软件实际上取决于 charm 的作者。
我希望随着 snappy 越来越流行,许多 charms 会选择使用 snappy 软件包进行安装,或者至少将其作为一种选项提供。需要注意的是,目前您无法将 charm 部署到 snappy 系统,但没有理由说这不会成为未来人们的一种选择。
答案2
Charm 更类似于 Puppet Module 或 Chief Recipe。Charms、Module 和 Recipes 是编排机制,与包管理不同。编排涉及已安装资源的安装和管理。编排软件可以动态配置为用户定制的已安装软件。它还可以随时间管理该配置。以 Web 证书为例。证书会在一段时间后过期。编排软件可以安装证书。当需要更换证书时,编排软件可以管理更新(自动)。
我个人认为 Puppet 是最好的编排软件。它是最古老的,拥有最多的支持,是免费源代码,拥有一个伟大的社区,拥有大量的文档,拥有自己的编程语言,并且正在积极开发和发展。最新版本的 puppet 已经定义了类型!
我知道可以编写 puppet 代码来创建 charm,但这样就失去了运行 puppet 系统的其他好处。使用 puppet 时,最好利用 puppet 服务器来管理软件和系统的整个生命周期。
我对 charms 不是很熟悉,但我认为它们不像 Puppet 那样管理系统资源。重要的是变更管理。也就是说,puppet 确保它所知道的资源处于正确的状态。这意味着,如果管理员通过 ssh 进入框并手动更改配置文件(也许他正在调试),puppet 会将更改恢复为 puppet 代码中指定的更改。我认为 charms 没有这种能力。如果我错了,请纠正我。