SaltStack-如何在版本未更改的情况下重新安装软件包

埃尔玛·韦伯(Elmar Weber)

我们正在使用Salt Stack将我们的应用程序部署为Debian软件包。该应用程序本身是Scala,并使用Java样式版本控制,例如,在开发过程中,版本号保持在1.5.0-SNAPSHOT。但是,程序包本身总是更新的。

问题在于,只有在对该版本进行更新时,才能重新安装Salt堆栈。但对我们来说,版本保持不变,但内容有所变化。

到目前为止,我们一直在通过始终先删除软件包来帮助自己

my-app-removed:   pkg.removed:
  - name: my-app

my-app:   pkg.installed:
  - sources:
    - my-app: salt://my-app-1-5-0-SNAPSHOT.deb

但这总是会重新安装,因此state.highstate总是会触发更改。还有另一种方法,只要且仅当内容更改时,才能在debian上使dpkg / pkg也升级相同的版本号?

我们还检查了pkg状态的verify标志(如果更改了任何文件,基本上也会安装),但这没有用,文档还说目前只有yum支持它。

约翰·海森(John Hazen)

onchanges仅当从属状态发生更改时前提条件才使状态运行。因此,我将保留.deb文件的本地缓存,并检测它何时更改,并且仅在文件更改时才删除pkg。(您还可以从本地缓存的文件中进行安装。)

snapshot-deb-file:
  file.managed:
    - name: /var/cache/my-app-1-5-0-SNAPSHOT.deb
    - source: salt://my-app-1-5-0-SNAPSHOT.deb

my-app-removed:
  pkg.removed:
    - name: my-app
    - onchanges:
      - file: snapshot-deb-file

my-app:   
  pkg.installed:
    - sources:
      - my-app: /var/cache/my-app-1-5-0-SNAPSHOT.deb

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不重新安装软件包的情况下删除软件包的配置文件

如何为CentOS 7安装最新的SaltStack软件包

没有master的情况下如何使用saltstack模块?

Bundler安装因Saltstack gem状态失败

如何强制Yarn重新安装软件包?

如何重新安装默认软件包

即使存在,如何重新安装软件包

如何在Ubuntu-16.04中重新安装默认软件和软件包?

OPAM:如何在本地重新安装软件包而不重新下载?

如何在 Alpine Linux 中重新安装所有已安装的软件包?

SaltStack:如何将文件从小兵复制到SaltStack文件服务器

如何在不安装的情况下查看软件包版本?

为什么在不格式化原始主目录的情况下重新安装时出现损坏的软件包?

文件已损坏,如何在Debian上重新安装软件包?

Chocolatey:如何在重新安装卸载的软件包之前

如何在不重新启动的情况下强行重新安装设备?

SaltStack pkg.installed命令为什么不能识别CentOS 6.6上已安装的软件包

如何在不重新安装的情况下扩大Ubuntu安装的大小?

如何在没有安装光盘的情况下清理重新安装Win 7

Vagrant(Saltstack)如何使用Salt状态安装package.json?

如何在没有软件包控制的情况下安装sublime软件包?

如何在Saltstack中使用自动完成功能

更新Julia版本而不重新安装先前版本的软件包

如何修复或重新安装更新安装导致的损坏软件包?

如何在不重新安装docker的情况下启用docker即服务?

如何在不重新安装Ubuntu的情况下备份/还原GRUB?

如何在不重新安装.xcodeproj的情况下延长配置文件的日期

如何在没有Internet连接的情况下重新安装Network Manager?

如何在不重新安装的情况下修复Wamp服务器?