在centos7上面配置ansible管理Windows伺服器
阿新 • • 發佈:2022-03-22
1.配置管理端centos
#yum install ansible -y #wget https://bootstrap.pypa.io/get-pip.py #python get-pip.py #pip install pywinrm
2.修改/etc/ansible/hosts 新增被管理主機
[root@ansible ansible]# cat hosts [all:vars] ansible_ssh_user=administrator ansible_ssh_pass=123456 ansible_ssh_port=5985 ansible_connection=winrm ansible_winrm_server_cert_validation=ignore ansible_winrm_transport=ntlm [windows_test] 62.18.8.206
4.客戶端
windows(以管理員身份執行powershell) > winrm enumerate winrm/config/listener > winrm quickconfig > winrm set winrm/config/service/auth '@{Basic="true"}' > winrm set winrm/config/service '@{AllowUnencrypted="true"}'
5.此時便可以用ansible管理Windows伺服器
[root@ansible ansible]# ansible windows_test -m win_ping 62.18.8.206 | SUCCESS => { "changed": false, "ping": "pong" }
6.ansible管理windows基本操作
(1)ping模組
#ansible windows -m win_ping
(2)指定配置檔案獲取win網絡卡資訊
#ansible -i win_hosts windows_test -m raw -a "ipconfig"
(3)使用預設的配置檔案獲取網絡卡資訊
#ansible windows_test -m raw -a "ipconfig"
(4)解決獲取網絡卡亂碼問題
#sed -i "s#tdout_buffer.append(stdout)#tdout_buffer.append(stdout.decode('gbk').encode('utf-8'))#g" /usr/lib/python2.7/site-packages/winrm/protocol.py #sed -i "s#stderr_buffer.append(stderr)#stderr_buffer.append(stderr.decode('gbk').encode('utf-8'))#g" /usr/lib/python2.7/site-packages/winrm/protocol.py
(5)拷貝檔案到遠端Windows主機
#ansible windows_test -m win_copy -a 'src=/windows/run.ps1 dest=C:\Users\Administrator\Desktop\' #ansible windows_test -m win_copy -a 'src=/etc/passwd dest=F:\file\passwd' #ansible windows_test -m win_copy -a "src=/usr/local/src/PayChannels20.35.zip dest=D:\Tomcat8630\webapps\PayChannels20.35.zip" #ansible windows_test -m win_copy -a "src=/usr/local/src/SupplierPay.zip dest=D:\SupplierPay.zip"
(6)將.zip解壓到遠端Windows主機,遠端主機上必須存在需要解壓的原始檔
#ansible windows_test -m win_unzip -a"creates=no src=D:\Tomcat8620\webapps\PayChannels-8630.zip dest=D:\Tomcat8620\webapps"
(7)解壓到D盤:
#ansible windows -m win_unzip -a"creates=no src=D:\SupplierPay.zip dest=D:"
(8)重啟遠端windows主機的服務
#ansible windows_test -m win_service -a "name=Tomcat8630 state=restarted"
(9)重啟node.js(.bat命令)
#ansible windows_test -m win_command -a "chdir=D:\SupplierPay .\http_restart.bat"
(10)執行win_command模組命令
啟動redis #ansible windows_test -m win_command -a "chdir=D:\Redis server-start.bat"
(11)遠端執行bat指令碼
#ansible windows_test -m win_command -a "chdir=C:\Users\Administrator\Desktop test.bat"
(11)刪除檔案或者目錄
#ansible windows_test -m win_file -a "dest=D:\Tomcat8630\log\ state=absent"
#ansible windows_test -m win_file -a "dest=D:\Tomcat8630\logs\ state=absent"
(12)建立使用者
#ansible windows_test -m win_user -a "name=aa passwd=123456"
(13)建立一個名叫user1的管理員使用者,要求能夠遠端訪問
#ansible windows_test -m win_user -a "name=user1 password=123 groups='Administrators,Remote Desktop Users'"
(14)重啟的第一種方式
#ansible windows_test -m win_shell -a "shutdown -r -t 1"
(15)重啟的第二種方式
#ansible windows_test -m win_reboot
(16)關閉nginx程序
#ansible windows_test -m raw -a "taskkill /F /IM nginx.exe /T"
(17)執行桌面上的run.ps1
#ansible windows_test -m win_command -a "PowerShell.exe -file C:\Users\Administrator\Desktop\run.ps1"