首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >木偶中的序列

问木偶中的序列
EN

Stack Overflow用户
提问于 2014-01-10 14:04:53
回答 2查看 4.6K关注 0票数 2

我的傀儡清单中有一个exec序列:

  1. 第一个文件以二进制方式下载ZIP文件(除非已经安装了二进制文件)并将其保存到/tmp中。
  2. 第二个打开它。

当我第一次应用清单时,它正常工作。但是,当我清理我的/tmp并再次应用清单时,它会失败,因为第一个exec没有执行(这是正确的),但是第二个仍然尝试执行,但由于ZIP文件不存在,它仍然失败。

如果第一个清单没有下载文件,如何修改清单以跳过第二个exec?

代码语言:javascript
复制
exec { 'ngrok-download':
  command => 'wget https://dl.ngrok.com/linux_386/ngrok.zip -O /tmp/ngrok.zip',
  unless  => 'which ngrok',
  path    => ['/bin', '/usr/bin'],
}

exec { 'ngrok-unzip':
  command => 'unzip ngrok.zip',
  cwd     => '/tmp',
  path    => ['/usr/bin'],
  require => Exec['ngrok-download'],
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-11 04:48:28

试试这个:

代码语言:javascript
复制
exec { 'ngrok-download':
  command => 'wget https://dl.ngrok.com/linux_386/ngrok.zip -O /tmp/ngrok.zip',
  unless  => 'which ngrok',
  path    => ['/bin', '/usr/bin'],
  notify  => Exec['ngrok-unzip'],
}

exec { 'ngrok-unzip':
  command     => 'unzip ngrok.zip',
  cwd         => '/tmp',
  path        => ['/usr/bin'],
  refreshonly => true,
  require     => Exec['ngrok-download'],
}

这将导致解压缩执行只有在wget exec实际执行一些事情时才会运行--如果找到ngrok,它就不会运行。

通常情况下,我会把它弄到一个更固定的地方,然后把它留在那里。然后,用创建=> '/path/to/zip.file‘代替不使用ngrok检查的除非=>’。结果是只要文件还在那里,就不会有任何主管开火。

当您对zip文件进行版本化并想要更改版本时,会派上用场。

票数 5
EN

Stack Overflow用户

发布于 2016-02-02 09:17:19

您还可以尝试更简单的方法:

代码语言:javascript
复制
exec { 'ngrok-download':
  command => 'wget https://dl.ngrok.com/linux_386/ngrok.zip -O /tmp/ngrok.zip',
  unless  => 'which ngrok',
  path    => ['/bin', '/usr/bin'],
} ~>

exec { 'ngrok-unzip':
  command     => 'unzip ngrok.zip',
  cwd         => '/tmp',
  path        => ['/usr/bin'],
  refreshonly => true,
}

其中Exec‘’ngrok下载‘通知Exec’‘ngrok unzip’如果应用,Exec‘’ngrok解压缩‘只在需要时刷新其状态。

同样的事情也可以通过做以下事情来实现:

代码语言:javascript
复制
exec { 'ngrok-download':
  command => 'wget https://dl.ngrok.com/linux_386/ngrok.zip -O /tmp/ngrok.zip',
  unless  => 'which ngrok',
  path    => ['/bin', '/usr/bin'],
}

exec { 'ngrok-unzip':
  command     => 'unzip ngrok.zip',
  cwd         => '/tmp',
  path        => ['/usr/bin'],
  refreshonly => true,
}

Exec['ngrok-download'] ~> Exec['ngrok-unzip']

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21046339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档