小编Bra*_*o__的帖子

检查红宝石哈希值是否包含大于x的值

我有一个InfluxDB查询返回的以下对象,并且我希望能够检查任何导数是否等于或大于100,如果是,则进行处理。

我一直在尝试使用select来检查该字段,但是我实际上并不真正理解如何使用这样的数据结构。我将如何遍历返回的对象中的每个派生值?

在枚举文档中,我并没有真正看到与我的案例类似的示例。 https://ruby-doc.org/core-2.4.0/Enumerable.html

 [{
   "name" => "powerdns_value", 
             "tags" => nil,
             "values" => [
               { "time" => "2017-03-21T14:20:00Z", "derivative" => 1}, 
               { "time" => "2017-03-21T14:30:00Z", "derivative" => 900}, 
               { "time" => "2017-03-21T14:40:00Z", "derivative" => 0},  
               { "time" => "2017-03-21T15:20:00Z", "derivative" => 0}
             ]
}]
Run Code Online (Sandbox Code Playgroud)

ruby hash

2
推荐指数
1
解决办法
638
查看次数

Python从数组中删除匹配模式的元素

我有一个字典,其中包含字符串作为键和列表作为值。

我想删除包含字符串“food”、“staging”、“msatl”和“azeus”的所有列表元素。我已经有了下面的代码,但是我很难将 filterIP 中的逻辑应用到我拥有的其余字符串中。

    def filterIP(fullList):
       regexIP = re.compile(r'\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$')
       return filter(lambda i: not regexIP.search(i), fullList)

    groups = {key : [domain.replace('fake.com', 'env.fake.com')
      for domain in filterIP(list(set(items)))]
        for (key, items) in groups.iteritems() }

    for key, value in groups.iteritems():
      value.sort()

    meta = { "_meta" : { "hostvars" : hostvars } }
    groups.update(meta)

    print(self.json_format_dict(groups, pretty=True))
Run Code Online (Sandbox Code Playgroud)

电流输出示例

 "role_thumper": [
    "thumper-msatl1-prod-1.env.fake.com",
    "thumper-msatl1-prod-2.env.fake.com",
    "thumper-rwva1-prod-1.env.fake.com",
    "thumper-rwva1-prod-2.env.fake.com",
    "thumper-rwva1-prod-3.env.fake.com",
    "thumper-rwva1-prod-4.env.fake.com",
    "thumper-rwva1-prod-5.env.fake.com",
    "thumper-rwva1-prod-6.env.fake.com",
    "thumper-staging-1.env.fake.com"
  ],
  "role_thumper_mongo": [
    "thumper-mongo-staging-1.env.fake.com",
    "thumper-mongo-staging-2.env.fake.com",
    "thumpermongo-rwva1-staging-1.env.fake.com",
    "thumpermongo-rwva1-staging-2.env.fake.com"
  ],
  "role_thumper_mongo_arb": [
    "thumper-mongo-arb-staging-1.env.fake.com",
    "thumpermongo-arb-rwva1-staging-1.env.fake.com"
  ],
Run Code Online (Sandbox Code Playgroud)

python arrays

2
推荐指数
1
解决办法
7196
查看次数

Ansible 在主机上下文之间传递变量

正如标题所说,当我希望能够将在一个主机组下注册的变量传递到另一个主机组时,但我不知道该怎么做,并且在变量文档http:下找不到任何相关内容: //docs.ansible.com/ansible/playbooks_variables.html

这是我想要看到的简化示例。我有一个剧本,可以调用许多不同的组并检查符号链接指向的位置。我希望能够在播放结束时将所有符号链接目标报告给控制台。

问题是注册值仅在定义它的主机组下有效。是否有导出这些变量的正确方法?

---
- hosts: max_logger
  tasks:
    - shell: ls -la /home/ubuntu/apps/max-logger/active | awk -F':' '{print $NF}'
      register: max_logger_old_active

