如何在Windows上从Ubuntu连接Ansible?

让我快速向您展示如何从在Ubuntu上运行的Ansible连接Windows服务器.


要执行以下步骤,您需要在两个系统上都安装python 3.x和Ansible。如果需要帮助,可以阅读以下文章.

如何在Ubuntu上安装和配置Ansible?

如何在Windows上安装Ansible?

以下是我正在使用的两台服务器的详细信息:

  • Ansible控制器– 192.168.0.108
  • Windows Server – 192.168.0.102

步骤1:建立Ansible Windows使用者

为Ansible Windows连接设置创建一个新用户.

  • 在Windows系统上打开“计算机管理”,然后转到“本地用户和组”.
  • 右键单击“用户”并创建一个新用户.
  • 选择密码永不过期复选框,然后单击创建.

生气的用户

  • 现在,在可用组中,右键单击Administrators组,然后单击属性.
  • 单击添加并在对象名称中输入ansible.
  • 单击检查名称选项,然后单击确定.

愤怒的群体

现在,Windows计算机上的ansible用户已准备就绪.

步骤2:设置库和WinRM

转到您的ansible控制器机器,对其进行更新,然后安装下面提到的库.

[受电子邮件保护]:〜$ sudo apt-get更新
[受电子邮件保护]:〜$ sudo apt-get install gcc python-dev
[受电子邮件保护]:〜$ sudo apt安装python3-pip

WinRM代表Windows远程管理。它允许您在远程Windows系统上执行管理任务。我们将安装 python3-winrm, 用于与Windows系统建立连接的python客户端.

[受电子邮件保护]:〜$ sudo apt-get install python3-winrm
正在阅读包装清单…完成
建立依赖树
正在读取状态信息…完成
以下软件包是自动安装的,不再需要:
gyp libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray libjs-node-uuid libuv1 libuv1-dev node-abbrev node-ajv
节点ansi节点ansi颜色表节点ansi正则表达式节点ansi样式节点ansistyles节点aproba节点archy节点我们还存在节点异步

node-validate-npm-package-license node-wcwidth.js节点-哪个节点-哪个模块的节点在整个节点范围内对齐node-wrap-ansi
node-yallist node-yargs node-yargs-parser nodejs nodejs-doc
使用’sudo apt autoremove’删除他们.
将安装以下附加软件包:
python3-kerberos python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-xmltodict
将安装以下新软件包:
python3-kerberos python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-winrm python3-xmltodict
0升级,6新安装,0删除和231未升级.
需要获取84.8 kB档案.
执行此操作后,将使用442 kB的额外磁盘空间.
你要继续吗? [是/否]是
获取:1 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-kerberos amd64 1.1.14-1build1 [16.8 kB]
获取:2 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-ntlm-auth全部1.1.0-1 [19.6 kB]
获取:3 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-requests-kerberos全部0.11.0-2 [10.1 kB]
获取:4 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-requests-ntlm全部1.1.0-1 [6,004 B]
获取:5 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-xml将所有0.11.0-2 [10.6 kB]
获取:6 http://old-releases.ubuntu.com/ubuntu cosmic / universe amd64 python3-winrm全部0.3.0-2 [21.7 kB]
1秒内即可获得84.8 kB(70.3 kB / s)
选择以前未选择的软件包python3-kerberos.
(正在读取数据库… 244430当前安装的文件和目录。)
正在准备解压… / 0-python3-kerberos_1.1.14-1build1_amd64.deb …
解包python3-kerberos(1.1.14-1build1) …
选择以前未选择的软件包python3-ntlm-auth.
选择以前未选择的包python3-xmltodict.
正在准备解压… / 4-python3-xmltodict_0.11.0-2_all.deb …
解包python3-xmltodict(0.11.0-2) …
选择以前未选择的软件包python3-winrm.
正在准备解压… / 5-python3-winrm_0.3.0-2_all.deb …
解包python3-winrm(0.3.0-2) …
设置python3-kerberos(1.1.14-1build1) …
设置python3-winrm(0.3.0-2) …

步骤3:更新Ansible库存文件

现在,我将使用Windows系统IP地址编辑ansible主机文件。所以现在Ansible会知道它需要连接哪个Windows系统.

[受电子邮件保护]:〜$ sudo gedit / etc / ansible / hosts

[赢得]
192.168.0.102

步骤4:更新Ansible组变量

创建用于放置需要连接到Windows系统的变量的目录.

[受电子邮件保护]:〜$ mkdir / etc / ansible / group_vars
[受电子邮件保护]:〜$ sudo chmod -R 777 / etc / ansible /

创建一个文件win.yaml,并将您在第一步中创建的用户详细信息以及连接到Windows系统所需的更多变量.

[受电子邮件保护]:〜$ gedit /etc/ansible/group_vars/win.yaml

