加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何在命令行中捕获值并添加到配方?

发布时间:2020-12-17 02:44:53 所属栏目:百科 来源:网络整理
导读:我是Chef和 Ruby的新手 我需要在命令行上将两个变量传递给Chef,并在配方中提供这些变量. 我如何捕捉这些价值观并将其送到厨师手中? 我需要这样的东西: before_deploy command execute param1 param2deploy{ param1/param2} param1和param2从命令行在运行时
我是Chef和 Ruby的新手

我需要在命令行上将两个变量传递给Chef,并在配方中提供这些变量.

我如何捕捉这些价值观并将其送到厨师手中?

我需要这样的东西:

before_deploy command 
  execute param1 param2
deploy{ param1/param2}

param1和param2从命令行在运行时获取其值.

解决方法

通过运行配置机器时

chef-solo

要么

chef-client

您无法为这些命令提供任何参数,这些参数对于食谱是可见的. Chef配方仅适用于attributes.好东西(或不太好)是可以从许多不同的地方设置属性:角色,节点,环境和json文件.

与您的请求最接近的解决方法是

>在机器上创建一个json文件
>在运行厨师 – 客户或厨师独奏时传递它
>使用配方中的属性

例如:apache config.

创建json文件:my_attrs.json

{ 
  "apache": {
    "listen_port": "81","listen_path": "/myapp"
  }
}

然后在你的食谱中使用它们:

node[:apache][:listen_port]
node[:apache][:listen_path]

使用-j标志运行chef-client或chef-solo.

chef-solo -j my_attrs.json

如果my_attrs.json在某个远程服务器上,那么您可以提供一个URL.

chef-solo -j http://remote.host/path/my_attrs.json

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读