- hosts: max_data
  tasks:
    - shell: ls -la /home/ubuntu/apps/max-data/active | awk -F':' '{print $NF}'
      register: max_data_old_active

- hosts: "localhost"
  tasks:
  - debug: >
      msg="The old max_logger build is {{ max_logger_old_active.stdout }}
           The old max_data build is {{ max_data_old_active.stdout }}"
Run Code Online (Sandbox Code Playgroud)

deployment ansible

2
推荐指数
1
解决办法
3661
查看次数

将Ruby数组元素传递给方法

我不是程序员,但我发现自己写了一些简单的红宝石,并且不确定一些事情.

我有以下功能

def resolve_name(ns_name)
  ip = Resolv.getaddress(ns_name)
  return ip
end
Run Code Online (Sandbox Code Playgroud)

和数组

array = ['ns-1.me.com', 'ns-2.me.com']
Run Code Online (Sandbox Code Playgroud)

我想要做的是将数组中的每个元素传递给要评估的函数,并吐出......某事.可能是变量.一旦我有解析的IP,我将把它们传递给erb模板.当可能有1到4个可能的结果时,还不太确定如何处理.

我想要做的是我需要做的是将each.do和类型转换为字符串到我的函数中,但是我无法弄清楚如何实际做到这一点或正确地说出我的问题谷歌告诉我.

http://ruby-doc.org/core-2.0.0/doc/syntax/calling_methods_rdoc.html#label-Array+to+Arguments+Conversion并不完全符合我的要求.

irb(main):010:0> resolved = resolve_name(array)
TypeError: no implicit conversion of Array into String
Run Code Online (Sandbox Code Playgroud)

有什么建议?

ruby arrays chef-infra

1
推荐指数
1
解决办法
547
查看次数

如何使用IP地址模式填充数组

我不是程序员,但发现自己写了一些简单的Ruby.我需要用一个IP地址列表填充一个数组,10.13.203.3,10.13.204.3等.

我知道我可以将范围扩展为这样的数组,但是如何将其转换为我的IP地址模式?

a =* (3..10)
#=> [3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

我以为我需要进行字符串插值,并以某种方式将其反馈到不同的数组中.但我真的不确定,也绝不能正确使用谷歌搜索,因为这感觉像是一件普通的事情.

ruby arrays

1
推荐指数
1
解决办法
283
查看次数

使用 prometheus 查询外部 etcd

如文档所述,我已经使用以下抓取配置在 kubernetes 上运行了 prometheus。.pem 文件位于 prometheus 容器内磁盘上的位置。

https://prometheus.io/docs/prometheus/latest/configuration/configuration/#

scrape_configs:
- job_name: etcd
  static_configs:
  - targets: ['10.0.0.222:2379','10.0.0.221:2379','10.0.0.220:2379']
  tls_config:
  # CA certificate to validate API server certificate with.
    ca_file: /prometheus/ca.pem
    cert_file: /prometheus/cert.pem
    key_file: /prometheus/key.pem
Run Code Online (Sandbox Code Playgroud)

我将 etcd 视为普罗米修斯中的目标,但是它返回的垃圾。

https://i.imgur.com/rdRI4V7.png

我可以通过像这样传入客户端证书信息来访问执行本地卷曲的指标端点。

我究竟做错了什么?

sudo curl --cacert /etc/ssl/etcd/ssl/ca.pem https://127.0.0.1:2379/metrics -L --cert /etc/ssl/etcd/ssl/node-kubemaster-rwva1-prod-2.pem --key /etc/ssl/etcd/ssl/node-kubemaster-rwva1-prod-2-key.pem^C
Run Code Online (Sandbox Code Playgroud)

etcd kubernetes prometheus

1
推荐指数
1
解决办法
1111
查看次数

标签 统计

arrays ×3

ruby ×3

ansible ×1

chef-infra ×1

deployment ×1

etcd ×1

hash ×1

kubernetes ×1

prometheus ×1

python ×1