You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SaltStack在自定义事件触发时向IRC频道发送消息

SaltStack IRC消息推送配置方案

1. 配置ircbot engine基础运行参数

首先在Salt Master节点添加ircbot engine配置,编辑/etc/salt/master.d/ircbot.conf文件,示例配置如下:

engines:
  - ircbot:
      # IRC服务器地址
      server: irc.example.com
      # 连接端口,SSL端口一般为6697,非SSL为6667
      port: 6697
      use_ssl: True
      # Bot的IRC昵称
      nick: salt_alert_bot
      realname: Salt Stack Alert Bot
      ident: saltbot
      # 要加入的IRC频道列表
      channels:
        - "#operation-alerts"
      # 允许接收消息的主机地址,默认仅允许本地访问
      allow_hosts:
        - "127.0.0.1"
      # 若IRC服务需要密码验证则填写,无密码可删除该字段
      password: "your_irc_auth_password"

配置完成后重启salt-master服务生效,执行以下命令确认engine正常运行:
salt-run engine.ls | grep ircbot
返回结果包含ircbot即为运行正常。

2. 触发IRC消息推送

ircbot engine会自动监听Salt事件总线上tag为salt/engines/ircbot/message的事件,匹配到对应事件后会自动将事件内容推送到指定IRC频道/用户。

2.1 自定义事件触发推送

你已完成自定义事件监听配置,只需在事件触发逻辑中向事件总线发送符合上述tag要求的事件即可,事件需包含两个必填字段:

  • channel:目标IRC频道名(带#)或目标用户昵称
  • message:要发送的具体消息内容
    在Minion侧发送事件命令示例:
    salt-call event.send salt/engines/ircbot/message channel="#operation-alerts" message="告警:minion-01节点磁盘使用率超过90%"
    在Master侧发送事件命令示例:
    salt-run event.send salt/engines/ircbot/message channel="#operation-alerts" message="通知:全量配置同步任务执行完成"

2.2 从Salt State中触发推送

直接在State文件中调用event.send模块即可,示例State配置如下:

# 服务部署完成后发送IRC通知
send_deploy_success_notice:
  event.send:
    - name: salt/engines/ircbot/message
    - data:
        channel: "#operation-alerts"
        message: "应用服务部署完成,版本:v{{ pillar['app_version'] }},部署节点:{{ grains['id'] }}"
    # 配置依赖,仅在部署任务执行成功后发送通知
    - require:
      - pkg: install_app_package

注意事项

  • 包含#的IRC频道名在命令行、State文件中需用引号包裹,避免被解析为注释
  • 若需给所有推送消息添加统一标识,可在ircbot engine配置中新增prefix参数,如prefix: "[Salt告警]"
  • 如需限制可推送消息的来源身份,可调整allow_hosts配置字段的IP范围

内容的提问来源于stack exchange,提问作者mihca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:09:03