小编Sha*_*ark的帖子

检查列表是否包含Ansible中的项目

我正在尝试检查提供的版本是否是有效的受支持版本.我已经在变量中设置了可接受版本的列表,如果提供的版本不在列表中,我想要失败.但是,我不确定如何做到这一点.

#/role/vars/main.yml
---
  acceptable_versions: [2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

#/role/tasks/main.yml
---
  - fail: 
      msg: "unsupported version"
      with_items: "{{acceptable_versions}}"
      when: "{{item}} != {{version}}"

  - name: continue with rest of tasks...
Run Code Online (Sandbox Code Playgroud)

以上是我想要做的事情,但是我无法弄清楚是否有一种单行方式来构建对故障模块的"list contains"调用.

yaml ansible

33
推荐指数
2
解决办法
7万
查看次数

为Ansible playbook中的任务集设置remote_user,而不是按任务重复

我正在创建一个首先创建新用户名的剧本.然后我想运行"moretasks.yml"作为我刚刚创建的新用户.目前,我正在为每项任务设置remote_user.有没有办法可以为整套任务设置一次?我似乎无法找到这方面的例子,也没有试图将remote_user转移到帮助之外.

以下是main.yml:

---
- name: Configure Instance(s)
  hosts: all
  remote_user: root
  gather_facts: true

  tags:
    - config
    - configure

  tasks:
    - include: createuser.yml new_user=username
    - include: moretasks.yml new_user=username
    - include: roottasks.yml #some tasks unrelated to username.
Run Code Online (Sandbox Code Playgroud)

moretasks.yml:

---
  - name: Task1
    copy: 
      src: /vagrant/FILE
      dest: ~/FILE
    remote_user: "{{newuser}}"

  - name: Task2
    copy: 
      src: /vagrant/FILE
      dest: ~/FILE
    remote_user: "{{newuser}}"
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook

11
推荐指数
2
解决办法
2万
查看次数

启动Zookeeper群集。错误:找不到或加载主类org.apache.zookeeper.server.quorum.QuorumPeerMain

(我在CentOS 5.8上运行)。我一直在遵循群集(多服务器)Zookeeper设置的指导,但是在尝试启动服务器时遇到错误。当我按照文档中的描述运行命令时:

java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar:conf \ org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo.cfg 
Run Code Online (Sandbox Code Playgroud)

我得到错误:

Error: Could not find or load main class  org.apache.zookeeper.server.quorum.QuorumPeerMain
Run Code Online (Sandbox Code Playgroud)

我有这样的文件位置,并且正在〜/ zookeeper-3.4.6目录中运行:

~/zookeeper-3.4.6/zookeeper-3.4.6.jar 
~/zookeeper-3.4.6/conf/zoo.cfg
~/zookeeper-3.4.6/data/myid
~/zookeeper-3.4.6/lib/log4j-1.2.16.jar
~/zookeeper-3.4.6/bin/zkServer.sh
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生此错误?我不太了解要传递的参数,因此很难调试路径问题。附带说明一下,我尝试运行./zookeeper-3.4.6/bin/zkServer.sh start,但确实能成功运行,但是文档似乎表明该命令适用于单节点实例。

编辑

我可以通过修改命令并取出零件来取得一些进展:conf \,所以现在我正在运行:

java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar: org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo.cfg
Run Code Online (Sandbox Code Playgroud)

我收到一个新错误,但这是进度。

java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar:conf \ org.apache.zookeeper.server.quorum.QuorumPeerMain conf/zoo.cfg 
Run Code Online (Sandbox Code Playgroud)

对应于QuorumPeerMain的第63和64行

public class QuorumPeerMain {
    private static final Logger LOG = LoggerFactory.getLogger(QuorumPeerMain.class);
Run Code Online (Sandbox Code Playgroud)

apache cluster-computing apache-zookeeper

8
推荐指数
5
解决办法
2万
查看次数

从命名范围的Name对象中获取工作表名称

我有:

Microsoft.Office.Interop.Excel.Workbook wb;
Microsoft.Office.Interop.Excel.Name name;
Run Code Online (Sandbox Code Playgroud)

有没有办法获得指定范围在给定工作簿中的工作表名称,假设我已经获得了命名范围的Name对象和wb?

excel named-ranges

7
推荐指数
2
解决办法
2万
查看次数

当名称重复时,在Excel工作簿中按字符串获取命名范围

详细说来,假设我的工作簿中有两个命名范围.两个命名范围都具有相同的名称(比如说"myName"),但是一个范围限定为Sheet1,另一个范围限定为工作簿.

给定命名范围的名称(字符串),我想获取工作簿级别命名范围.

如果我使用本机调用:wb.Names.Item("myName"),则返回工作表作用域命名范围.

如果我改为:wb.Names.Item("Sheet1!myName"),那显然会返回工作表范围的名称范围.我发现我可以使用它来指定特定于工作表的工作表,但不能指定工作簿.

无论如何我可以指定我想要工作簿作用域吗?

我的解决方法是迭代所有Name的列表,并比较.Name属性以获取工作簿范围命名范围.这是有效的,因为.Name属性附加了"Sheet1!" 到工作表范围命名范围.然而,这是非常昂贵的,我想避免它.

c# excel named-ranges

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

反向代理Elasticsearch传输端口

在我的环境中,elasticsearch位于只打开标准端口(80,443等)的服务器上.所有其他港口都有防火墙.我目前在端口80上有一个反向代理,它将所有elasticsearch HTTP请求重新路由到elasticsearch的http端口.

我还想将TCP请求重新路由到elasticsearch的传输端口,以便我的本地客户端可以直接将elasticsearch作为客户端节点进行查询.Nginx 1.9.0最近允许TCP负载平衡,这是我想要用于此,但我在使我的系统工作时遇到一些麻烦.这是我的nginx.conf文件(删除HTTP上下文以隔离问题):

worker_processes  1;

events {
    worker_connections  1024;
}

stream {
  server {
    listen      80;
    proxy_pass  127.0.0.1:9300;
  }
}
Run Code Online (Sandbox Code Playgroud)

我的客户端节点设置为与mydomain.com:80通信,因此理想情况下应将所有流量路由到内部传输端口.但是,我得到以下例外情况:org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available

我需要在客户端节点或tcp代理上配置其他东西吗?

编辑1:

一些额外的信息.我将Elasticsearch的传输端口从9300更改为8030,这是一个打开的端口.当我相应地将我的nginx.conf更改为proxypass到127.0.0.1:8030我的本地客户端节点开始工作时,并得到了对我的查询的适当响应.

所以问题似乎是如果我是代理传递给已经打开的端口,它可以工作,但如果端口关闭(9300),代理传递失败.有谁知道为什么会这样,以及如何解决它?如果可能的话,我宁愿坚持使用9300端口.

tcp reverse-proxy nginx elasticsearch

7
推荐指数
0
解决办法
1354
查看次数

使用多个字段作为唯一键的重复数据删除 elasticsearch 结果

有人对此提出了类似的问题(请参阅从 Elasticsearch 中的搜索中删除重复的文档),但我还没有找到使用多个字段作为“唯一键”进行重复数据删除的方法。这是一个简单的例子来说明我正在寻找的一些东西:

假设这是我们的原始数据:

{ "name": "X", "event": "A", "time": 1 }
{ "name": "X", "event": "B", "time": 2 }
{ "name": "X", "event": "B", "time": 3 }
{ "name": "Y", "event": "A", "time": 4 }
{ "name": "Y", "event": "C", "time": 5 }
Run Code Online (Sandbox Code Playgroud)

我基本上想根据名称和事件获得不同的事件计数。我想避免重复计算在同名 X 上发生的事件 B 两次,所以我要寻找的计数是:

event: A, count: 2
event: B, count: 1
event: C, count: 1
Run Code Online (Sandbox Code Playgroud)

有没有办法设置 agg 查询,如相关问题所示?我考虑过的另一个选项是使用特殊键字段(即“X_A”、“X_B”等)为对象建立索引。然后我可以简单地对这个字段进行重复数据删除。我不确定哪种方法是首选方法,但我个人不希望用额外的元数据索引数据。

duplicates elasticsearch

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

elasticsearch案例不敏感术语过滤器搜索not_analyzed字段

这里有类似的问题Elasticsearch Map对not_analyzed文件不敏感,但是我的处理方式略有不同,因为我处理的是特殊字符.

大多数人建议keyword analyzer结合使用lowercase filter.但是,这对我的情况不起作用,因为关键字分析器在空格上标记,特殊字符如^, #, etc.这打破了我想要的支持类型.

  1. ^HELLOWORLD应该匹配搜索^helloworld,但不是helloworld
  2. #FooBar应该匹配#foobar但不匹配foobar.
  3. Foo Bar应该匹配foo bar,但不是foobar.

与我们在此处看到的类似功能https://www.elastic.co/guide/en/elasticsearch/guide/current/_finding_exact_values.html#_term_filter_with_numbers,但不区分大小写.

有谁知道如何做到这一点?

编辑1:

似乎我的问题的核心是多字段,因为关键字+小写似乎解决了标题中提出的问题.但是,为多字段值属性提出此问题会更准确.

test_mapping.json:

{
  "properties" : {
    "productID1" : {
      "type" : "string",
      "index_analyzer" :  "keyword_lowercase",
      "search_analyzer" : "keyword_lowercase"
    },
    "productID2" : {
      "type": "multi_field",
      "keyword_edge_ID": {
        "type": "string", 
        "index_analyzer":"keyword_lowercase_edge", 
        "search_analyzer":"keyword_lowercase_edge"
      },
      "productID2": {
        "type": "string", 
        "index": "analyzed", 
        "store": …
Run Code Online (Sandbox Code Playgroud)

case-insensitive elasticsearch

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

“ MappingException:在实体类java.time.OffsetDateTime上找不到将构造函数参数绑定到的属性null!” 使用Spring MongoDB

尝试在java.time.OffsetDateTimeMongoDB中使用新对象。我正在使用org.springframework.data:spring-data-mongodb:1.8.2.RELEASE。它似乎可以正常写入数据库,但是当我尝试读取数据时,它将引发以下异常。如果我改为将对象更改为just LocalDateTime,则它能够成功读取/写入数据库。我是否需要做其他配置才能添加对OffsetDateTime对象的支持?

org.springframework.data.mapping.model.MappingException: No property null found on entity class java.time.OffsetDateTime to bind constructor parameter to!
    at org.springframework.data.mapping.model.PersistentEntityParameterValueProvider.getParameterValue(PersistentEntityParameterValueProvider.java:74) ~[spring-data-commons-1.11.2.RELEASE.jar!/:na]
    at org.springframework.data.mapping.model.SpELExpressionParameterValueProvider.getParameterValue(SpELExpressionParameterValueProvider.java:63) ~[spring-data-commons-1.11.2.RELEASE.jar!/:na]
    at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance(ReflectionEntityInstantiator.java:71) ~[spring-data-commons-1.11.2.RELEASE.jar!/:na]
    at org.springframework.data.convert.ClassGeneratingEntityInstantiator.createInstance(ClassGeneratingEntityInstantiator.java:83) ~[spring-data-commons-1.11.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:251) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:231) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1186) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access$200(MappingMongoConverter.java:78) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1134) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:870) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:283) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:271) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:309) ~[spring-data-commons-1.11.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:271) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
    at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:231) ~[spring-data-mongodb-1.8.2.RELEASE.jar!/:na]
Run Code Online (Sandbox Code Playgroud)

java spring mongodb java-time

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

按ID分组Mongo文档,并按时间戳获取最新文档

想象一下,我们在mongodb中存储了以下一组文档:

{ "fooId" : "1", "status" : "A", "timestamp" : ISODate("2016-01-01T00:00:00.000Z") "otherInfo" : "BAR", ... }
{ "fooId" : "1", "status" : "B", "timestamp" : ISODate("2016-01-02T00:00:00.000Z") "otherInfo" : "BAR", ... }
{ "fooId" : "1", "status" : "C", "timestamp" : ISODate("2016-01-03T00:00:00.000Z") "otherInfo" : "BAR", ... }
{ "fooId" : "2", "status" : "A", "timestamp" : ISODate("2016-01-01T00:00:00.000Z") "otherInfo" : "BAR", ... }
{ "fooId" : "2", "status" : "B", "timestamp" : ISODate("2016-01-02T00:00:00.000Z") "otherInfo" : "BAR", ... }
{ "fooId" : "3", …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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