Ansible - Как отметить задачу как успешную когда на самом деле произошел сбой

Конечно, можно.

Что касается «как», это будет описано в руководстве по установке операционной системы. В какой-то момент во время установки вам будет предоставлена выбор сделать либо автоматическую установку, которая попытается угадать, где установить вещи, либо установку, разрешающую разбиение диска вручную, что позволит вам распределить данные по своему желанию.

Единственное, что трудно в том, что вы предлагаете, - это избежать угасания или иным образом сделать Windows незагружаемой. Но это было раскрыто до смерти в других местах Интернета уже, в течение последних 20 лет.

Перед продолжением создайте и протестируйте резервные копии .

-121--216892-

С sed, если ваш файл данных data.txt и вы хотите вывести в файл broken.txt :

sed -n 'l 80' data.txt | sed 's/\$\|\\//' > broken.txt

Первая часть канала делает каждый отрезок длиной 80 символов. Однако эта удобная команда в sed выводит текст в «однозначном» виде, что означает, что разрывы строк теперь становятся $ s, а разрывы, вводимые sed, отображаются как \ s. Так что вторая часть трубы - избавиться от них.

Это решение предполагает отсутствие \ или $ в файле data.txt для начала.

-121--289383-

Ваше решение работает, просто может быть упрощено, плюс выходные данные сохранены, с обратной связью:

$ sed -r 's/(.{79})/\1\n/g' output.txt | tee output2.txt
  • sed команда уже может принять файл... аргументы, такие как output.txt , чтобы вы могли избежать того, что некоторые считают «кошачьим злоупотреблением»:)
  • tee позволяет вам видеть выходные данные, а также писать выходные данные, таким образом давая вам форму обратной связи, иначе то, что происходит с большими файлами, это то, что ничего не будет происходить на экране в течение некоторого времени, так что всегда хорошо иметь обратную связь.
4
22.05.2018, 05:21
1 ответ

Puede utilizar el módulo fail:

tasks:
  - wait_for:
      host: ams-server-101
      port: 443
      timeout: 1
    register: https_port_check
    ignore_errors: true
  - fail:
      msg: 'HTTPS port is open'
    when: not https_port_check.failed

O muy bonito y breve como sugirió Patrick, pero sin mensaje de error personalizado:

  tasks:
    - wait_for:
        host: ams-server-101
        port: 443
        timeout: 1
      register: https_port_check
      failed_when: not https_port_check.failed

Para una verificación tan importante, podría ser apropiado culpar al usuario con un mensaje de falla vicioso.

5
27.01.2020, 20:54

Теги

Похожие вопросы