【问题标题】:Conditionally add an extra parameter to an associative hash有条件地向关联哈希添加一个额外的参数
【发布时间】:2014-01-02 12:35:23
【问题描述】:

我想有条件地向关联哈希添加一个额外的参数。

现有代码如下所示:

:env => {
 "ANSIBLE_FORCE_COLOR" => "true",
 "ANSIBLE_HOST_KEY_CHECKING" => "#{config.host_key_checking}",
 # Ensure Ansible output isn't buffered so that we receive ouput
 # on a task-by-task basis.
 "PYTHONUNBUFFERED" => 1
},

如果config.ssh.forward_agenttrue,我想有条件地添加另一个变量"ANSIBLE_SSH_ARGS" => "-o ForwardAgent=yes"

我可以只是复制粘贴,然后创建一个 if/else 块,但 Ruby 肯定有更优雅的东西吗?

【问题讨论】:

  • 这里是 Python 程序员,请原谅我的 n00b 问题

标签: ruby vagrant provisioning


【解决方案1】:

我是这样解决的:

   env = {
        "ANSIBLE_FORCE_COLOR" => "true",
        "ANSIBLE_HOST_KEY_CHECKING" => "#{config.host_key_checking}",
        # Ensure Ansible output isn't buffered so that we receive ouput
        # on a task-by-task basis.
        "PYTHONUNBUFFERED" => 1
    }

    env["ANSIBLE_SSH_ARGS"] ="-o ForwardAgent=yes" if config.ssh.forward_agent

    command << {
      :env => env,
      :notify => [:stdout, :stderr],
      :workdir => @machine.env.root_path.to_s
    }

不确定这是惯用的 Ruby,但它对我有用。

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2011-12-01
    相关资源
    最近更新 更多