盐州。如果变量在标准输出中有一些词

Salt states. If variables have some word in stdout

有一个网页,上面有一大段文字。

我想配置状态以在 curl returns 出错时执行特定操作。

如果变量不包含“StatusDescription : OK

如何设置检查变量中的一段文本

{% set seqstat = salt['cmd.run']('powershell.exe curl http://127.0.0.1:5001 -UseBasicParsing') %}

{% if seqstat is sameas '*StatusDescription : OK*'  %}

module_run:
  cmd.run:
    - name: 'powershell.exe WRITE-HOST have no Error'

{% else %}

module_run1:
  cmd.run:
    - name: 'powershell.exe WRITE-HOST have Error'

{%- endif -%}
Salt Version:
           Salt: 3002.1
 
Dependency Versions:
           cffi: 1.12.2
       cherrypy: unknown
       dateutil: 2.7.3
      docker-py: 3.4.1
          gitdb: 2.0.5
      gitpython: 2.1.11
         Jinja2: 2.10
        libgit2: 0.27.7
       M2Crypto: Not Installed
           Mako: 1.0.7
   msgpack-pure: Not Installed
 msgpack-python: 0.5.6
   mysql-python: 1.3.10
      pycparser: 2.19
       pycrypto: 2.6.1
   pycryptodome: 3.6.1
         pygit2: 0.27.4
         Python: 3.7.3 (default, Jul 25 2020, 13:03:44)
   python-gnupg: 0.4.4
         PyYAML: 3.13
          PyZMQ: 17.1.2
          smmap: 2.0.5
        timelib: Not Installed
        Tornado: 4.5.3
            ZMQ: 4.3.1
 
System Versions:
           dist: debian 10 buster
         locale: UTF-8
        machine: x86_64
        release: 4.19.0-6-amd64
         system: Linux
        version: Debian GNU/Linux 10 buster

I want to configure the state to perform a certain action if curl returns an error.

有一个名为 http which can query a URL and return the status. Using this (instead of curl) we can check for the status code(s) (200, 201, etc.), as well as matching text. Then we can use requisites 的 Salt 状态到 运行 后续状态,具体取决于 http.query 的 success/failure。

示例:

我已经添加了一个状态码200的检查,如果你不关心状态码,你可以省略- status: 200

check-application:
  http.query:
  - name: http://127.0.0.1:5001
  - status: 200
  - match: 'StatusDescription : OK'

app-running:
  cmd.run:
  - name: 'powershell.exe WRITE-HOST have no Error'
  - require:
    - http: check-application

app-not-running:
  cmd.run:
  - name: 'powershell.exe WRITE-HOST have Error'
  - onfail:
    - http: check-application