当前位置: 首页 > article >正文

Ansible剧本检测Windows防火墙状态

Ansible介绍

Ansible是一个基于Python开发的自动化运维工具,它集合了众多运维工具的优点,如Puppet、Chef和Func,实现了批量系统配置、批量程序部署和批量运行命令等功能。Ansible通过SSH与远程主机通信,无需在远程主机上安装客户端软件,这使得部署和维护变得更加简单。

图片

编写inventory.ini

[windows]
windows ansible_host=windows的IP ansible_user='用户名' ansible_password='密码'
[windows:vars]
ansible_port=3389
ansible_connection=winrm
ansible_winrm_transport=basic

注意:winrm权限仅在测试环境下使用basic 请不要随意在生产环境搞。

  1. [windows]

    这是一个组名,称为windows。在Ansible的inventory文件中,你可以定义多个组,每个组包含一组具有共同特征的主机(服务器或设备)。这里,windows组将包含Windows服务器。

  2. windows ansible_host=windows的IP ansible_user='用户名' ansible_password='密码'

    这一行定义了windows组中单个主机的连接信息:

    注意:在实际应用中,直接在inventory文件中存储密码是不安全的。建议使用Ansible Vault或其他方法来安全地管理敏感信息。

    • ansible_host=windows的IP:这里应该填写具体的Windows服务器的IP地址。例如,ansible_host=192.168.1.100

    • ansible_user='用户名':这里填写用于登录Windows服务器的用户名。

    • ansible_password='密码':这里填写对应的用户密码。

  3. [windows:vars]

    这一部分定义了windows组的变量(vars)。这些变量可以在Ansible的playbook中引用,以自定义行为。

    • ansible_port=3389:指定连接到Windows服务器时使用的端口号。默认情况下,WinRM(Windows Remote Management)服务使用5985(HTTP)和5986(HTTPS),但这里设置为3389,这通常是Windows远程桌面协议(RDP)的默认端口。如果你在使用WinRM并通过基本认证方式连接,请确保你的WinRM监听的是这个端口或者更改为标准的WinRM端口。

    • ansible_connection=winrm:指定Ansible用于连接到该主机的连接类型。对于Windows服务器,通常使用winrm

    • ansible_winrm_transport=basic:指定WinRM传输类型。basic表示使用基本认证。

注意事项:

  • 确保WinRM服务在目标Windows服务器上已启动并正确配置。

  • 如果使用HTTPS和证书进行WinRM通信,需要额外的配置,包括证书的管理和信任。

  • 考虑使用Ansible Vault加密敏感信息,如密码。

  • 验证防火墙设置,确保Ansible控制节点可以访问指定的WinRM端口。

通过以上配置,Ansible将能够使用WinRM协议通过基本认证连接

编写剧本dean.yml

----name:检查Windows防火墙hosts:windowsgather_facts:notasks:-name:获取域网络防火墙状态win_shell:Get-NetFirewallProfile-ProfileDomain|Select-Object-PropertyEnabledregister:domain_firewall_status
-name:检查域网络防火墙是否启用debug:msg:"域网络防火墙已启用。"when:"'True' in domain_firewall_status.stdout"
-name:检查域网络防火墙是否禁用debug:msg:"域网络防火墙已禁用。请出于安全原因启用防火墙。"when:"'False' in domain_firewall_status.stdout"
-name:获取专用网络防火墙状态win_shell:Get-NetFirewallProfile-ProfilePrivate|Select-Object-PropertyEnabledregister:private_firewall_status
-name:检查专用网络防火墙是否启用debug:msg:"专用网络防火墙已启用。"when:"'True' in private_firewall_status.stdout"
-name:检查专用网络防火墙是否禁用debug:msg:"专用网络防火墙已禁用。请出于安全原因启用防火墙。"when:"'False' in private_firewall_status.stdout"
-name:获取公用网络防火墙状态win_shell:Get-NetFirewallProfile-ProfilePublic|Select-Object-PropertyEnabledregister:public_firewall_status
-name:检查公用网络防火墙是否启用debug:msg:"公用网络防火墙已启用。"when:"'True' in public_firewall_status.stdout"
-name:检查公用网络防火墙是否禁用debug:msg:"公用网络防火墙已禁用。请出于安全原因启用防火墙。"when: "'False' in public_firewall_status.stdout"

执行命令

ansible-playbook -i inventory.ini dean.yml

http://www.kler.cn/a/393281.html

相关文章:

  • Golang | Leetcode Golang题解之第559题N叉树的最大深度
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件
  • 【C#设计模式(8)——过滤器模式(Adapter Pattern)】
  • AI 扩展开发者思维方式:以 SQL 查询优化为例
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • Redis - 哨兵(Sentinel)
  • 【MySQL】summary
  • 传奇996_21——龙岭事件
  • 丹摩征文活动 |通过Pycharm复现命名实体识别模型--MECT模型
  • JS 实现SSE通讯和了解SSE通讯
  • AI大模型识别多人发音的实时语音交互理论研究
  • Logback 日志介绍及与Spring Boot 的整合 【保姆级教程】
  • 数据库基础(11) . SQL脚本
  • 在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5
  • golang将word、excel转换为pdf
  • JAVA:探索 EasyExcel 的技术指南
  • 哈希表的实现--C++
  • 【Redis】Redis的一些应用场景及使用策略
  • Android Studio使用c++编写
  • MATLAB和R及Python伪时间分析
  • 泷羽sec学习打卡-Linux基础2
  • Webpack 1.13.2 执行 shell 命令解决 打印时没有背景色和文字颜色的问题
  • 【云计算解决方案面试整理】3-7主流云计算平台、云计算架构、安全防护
  • ubuntu内核切换network unclaimed 网卡丢失
  • nginx配置负载均衡详解