Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch ansible弹性搜索安装版本不匹配故障_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Ansible - Fatal编程技术网 elasticsearch ansible弹性搜索安装版本不匹配故障,elasticsearch,ansible,elasticsearch,Ansible" /> elasticsearch ansible弹性搜索安装版本不匹配故障,elasticsearch,ansible,elasticsearch,Ansible" />

elasticsearch ansible弹性搜索安装版本不匹配故障

elasticsearch ansible弹性搜索安装版本不匹配故障,elasticsearch,ansible,elasticsearch,Ansible,我们正在尝试安装elastic search,ansible任务失败,因为版本不匹配 我们使用的变量是: es_major_version: "5.x" es_version: "5.5.1" 这是我们的任务 name: RedHat - Install Elasticsearch yum: name=elasticsearch{% if es_version is defined and es_version != "" %}-{{ es_version }}{% endif %} s

我们正在尝试安装elastic search,ansible任务失败,因为版本不匹配

我们使用的变量是:

es_major_version: "5.x"
es_version: "5.5.1"
这是我们的任务

name: RedHat - Install Elasticsearch
  yum: name=elasticsearch{% if es_version is defined and es_version != ""  %}-{{ es_version }}{% endif %} state=present update_cache=yes
  when: es_use_repository
  register: redhat_elasticsearch_install_from_repo
  notify: restart elasticsearch
  until: '"failed" not in redhat_elasticsearch_install_from_repo'
  retries: 5
  delay: 10
我们得到的错误是:

TASK [elastic.elasticsearch : RedHat - Install Elasticsearch] **********************************************************************************************************************************************
FAILED - RETRYING: RedHat - Install Elasticsearch (5 retries left).
FAILED - RETRYING: RedHat - Install Elasticsearch (4 retries left).
FAILED - RETRYING: RedHat - Install Elasticsearch (3 retries left).
FAILED - RETRYING: RedHat - Install Elasticsearch (2 retries left).
FAILED - RETRYING: RedHat - Install Elasticsearch (1 retries left).
fatal: [ip-10-0-11-xxx]: FAILED! => {"attempts": 5, "changed": false, "msg": "", "rc": 0, "results": ["elasticsearch-5.5.1-1.noarch providing elasticsearch-5.5.1-1 is already installed"]}
是否有一种方法可以指定是否存在轻微的版本不匹配,但不要使任务失败


谢谢

您指定的重试条件的逻辑存在一些问题。如果在没有
until
子句的情况下运行任务,您将看到
failed
属性仍然存在于
redhat\u elasticsearch\u install\u from\u repo
变量中。我相信你应该用另一种方式来增强它,但我不得不承认,它看起来很棘手/耗时

但是如果您的代码已经足够好了,并且您只想修复以下问题:

是否有一种方法可以指定是否存在轻微的版本不匹配,但不要使任务失败

当指令:

failed_when: redhat_elasticsearch_install_from_repo.rc != 0
因为你可以看到在你的例子中rc是0

基于以上内容,这里是一个任务及其输出:

  - name: yum install
    yum: name=screen state=present update_cache=yes
    register: redhat_elasticsearch_install_from_repo
    until: '"failed" not in redhat_elasticsearch_install_from_repo'
    failed_when: redhat_elasticsearch_install_from_repo.rc != 0
    retries: 1
    delay: 5


  - name: output
    debug: 
      var: redhat_elasticsearch_install_from_repo
输出:

TASK [yum install] *****************************************************************************************************************************************************************************************************
FAILED - RETRYING: yum install (1 retries left).
ok: [rhel-green]

TASK [output] **********************************************************************************************************************************************************************************************************
ok: [rhel-green] => {
    "redhat_elasticsearch_install_from_repo": {
        "attempts": 1, 
        "changed": false, 
        "failed": true, 
        "failed_when_result": false, 
        "msg": "", 
        "rc": 0, 
        "results": [
            "screen-4.1.0-0.25.20120314git3c2946.el7.x86_64 providing screen is already installed"
        ]
    }
}

PLAY RECAP *************************************************************************************************************************************************************************************************************
rhel-green                 : ok=2    changed=0    unreachable=0    failed=0
上述输出中的
失败
来自
until
条件,而不是来自yum任务本身。当时的
失败\u来自当
时的
失败\u,您可以将其视为未失败


希望能有所帮助

非常感谢ilias-sp。它的效果非常好。谢谢你的帮助。