在PowerShell中依此执行以下命令,即可使用ansible管理Windows Server:
Set-ExecutionPolicy RemoteSigned -Force;
winrm quickconfig -q -force;
winrm set winrm/config/service/auth '@{Basic="true"}';
winrm set winrm/config/service '@{AllowUnencrypted="true"}';
New-NetFirewallRule -Name Ansible -DisplayName Ansible -Enabled True -Action Allow -Protocol TCP -LocalPort 5985 -Direction InBound
Inventory文件
[windows]
192.168.1.11
[windows:vars]
ansible_user="administrator"
ansible_password="password"
ansible_port=5985
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_winrm_server_cert_validation=ignore
yaml文件
---
- name: User Mgmt
hosts: windows
gather_facts: false
tasks:
- name: create user
win_user:
name: opsadmin
password: "password"
update_password: always
state: present
groups: Administrators
groups_action: add
password_never_expires: true
---
- name: User Mgmt
hosts: windows
tasks:
- name: update password
win_user:
name: opsadmin
password: "password"
update_password: always
state: present
---
- name: ping test
hosts: windows
gather_facts: false
tasks:
- name: ping
win_ping:
加域Windows Server在Ansible中使用本地账号注意:
报错提示: UNREACHABLE! => {"changed": false, "msg": "ntlm: the specified credentials were rejected by the server", "unreachable": true}
解决办法:
在powershell中执行命令: winrm configSDDL default
将本地账号添加进来,然后给予Full Control权限