Ansible在操作系统版本与Ansible管理的某些软件之间存在冲突时会怎么处理

87次阅读
没有评论

问题描述

在使用Ansible时,有一个疑问是,如果操作系统版本与Ansible管理的某些软件之间存在冲突,Ansible会如何处理这种情况?用户担心在未来的几年中,操作系统版本可能会变得过时,而Ansible会不断升级管理的软件,这种情况下,Ansible会如何处理冲突?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

Ansible本质上是一种编程语言,它是用Python编写的元编程语言,主要编译成Python和Shell脚本。它会按照你编写的规则执行操作。因此,如何处理冲突取决于你的角色和playbook的编写方式。几乎任何事情都可以通过Ansible来实现,只要你付出足够的努力。你的安装角色可以跟踪软件包版本或范围的依赖关系,当然,这些依赖关系可能需要在未来的几年中进行更新,但只要你付出努力,你就可以确保安全。
然而,计划超过LTS发行版的生命周期可能是不合理的,因为你将无法获得新的安全更新,这将立即使系统无法用于生产环境。

方案2

如果你尝试使用Ansible安装不受支持的软件版本,它将与你自己手动安装的情况完全相同。Ansible只是自动化你的操作,它不会添加特殊的软件包或版本。
注释:
1. 除了使用apt模块和state=latest以及来自Ansible Galaxy的角色之外,对吗?
2. 你认为apt模块做的事情,apt-get upgrade命令不会做吗?
3. @JohnDoea 不,这仍然只是运行你自己运行的命令的自动化。aptstate=latest将运行适当的apt命令来安装或更新指定的软件包-从你配置的仓库中。它不会在互联网上搜索软件包的最新tarball并下载、编译和安装它(除非你编写了相应的任务)。
4. @chicks 我现在知道如果给出state=latest是没有区别的。

以上是关于Ansible在操作系统版本与Ansible管理的软件之间存在冲突时的解决方案。根据你的角色和playbook的编写方式,你可以通过跟踪软件包版本或范围的依赖关系来解决这个问题。然而,计划超过LTS发行版的生命周期可能是不合理的,因为你将无法获得新的安全更新。请根据实际情况进行决策。

正文完