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

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构

这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。

前提条件:

  •  在被管理的节点上安装WinRm
  •  准备一张自签名的证书
  •  开放防火墙入站tcp 5985 5986端口

准备自签名证书 

PS C:\Users\azureuser> $cert = New-SelfSignedCertificate -DnsName "solarwinds" -CertStoreLocation Cert:\LocalMachine\My
PS C:\Users\azureuser> $cert.Thumbprint
625D9DA3410A9F3FC87D853EA9730B5A8935F150

 

注册https listener,并绑定证书 

PS C:\Users\azureuser> winrm create winrm/config/Listener?Address=*+Transport=HTTPS '@{Hostname="solarwinds"; CertificateThumbprint="625D9DA3410A9F3FC87D853EA9730B5A8935F150"}'

 验证https listener

PS C:\Users\azureuser> WinRM e winrm/config/listener

 定义ansible inventory file 

[windows_servers]
solarwinds ansible_host=20.47.126.72 ansible_connection=winrm ansible_winrm_transport=ntlm ansible_user=azureuser ansible_password=<yourpassword> ansible_winrm_connection_timeout=60[windows_servers:vars]
ansible_winrm_port=5986

创建ansible playbook

---
- name: Windows Featurehosts: solarwindsgather_facts: truetasks:- name: Disable Windows Updates Servicewin_service:name: wuauservstate: stoppedstart_mode: disabled- name: Run ipconfig and return IP address information.raw: ipconfigregister: ipconfig- debug: var=ipconfig# Install and enable IIS on Windows server 2019- name: Install IISwin_feature:name: "Web-Server"state: presentrestart: yesinclude_sub_features: yesinclude_management_tools: yes
# Copy the index.html file and rename to ansible.html under C:\inetpub\wwwroot. Must use \\ instead of \ for accessing directory on Windows server.- name: Copy index text pagewin_copy:src: "files/index.html"dest: "C:\\inetpub\\wwwroot\\ansible.html"

创建index.html文件

<html>
<head><title>Rock Ansible</title> 
</head>
<body><h1 style="background-color:DodgerBlue;"> Use Ansible to install and configure IIS on WIndows 2022</h1> <h3 style="color:Tomato;"> Welcome to Rock's Ansbile Test Page</h3>
</body>
</html>

运行ansible 命令来验证到windows server的链接

(base) ninjamac@ninjamacdeMacBook-Air ansible % ansible -i host1 windows_servers -m win_ping solarwinds | UNREACHABLE! => {"changed": false,"msg": "ntlm: HTTPSConnectionPool(host='20.47.126.72', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1006)')))","unreachable": true
}

该错误是自签名证书无法被macos信任导致,可以通过加上参数ansible_winrm_server_cert_validation=ignore来解决。

ansible -i host1 windows_servers -m setup -e ansible_winrm_server_cert_validation=ignore 

 

运行ansible playbook

 

 访问服务器的主页

http://www.lqws.cn/news/196093.html

相关文章:

  • Java编程之原型模式
  • python并发编程
  • 【C++ 真题】P1747 好奇怪的游戏
  • 【数据结构初阶】单链表
  • 计算机操作系统(十五)死锁的概念与死锁的处理方法
  • 使用VHD虚拟磁盘安装双系统,避免磁盘分区
  • C语言:数据的存储
  • SQL Server全局搜索:在整个数据库中查找特定值的高效方法
  • 个人电脑部署本地大模型+UI
  • 从混乱到秩序:探索管理系统如何彻底改变工作流程
  • C++指针(二)
  • 怎么解决cesium加载模型太黑,程序崩溃,不显示,位置不对模型太大,Cesium加载gltf/glb模型后变暗
  • Windows账户管理,修改密码,创建帐户...(无需密码)
  • Python打卡第46天
  • N8N概述
  • [假面骑士] 龙骑浅谈
  • 第三章支线一 ·原能之核:语法起源
  • 驱控边界在哪里?知名舵机品牌伟创动力CNTE2025展带来答案
  • Vue基础(14)_列表过滤、列表排序
  • Python打卡训练营day46——2025.06.06
  • 【动手学深度学习】3.1. 线性回归
  • string类(详解)
  • 从零开始的python学习(七)P95+P96+P97+P98+P99+P100+P101
  • 【知识扫盲】如何由inq,ouq和totaltime计算tokens/s
  • Unity3D仿星露谷物语开发60之定制角色其他部位
  • 【时时三省】(C语言基础)局部变量和全局变量
  • Linux驱动:再看静态映射和动态映射
  • Java常用的判空方法
  • 东芝Toshiba DP-4528AG打印机信息
  • 视觉分析在人员行为属性检测中的应用