我有一个Ruby数组server_names,用于存储主机名.如果我打印出来,它看起来像这样:
["hostname.abc.com", "hostname2.abc.com", "hostname3.abc.com"]
Run Code Online (Sandbox Code Playgroud)
很标准.我要做的是获取这些服务器的IP(可能将它们存储在另一个变量中).
看起来IPSocket类可能会这样做,但我不确定如何使用IPSocket类迭代它.如果它只是尝试打印出如下的IP:
server_names.each do |name|
IPSocket::getaddress(name)
p name
end
Run Code Online (Sandbox Code Playgroud)
它抱怨我没有提供服务器名称.这是语法问题还是我没有正确使用该类?
输出:
getaddrinfo: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 CloudFormation 为安全组内的 EC2 实例打开多个端口。但是,我找不到执行此操作的正确语法(打开多个端口)的文档。会像下面这样工作吗?
"InstanceSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Web Security Group",
"SecurityGroupIngress" : [ {
"IpProtocol" : "tcp",
"FromPort" : "22",
"ToPort" : "22",
"FromPort" : "80",
"ToPort" : "80",
"CidrIp" : "0.0.0.0/0"
} ]
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我是ruby和Chef的新手,在我的cookbook中定义属性时遇到了语法问题.以下是相关代码:
default[:my_cookbook][:stuff] = {
:foo_bar => {
:grok => ['Hi'],
:2grok => ['Bye'],
...
Run Code Online (Sandbox Code Playgroud)
看来我不能使用数字来开始2grok ..有没有办法逃避这个,或者使用'2grok'的正确语法是什么?
我是Ruby的新手,我正在尝试理解我遇到的map方法的一个例子:
{:a => "foo", :b => "bar"}.map{|a, b| "#{a}=#{b}"}.join('&')
Run Code Online (Sandbox Code Playgroud)
返回:
=> "a=foo&b=bar"
Run Code Online (Sandbox Code Playgroud)
我不明白怎么回事
b=bar
Run Code Online (Sandbox Code Playgroud)
退回.字符串插值让我感到困惑,因为它似乎会返回如下内容:
=> "a=foo&bbar"
Run Code Online (Sandbox Code Playgroud)