要管理Windows Server,需要在Ansible控制节点上安装所需的Windows相关组件。具体来说,需要安装winrm库和pywinrm库,以及运行Ansible所需的其他Python库。

以下是在Ansible控制节点上安装所需组件的步骤:

安装pip:运行以下命令:

sudo apt-get update
sudo apt-get install python-pip

安装winrm库:运行以下命令:

sudo pip install "pywinrm>=0.3.0"

安装pywinrm库:运行以下命令:

sudo pip install "pywinrm>=0.3.0"

安装其他所需的Python库:运行以下命令:

sudo pip install kerberos xmltodict

安装完成后,您需要在Ansible控制节点上设置一些配置文件。首先,创建一个名为“inventory.ini”的文件,其中包含您要管理的Windows Server的IP地址或主机名。例如:

[windows]
192.168.0.100
192.168.0.101
[windows]

192.168.1.100 ansible_connection=winrm ansible_user=administrator ansible_password=123456

接下来,创建一个名为“ansible.cfg”的文件,其中包含以下内容:

[defaults]
inventory = inventory.ini
remote_user = Administrator
remote_pass = your_password

在此示例中,我们将控制节点配置为使用管理员帐户连接到Windows服务器。请注意,此示例是使用密码进行身份验证的,但您也可以使用Kerberos身份验证。

接下来,可以编写Ansible Playbook来执行所需的任务,例如在Windows Server上安装软件包,创建文件夹等。以下是一个示例Playbook,其中使用WinRM模块连接到Windows Server:

---

- name: Install Apache on Windows Server

  hosts: windows

  tasks:

    - name: Install Apache

      win_package:

        path: C:\temp\httpd-2.4.41-win64-VS16.zip

        arguments: '/S /quiet'

        product_id: '{2A8A8AA6-06D5-4B83-8958-78DAB7C08B24}'

        state: present

此Playbook将在Windows服务器上安装Apache Web服务器,使用WinRM连接进行操作。请注意,“hosts”字段指定要在其中运行Playbook的Windows服务器。

在编写Playbook之前,请确保在控制节点和Windows服务器之间建立了网络连接,并且Windows防火墙已配置为允许WinRM流量通过。

在 Windows 主机上启用 WinRM 服务是使用 Ansible 管理 Windows 主机的先决条件之一。以下是启用 WinRM 服务所需的步骤:

确认 Windows 主机的版本:Windows 7 及更高版本或 Windows Server 2008 及更高版本支持 WinRM 服务。在早期版本的 Windows 上,可能需要下载和安装 WinRM 服务。

在 Windows 主机上启用 WinRM 服务:在管理员命令提示符下运行以下命令:

winrm quickconfig

这将启用 WinRM 服务,并配置 Windows 防火墙以允许远程连接。在执行此命令之前,请确保已经以管理员身份登录 Windows 主机。

为 Ansible 创建 Windows 用户账户:在 Windows 主机上创建一个新用户账户,用于 Ansible 访问 Windows 主机。

将新用户账户添加到本地 Administrators 组:在 Windows 主机上,将新创建的用户账户添加到本地 Administrators 组中。

修改 Ansible 的配置文件:修改 Ansible 的配置文件 ansible.cfg,启用 winrm 连接插件,并设置连接插件的相关参数,例如端口号、认证方式等。以下是 ansible.cfg 中相关参数的例子:

[defaults]

connection = winrm

winrm_port = 5986

winrm_transport = ntlm

winrm_server_cert_validation = ignore

需要注意的是,WinRM 服务默认监听 5985 端口,如果需要使用 HTTPS 协议,则需要启用 TLS/SSL 并将端口号改为 5986。另外,认证方式有 basic 和 ntlm 两种方式可选,可以根据实际情况进行选择。

示例:

配置windows

73、ansible管理windows_Windows

linux安装插件

pip install "pywinrm>=0.2.2"

73、ansible管理windows_Server_02

pip install kerberos xmltodict

73、ansible管理windows_Ansible_03

配置hosts

[windows]
10.0.7.11 ansible_ssh_user="administrator" ansible_ssh_pass="12345678" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore

注意:如使用的是AD域账户,需要设置ansible_winrm_transport="ntlm"

73、ansible管理windows_Server_04

73、ansible管理windows_Windows_05