ansibleguy.addons_nftables

NFTables logo

Ansible 角色 - NFTables 附加组件

用于在 Linux 服务器上部署 NFTables 附加组件的角色。

请我喝咖啡

Molecule 测试状态 YamlLint 测试状态 PyLint 测试状态 Ansible-Lint 测试状态 Ansible Galaxy

Molecule 日志: 简短, 完整

已测试:

  • Debian 11
  • Debian 12

安装

# 最新版本
ansible-galaxy role install git+https://github.com/ansibleguy/addons_nftables

# 从 Galaxy 获取
ansible-galaxy install ansibleguy.addons_nftables

# 或者自定义角色路径
ansible-galaxy install ansibleguy.addons_nftables --roles-path ./roles

文档


使用

您可以使用 ansibleguy.infra_nftables 角色来管理 NFTables 基础配置!

配置

您可以在这里找到更详细的示例: 示例!

根据需要定义配置:

nftables_addons:
  enable:
    dns: true  # 启用 DNS 附加组件
    dns_v6: true  # 启用 DNS 附加组件的 IPv6 处理
    iplist: true  # 启用 IPList 附加组件
    iplist_v6: true  # 启用 IPList 附加组件的 IPv6 处理
    # timer: true  # 如果您想自己管理计时器,可以禁用计时器管理
    # systemd: true  # 使用 systemd 计时器更新附加组件
    # cron: false  # 使用 cron 作业更新附加组件
    # include: true  # 禁用在 /etc/nftables.conf 中自动包含附加组件

  config:
    iplists:
      iplist_tor_exit_nodes:  # 变量名
        urls: ['https://check.torproject.org/torbulkexitlist']
        separator: "\n"
        comment: '#'
    dns_records:
      ntp_servers: ['0.europe.pool.ntp.org', '1.europe.pool.ntp.org']
      repo_debian: ['deb.debian.org', 'debian.map.fastlydns.net', 'security.debian.org']

  ext: 'nft'  # NFTables 配置文件使用的扩展名
  path:
    base:
      config: '/etc/nftables.conf'
      dir: '/etc/nftables.d'
    addon:
      dir: '/etc/nftables.d/addons'

  timer:
    systemd:
      dns: '*:0/15'  # 每15分钟更新
      iplist: '*-*-* 00,12:00:00'  # 每天更新两次

    # cron:
    #   dns:  # 每15分钟
    #     minute: '*/15'
    #   iplist:  # 每天两次
    #     minute: '0'
    #     hour: '0,12'

执行

运行剧本:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml

还有一些有用的 标签 可用:

  • dns
  • iplist
  • config (仅更新附加组件配置)

要调试错误,您可以在运行时设置 'debug' 变量:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

功能

  • 配置

    • 默认配置:

      • Systemd 定时器运行附加组件
      • 日志记录到 Syslog
      • IPv6 变量附录:'_v6'
        • 例如:变量 'repo_debian' => 'repo_debian_v6'
      • 定时器
        • DNS => 每15分钟更新
        • IP-List => 每天更新两次
      • Systemd
        • Syslog ID: 'nftables_addon_{ addon }'
        • 服务/定时器前缀: 'ansibleguy.addons_nftables-'
    • 默认选择:

      • 定时器自动更新变量
      • Systemd 定时器
      • 在 '/etc/nftables.conf' 中添加包括项
    • 默认不选择:

      • 附加组件
        • DNS
          • DNS IPv6 处理
        • IP-Lists
          • IP-List IPv6 处理
      • Cron 作业定时器

信息

  • 注意: 此角色当前仅支持基于 Debian 的系统

  • 注意: 大部分功能可选择启用或禁用。

    所有可用选项请查看位于 主默认文件 中的默认配置!

  • 警告: 不是您提供的每个设置/变量都将被检查有效性。错误配置可能会导致角色失效!

  • 注意: 每个定义的变量都会创建,因为缺失的变量可能会破坏您的配置!

    如果一个 DNS 记录无法解析或没有返回任何条目,将设置一个回退值(IPv4:0.0.0.0,IPv6:::_)。

关于项目

Ansible Role to provision Add-Ons for NFTables on Linux servers

安装
ansible-galaxy install ansibleguy.addons_nftables
许可证
other
下载
2k
拥有者
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg