专栏名称: 院长技术
《院长技术》专注于DevOps技术栈研究,云原生、Istio,CICD、Docker、Prometheus、K8s、ServiceMesh、Jenkins、Linux、微服务、分布式存储、监控、日志收集、安全渗透、虚拟化等技术栈。
目录
相关文章推荐
国际金融报  ·  齐鲁制药曝出13.51亿虚开发票案!后续或“ ... ·  13 小时前  
51好读  ›  专栏  ›  院长技术

Ansible剧本检测Windows防火墙状态

院长技术  · 公众号  ·  · 2024-11-11 10:04

正文

院长简介

作者:院长

职位:运维开发工程师

官网:https://deanit.cn

博客:https://blog.deanit.cn

擅长:

【虚拟化,容器化,自动化运维,CICD,监控,日志,中间件,双机热备,分布式存储,数据库,认证,组网隧道,Kali 安全渗透,网络攻击,负载均衡,Html,Css,Js,Jq,Vue3,Shell,Python,Go,前后端框架】

Ansible介绍

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

编写inventory.ini

[windows]
windows ansible_host=windows的IP ansible_user='用户名' ansible_password='密码'
[windows:vars]ansible_port=3389ansible_connection=winrmansible_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='密码' :这里填写对应的用户密码。

  • [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


    招贤纳士

    欢迎👏关注《院长技术》,只做原创,干货~~~

    更多技术干货持续输出中......


    知识星球,试运营中,

    原价188¥在不断上涨, 现加入仅需129¥ ,文档正逐渐上传!

    欢迎加入 QQ-4 群:【

    1群-2群-3群已满







    请到「今天看啥」查看全文