Использование curl в качестве теста

Я пишу конфигурацию Puppet для автоматизации создания ресурса репозитория Elastic Search. К сожалению, насколько я могу судить, нет способа указать эту конфигурацию в конфигурационном файле Elastic Search YAML, поэтому я застрял в HTTP и зависании. В качестве ресурсов я объявлял следующее:

file { 'curator_repository_config': path => "${elasticsearch::install_dir}/config/s3-repository.json", owner => $elasticsearch::user, group => $elasticsearch::user, mode => '0400', content => template('chromeriver/curator/s3-repository.json.erb'), } exec { 'create_es_repository': command => "curl -is -X PUT 'http://localhost:9200/_snapshot/s3' -d @${elasticsearch::install_dir}/config/s3-repository.json", unless => "curl -is -X GET 'http://localhost:9200/_snapshot/s3'", path => '/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin', user => $elasticsearch::user, require => [ Service['elasticsearch'], File['curator_repository_config'] ] } 

Понимание конфигурации Puppet не обязательно, чтобы ответить на этот вопрос, но выше, по существу, создает файл с именем s3-repository.json который содержит сведения о конфигурации, которые в конечном итоге используются в POST для Elastic Search.

Второй ресурс условно выполняется, работает только в том случае, если код возврата из следующей команды отличен от нуля. В основном это делает:

 #!/bin/bash if ! curl -is -X GET 'http://localhost:9200/_snapshot/s3' &>/dev/null; then curl -is -X PUT 'http://localhost:9200/_snapshot/s3' @/path/to/s3-repository.json fi 

Проблема, с которой я сталкиваюсь, заключается в том, что curl возвращает 0 для 404 в запросе GET . Я хотел бы иметь curl return 1 если ответ является ответом не-200.

Есть ли простой способ сделать это с помощью curl ?

Interesting Posts

Копирует сервер NFS в точку монтирования, а не на подключенный диск

Что-то особенное о / dev / fd / 3

Не удалось войти в Linux Mint

В Vim, почему `2ci '' удаляет окружающие кавычки?

Проблемы с использованием Chrome на Chromebook

получить временную метку файлов, представленных циклом FOR

Как я могу посмотреть, какие процессы загружают / загружают, сколько данных?

Sed – Заменить первые k экземпляров слова в файле

Каковы некоторые распространенные случаи использования файлов файлов блоков / символов из оболочки с помощью mknod?

Настройте wget, чтобы не сбрасывать хорошие данные с пустыми данными

Установка HTTP-сервера как файловой системы

Скрипт для отправки почты, если в журнале не было записи в течение определенного времени

Почему `tac файл | grep foo '(piping) быстрее, чем `grep foo <<(tac файл)' (замена процесса)?

насколько большой должен быть каталог / boot на сервере CentOS 7?

Обратная динамическая ошибка распределения портов SSH

Linux и Unix - лучшая ОС в мире.