Saltstack module event 详解

event.fire

Fire an event on the local minion event bus. Data must be formed as a dict.

CLI Example:

    salt '*' event.fire '{"data":"my event data"}' 'tag'

event.fire_master

Fire an event off up to the master server

CLI Example:

    salt '*' event.fire_master '{"data":"my event data"}' 'tag'

event.send

Send an event to the Salt Master

New in version 2014.7.0

:param tag: A tag to give the event.
    Use slashes to create a namespace for related events. E.g.,
    ``myco/build/buildserver1/start``, ``myco/build/buildserver1/success``,
    ``myco/build/buildserver1/failure``.

:param data: A dictionary of data to send in the event.
    This is free-form. Send any data points that are needed for whoever is
    consuming the event. Arguments on the CLI are interpreted as YAML so
    complex data structures are possible.

:param with_env: Include environment variables from the current shell
    environment in the event data as ``environ``.. This is a short-hand for
    working with systems that seed the environment with relevant data such
    as Jenkins.
:type with_env: Specify ``True`` to include all environment variables, or
    specify a list of strings of variable names to include.

:param with_grains: Include grains from the current minion in the event
    data as ``grains``.
:type with_grains: Specify ``True`` to include all grains, or specify a
    list of strings of grain names to include.

:param with_pillar: Include Pillar values from the current minion in the
    event data as ``pillar``. Remember Pillar data is often sensitive data
    so be careful. This is useful for passing ephemeral Pillar values
    through an event. Such as passing the ``pillar={}`` kwarg in
    :py:func:`state.sls <salt.modules.state.sls>` from the Master, through
    an event on the Minion, then back to the Master.
:type with_pillar: Specify ``True`` to include all Pillar values, or
    specify a list of strings of Pillar keys to include. It is a
    best-practice to only specify a relevant subset of Pillar data.

:param with_env_opts: Include ``saltenv`` and ``pillarenv`` set on minion
    at the moment when event is send into event data.
:type with_env_opts: Specify ``True`` to include ``saltenv`` and
    ``pillarenv`` values or ``False`` to omit them.

:param kwargs: Any additional keyword arguments passed to this function
    will be interpreted as key-value pairs and included in the event data.
    This provides a convenient alternative to YAML for simple values.

CLI Example:

    salt-call event.send myco/mytag foo=Foo bar=Bar
    salt-call event.send 'myco/mytag' '{foo: Foo, bar: Bar}'

A convenient way to allow Jenkins to execute ``salt-call`` is via sudo. The
following rule in sudoers will allow the ``jenkins`` user to run only the
following command.

``/etc/sudoers`` (allow preserving the environment):

    jenkins ALL=(ALL) NOPASSWD:SETENV: /usr/bin/salt-call event.send*

Call Jenkins via sudo (preserve the environment):

    sudo -E salt-call event.send myco/jenkins/build/success with_env=[BUILD_ID, BUILD_URL, GIT_BRANCH, GIT_COMMIT]
posted @ 2020-03-28 20:54  random_lee  阅读(138)  评论(0编辑  收藏  举报