ОШИБКА Дженкинса: скрипт вернул код выхода 4

У меня есть простой Groovy-скрипт для установки агентов на мои серверы с помощью Ansible.
После запуска конвейера я получаю сообщение об ошибке

ERROR: script returned exit code 4 Finished: FAILURE

Ошибка возникает из-за того, что у меня не запущено два экземпляра (я не хочу, чтобы они работали), и я получаю от них connection time out.
Есть ли способ заставить Дженкинса игнорировать такие ошибки?

ОШИБКА Дженкинса: скрипт вернул код выхода 4

Пожалуйста, публикуйте журналы, код или что-то подобное в блоках кода в теле самого вопроса, а не в виде экрана печати. Изображения должны быть зарезервированы для вещей, которые невозможно описать словами. См. Как спросить

β.εηοιτ.βε 03.05.2022 13:18

Пожалуйста, добавьте код конвейера в вопрос.

Matt Schuchard 03.05.2022 14:45
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
2
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не столь идеальным решением было бы просто указать ignore_unreachable: yes в верхней части вашего playbook.

Это не идеальный вариант, потому что вы рискуете пропустить недоступные хосты, которые вам небезразличны.

Возможно, лучшим решением было бы изящно завершить эти недоступные хосты в задаче meta на основе списка хостов, которые вам не нужны.

Например:

- hosts: localhost, ok-if-down
  gather_facts: no

  pre_tasks:
    - ping:
      ignore_unreachable: yes
      register: ping

    - meta: end_host
      when:
        - inventory_hostname in _possibly_unreachable_hosts
        - ping is unreachable
      vars:
        _possibly_unreachable_hosts:
          - ok-if-down
          ## add more host(s) name in this list, here

  tasks:
    ## here goes your current tasks

При запуске код выхода этого плейбука будет 0:

$ ansible-playbook play.yml; echo "Return code is $?"

PLAY [localhost, ok-if-down] **************************************************
TASK [ping] *******************************************************************
fatal: [ok-if-down]: UNREACHABLE! => changed=false 
  msg: 'Failed to connect to the host via ssh: ssh: Could not resolve hostname ok-if-down: Name does not resolve'
  skip_reason: Host ok-if-down is unreachable
  unreachable: true
ok: [localhost]

TASK [meta] *******************************************************************
skipping: [localhost]

TASK [meta] *******************************************************************

PLAY RECAP ********************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
ok-if-down                 : ok=0    changed=0    unreachable=1    failed=0    skipped=1    rescued=0    ignored=0   

Return code is 0

Другие вопросы по теме