当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

作者:精品下载站 日期:2024-12-14 12:27:53 浏览:15 分类:玩电脑

使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理


Ansible 是一个简单但功能强大的 IT 自动化引擎,成千上万的公司正在使用它来降低环境的复杂性并加速 DevOps 计划。

无论是应用程序的部署、服务器的日常维护、配置管理、持续交付、编排还是您可以描述的任何重复性工作,Ansible 都可以为您处理。

为了见证其顶级功能,我们将利用它来自动化 Windows 服务器管理。这将是一次冒险之旅,所以在我们开始航行时请系好安全带。

“别等了。时机永远不会恰到好处。 ”
-拿破仑山

先决条件

在我们深入研究之前,Windows 主机需要一些东西才能“同意”由 Ansible 管理。下面的列表就足够了:

  • Powershell 3.0 或更高版本
  • .NET Framework 4.0 或更高版本
  • Windows 远程管理侦听器或 SSH (cygwin)
  • Windows 7+ 和服务器操作系统,包括 Windows Server 2008+
  • 巧克力味
  • WSUS 用于更新操作系统包和修补
  • Ansible 或 AWX

第 1 步:安装 Chocalatey 和 WSUS

作为个人计算机中使用最广泛的操作系统,Windows 用户可以从像 Chocolatey 这样的工具来安装和管理他们的软件,从而受益匪浅。它使通过命令行或 PowerShell 安装应用程序变得非常容易。另一方面,WSUS 使用户可以轻松地提供操作系统更新/修补。

要安装 Chocolatey,请按照 Chocolatey 详细指南从命令提示符进行设置和管理 Windows 应用程序。完成后,您可以使用如何在 Windows Server 2019 上安装 Windows 服务更新服务指南继续安装 WSUS。

步骤 2:安装 Ansible AWX

我们将在本指南中使用 Ansible AWX 来管理 Windows 主机,因为它易于使用,并且具有大多数人都会喜欢的友好的 Web 管理空间。您可以使用在 CentOS 8 上安装和配置 Ansible AWX 指南来安装 Ansible AWX。

要在 AWX 服务器中添加的内容是 pywinrm。 Ansible 使用 pywinrm 包通过 WinRM 与 Windows 服务器进行通信。默认情况下,它不随 Ansible 软件包一起安装,但可以通过运行以下命令进行安装:

sudo pip3 install "pywinrm>=0.2.2"

完成安装并安装 pywinrm 后,按照指南中的说明在 AWX 中进行以下设置:

  • 具有必要权限的用户和可选团队
  • 一个组织或者您可以使用默认组织
  • 连接 Windows 主机的凭据
  • 包含主机列表的清单(添加下面共享的变量)
  • 设置项目 - 您可以使用包含 playbook 的 GitHub 存储库
  • 设置一个模板,准备好启动一切

您将在清单上添加一些更改,以包含与 WinRM 功能相匹配的特殊变量。以下是您应在“库存”下添加的变量以及为该变量共享的屏幕截图。

ansible_connection: winrm
ansible_winrm_transport: basic
ansible_winrm_server_cert_validation: ignore

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

步骤 3:为 Ansible 配置 Windows 远程管理

由于 Ansible 不使用被管理的服务器上安装的代理,因此它利用操作系统提供的通信功能。在 Windows 2019 中,引入了 Secure Shell (ssh),但如果您有 2019 以下的其他服务器版本,那么您将不得不选择 Windows 远程管理 (WinRM),因为它在其他版本中也可用。

WinRM 服务有两个主要组件控制 Ansible 如何与 Windows 主机交互:侦听器和服务配置设置。 WinRM 服务侦听一个或多个端口上的请求。每个端口都必须创建并配置一个侦听器。

我们将使用此脚本,ConfigureRemotingForAnsible.ps1,它可用于设置基础知识。此脚本使用自签名证书设置 HTTP 和 HTTPS 侦听器,并在服务上启用基本身份验证选项。有关此内容的更多信息,请参阅 Ansible 文档

要使用此脚本,请在 PowerShell 中运行以下命令(以管理员身份):

$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file

下面分享了相同的屏幕截图。

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

WinRM监听器

WinRM 服务侦听一个或多个端口上的请求。每个端口都必须创建并配置一个侦听器。要查看 WinRM 服务上运行的当前侦听器,请运行以下命令:

winrm enumerate winrm/config/Listener

下面分享了另一个屏幕截图。

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

步骤 4:在 Windows 中执行 Ansible Playbook

设置 WinRM 后,现在可以使用安装在您选择的 Linux 服务器上的 Ansible 来管理它。如果您更喜欢使用终端,您可以在“/etc/ansible/hosts”文件中添加一个名为 windows 的主机,然后执行以下命令来测试一切是否正常。

ansible -i windows -m win_ping -e ansible_connection=winrm \
-e ansible_user=<Your-Windows-User> -e ansible_password=<Your-Windows-Password> \
-e ansible_winrm_transport=basic \
-e ansible_winrm_server_cert_validation=ignore

如果一切正常,您应该会看到如下消息

172.19.253.55 | SUCCESS => {
    "changed": false,       
    "ping": "pong"
}

测试完成并且成功后,我们可以返回 AWX Web 界面并执行 playbook。根据您决定放置 Playbook 的位置(Git 或服务器),是时候创建模板然后启动它了。我们假设您已经创建了凭据、用户、组织、项目、库存,现在创建了模板

我在服务器内使用了一个带有剧本的项目(手动 SCM),如下面的屏幕截图所示。

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

我在“/var/lib/awx/projects”中创建了一个名为“test”的目录,然后创建了一个名为“main.yaml”的示例剧本”,内容如下:

- hosts: all
  gather_facts: true
  tasks:
    - name: Install Git
      win_chocolatey:
        name: git
        state: present

在我们上面准备的 Windows Server 2019 中安装“Git”是一个简单的任务。

完成后,我们可以继续创建一个“模板”,将所有内容粘合在一起并执行剧本。下面分享了填写了设置的屏幕截图。

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

保存然后启动。

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

如果一切顺利,剧本将开始运行并显示成功消息。如下图所示

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

第5步:确认Git已安装

播放完成后,我们可以登录到我们的Windows Server来确认Git确实是由Ansible使用Chocolatey安装的。点击“开始”图标,或者您应该看到“Git”作为一个新应用程序,如下所示。

[玩转系统] 使用 Ansible 自动化 Windows Server 2019 和 Windows 10 管理

我们很高兴出发!

最后的想法

一般来说,AWX 和 Ansible 是最佳选择,尤其是当您管理大量服务器时。设置好所有内容后,您就可以放松地添加 Playbook 来配置您的基础设施。如果您还没有冒险进入 Ansible 和自动化的多彩世界,那么请登上下一班船前往那片神奇的土地。最后,我们继续感谢您的大力支持,希望该指南对您有所帮助,并继续保持安全。其他可能会引起您注意的指南包括以下内容。

使用 Ansible 生成 OpenSSL 自签名证书

使用 Ansible 管理 Linux 上的用户和组

如何为 Ansible 生成 Linux 用户加密密码

在 CentOS 上设置 Elasticsearch 集群 | Ubuntu 与 Ansible

使用 Ansible 在 Debian 10 上安装 Apache Tomcat

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