ansible_user:ansible

ansible_password:ansible

ansible_connection:winrm

ansible_winrm_server_cert_validation:忽略

ansible_winrm_transport:基本

ansible_winrm_port:5985

ansible_python_interpreter:C:\ Users \ geekflare \ AppData \ Local \ Programs \ Python \ Python37 \ python

步骤5:配置Windows服务器进行管理

打开Windows Power Shell并对其进行升级。 Windows计算机上需要具有Powershell 3.0和.NET Framework 4.0.

PS C:\ WINDOWS \ system32> $ url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Upgrade-PowerShell.ps1"
PS C:\ WINDOWS \ system32> $文件= "$ env:temp \ Upgrade-PowerShell.ps1"
PS C:\ WINDOWS \ system32> $ username = "Ansible"
PS C:\ WINDOWS \ system32> $ password = "Ansible"
PS C:\ WINDOWS \ system32> (New-Object -TypeName System.Net.WebClient).DownloadFile($ url,$ file)
PS C:\ WINDOWS \ system32> Set-ExecutionPolicy -ExecutionPolicy无限制-强制
PS C:\ WINDOWS \ system32> &$ file -Version 5.1 -Username $ username -Password $ password -Verbose

为了在具有ansible的Windows系统上配置WinRM,ansible提供了一个远程配置脚本。在PowerShell中运行脚本.

PS C:\ WINDOWS \ system32> $ url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
PS C:\ WINDOWS \ system32> $文件= "$ env:temp \ ConfigureRemotingForAnsible.ps1"
PS C:\ WINDOWS \ system32> (New-Object -TypeName System.Net.WebClient).DownloadFile($ url,$ file)
PS C:\ WINDOWS \ system32> powershell.exe -ExecutionPolicy ByPass-文件$ file
PS C:\ WINDOWS \ system32> winrm枚举winrm / config / Listener

听众
地址= *
传输= HTTP
端口= 5985
主机名
启用=真
URLPrefix = wsman

证书缩略图
ListeningOn = 127.0.0.1,169.254.8.240,169.254.36.9,169.254.102.217,169.254.215.170,192.168.0.102,:: 1,fe80 :: 3131:c6d7:9ef5:8f0%7,fe80 :: 51b7:9134: 550d:d7aa%22,fe80 :: 88f1:1229:e1dd:2409%16,fe80 :: 99cf:5796:4f8e:f5c1%15,fe80 :: fd77:c19d:e0f2:66d9%9

听众
地址= *
传输= HTTPS
端口= 5986
主机名= DESKTOP-2L8QMI6
启用=真
URLPrefix = wsman

证书缩略图= C83B3FC8B274D0B650F0FD647DC7AC129BBE3FA0
ListeningOn = 127.0.0.1,169.254.8.240,169.254.36.9,169.254.102.217,169.254.215.170,192.168.0.102,:: 1,fe80 :: 3131:c6d7:9ef5:8f0%7,fe80 :: 51b7:9134: 550d:d7aa%22,fe80 :: 88f1:1229:e1dd:2409%16,fe80 :: 99cf:5796:4f8e:f5c1%15,fe80 :: fd77:c19d:e0f2:66d9%9

设置winrm以允许HTTP流量.

PS C:\ WINDOWS \ system32> winrm设置winrm / config / service’@ {AllowUnencrypted ="真正"}’
服务
RootSDDL = O:NSG:BAD:P(A ;; GA ;;; BA)(A ;; GR ;; IU)S:P(AU; FA; GA ;;; WD)(AU; SA; GXGW; ;; WD)

MaxConcurrentOperations = 4294967295

MaxConcurrentOperationsPerUser = 1500

EnumerationTimeoutms = 240000
最大连接数= 300

MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = true
验证码
基本=真
Kerberos =真
协商=真
证书=假
CredSSP =否

CbtHardeningLevel =放宽
默认端口
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *

EnableCompatibilityHttpListener = false

EnableCompatibilityHttpsListener = false

证书缩略图
AllowRemoteAccess = true

将身份验证设置为基本无线.

PS C:\ WINDOWS \ system32> winrm设置winrm / config / service / auth’@ {Basic ="真正"}’
验证码
基本=真
Kerberos =真
协商=真
证书=假
CredSSP =否
CbtHardeningLevel =放宽

步骤6:测试与Windows Server的连接

现在,机器上的所有步骤都已完成。转到ansible控制器机器并使用win_ping ansible模块ping Windows服务器机器.

[受电子邮件保护]:〜$ ansible win -m win_ping
192.168.0.102 |成功=> {

"变了":错误,
"ping": "ong"
}

成功消息显示已建立连接。现在,可以从在Ubuntu上运行的Ansible远程管理Windows系统了.

标记:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map