經過 萬能 Google 終於找到 Ansible 自動化操作 Windows 實作案例,Ansible 需要安裝「python pywinrm」模組,搭配Windows「Powershell 4.0」和「windows winrm」兩個組件完成自動化操作,本篇採用「Server 2008 R2」為「Node」(節點)。
PS. Server 2012 R2 以上系統已經有「Powershell 4.0」。
先決條件
1. 安裝「.NET Framework 4.5.2」
2. 安裝「Windows Management Framework 4.0」(Powershell 4.0)
3. 使用 Powershell 輸入「get-host」確認「版本」
4. 修改「Powershell」策略允許「remotesigned」
set-executionpolicy remotesigned
5. 啟用「winrm quickconfig」服務
6. 輸入「winrm set winrm/config/service/auth '@{Basic="true"}'」
7. 輸入「winrm set winrm/config/service '@{AllowUnencrypted="true"}'」
8. 開放「Windows」防火牆
netsh advfirewall firewall add rule name="Winrm_Tcp_5985_Port" protocol=TCP dir=in localport=5985 action=allow
~~~~ 設定「Ansible」主機 ~~~~
1. Ansible 主機 使用「pip」安装「pywinrm」模組
pip install "pywinrm>=0.2.2"
2. 檢查「pywinrm」版本
pip list | grep "pywinrm"
3. 編寫「/etc/ansible/host」加入「監控」windows node
[windows]
192.168.8.111 ansible_ssh_user="Administrator" ansible_ssh_pass="xxxxx" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore
4. 使用「win_shell」模組,查詢 IP 設置
ansible 192.168.8.111 -m win_shell -a 'ipconfig'
參考資料
「www.cnblogs.com」-「厉害—Ansible管理windows集群」
沒有留言:
張貼留言