我正在和鲁德尔(http://www.rudder-project.org/site/)玩,但似乎看不到我想要什么的选择。
我希望“节点”上的所有包都检查更新,然后升级,相当于Debian框上的“apt-get更新&& apt-get升级”。
我看到了有关包管理的指令,但它们似乎都用于更新/安装单独命名的包,而不是更新每个节点上当前的所有包。
做我要做的事最好的方法是什么?
发布于 2017-05-09 07:52:38
我认为实现这一目标的最好方法是使用技术编辑器创建一种技术,并使用"/usr/bin/apt-get update && /usr/bin/apt-get -y“创建”命令执行结果“,其中0为成功,1为修复。
请注意,这将在每次运行时执行,这可能不是您想要的,但您可以使用条件只在夜间或在特定的日期范围内运行。
您还可以查看“作业计划程序”指令,或者使用“调度”方法创建一种技术,在该方法中可以定义要执行的内容,如cron作业.
发布于 2018-12-20 00:19:30
实际上,使用apt-get install -y并不会禁止所有提示。如果你(或鲁德尔代表你!)修改包的任何控制文件,apt-get将询问您是否希望保留您的配置文件,或者用包维护人员版本替换它。
许多人通过使用这样的方法来处理这个问题:
DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get dist-upgrade \ -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"
重要的是要注意,如果不进行调查,您就无法安全地完成这一任务。上面的调用回答“否”,这意味着您必须调查包将进行的更改,并确保舵将更改控制文件,以包括必要的更改。
例如,有时在包的控制文件中进行关键的安全修复(/etc/ImageMagick-6/policy.xml .xml就是一个例子)。如果您回答“否”或使用--force-confold,则包更新将不会保护您免受该漏洞的攻击,但是包版本将建议实现修补程序(毕竟,您正在使用该修补程序运行包版本)。
实现这一目标的唯一方法是安装在验收服务器上使用的所有包,比如在生产前一周对其进行更新,并收集和检查已经创建的所有.dpkg-new文件。是的,这是大量的工作,是的,不是很多公司这样做,但如果你自动化更新,你最好确保你没有纸上重要的配置变化。
我在玩弄如何用舵来帮助我做好这件事的想法,但还没有把铁锹插在地上.
https://serverfault.com/questions/848743
复制相似问题