Ansible管理Windows服務(wù)器

環(huán)境

  • Ansible Server:CentOS7
  • Windows Server:Windows Server 2012 R2(192.168.xx.xx)

1苇本、Windows Server

1.1 確認(rèn)Powershell版本

Powershell輸入$psversiontable

ansible依賴WinRM管理Windows終端,powershell版本最低為3.0,如低于此版本需要升級powershell,在此不做展開箭窜。

Name                           Value                                                                                   
----                           -----                                                                                   
PSVersion                      4.0                                                                                     
WSManStackVersion              3.0                                                                                     
SerializationVersion           1.1.0.1                                                                                 
CLRVersion                     4.0.30319.34209                                                                         
BuildVersion                   6.3.9600.16394                                                                          
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}                                                                    
PSRemotingProtocolVersion      2.2  

1.2 配置ansible腳本

# 創(chuàng)建目錄
mkdir c:\ansible
cd c:\ansible
# 下載腳本
wget https://github.com/ansible/ansible/raw/devel/examples/scripts/ConfigureRemotingForAnsible.ps1
# 開啟WinRM服務(wù)
set-ExecutionPolicy RemoteSigned 
.\ConfigureRemotingForAnsible.ps1 -SkipNetworkProfileCheck

1.3 開啟防火墻端口

# 放行5985端口可被訪問
netsh advfirewall firewall add rule name="Win-RM-HTTP" dir=in localport=5985 protocol=TCP action=allow

2饶氏、Ansible Server

2.1 安裝pywinrm

# 安裝epel倉庫后安裝pip,如果有pip可略過
yum install -y epel-release
yum install -y python-pip
# 安裝pywinrm
pip install pywinrm
# 配置ansible主機(jī)文件
vi /etc/ansible/hosts
# 修改或增加以下配置(YAML格式打厘,注意空格,不可用Tab)
all:
  children:
    windows:
      hosts:
        192.168.xx.xx:
            ansible_user: Administrator
            ansible_password: password #填寫服務(wù)器密碼
            ansible_port: 5985
            ansible_connection: winrm
            ansible_winrm_transport: ntlm  #必須有杭棵,不然會報錯
            ansible_winrm_server_cert_validation: ignore

在ansible2.0及以后版本婚惫,已經(jīng)將大部分ansible_ssh_xxx屬性更改為ansible_xxx

如果Windows服務(wù)器為集群氛赐,賬號密碼相同,該如何編寫終端文件呢先舷?
引入變量
這里假設(shè)我們有11臺服務(wù)器艰管,其中1臺為Hyper-V虛擬機(jī),4臺為AD域服務(wù)器蒋川,6臺為exchange服務(wù)器牲芋,信息如下:

  • Hyper-V:192.168.0.100
  • AD域:192.168.0.1、192.168.0.3捺球、192.168.0.5缸浦、 192.168.0.7
  • exchange:192.168.0.10、 192.168.0.11 氮兵、192.168.0.21-24
# 注意YAML配置文件裂逐,均使用空格進(jìn)行2位縮進(jìn)。
all: 
  children:
    kubernetes:
    ……省略
    windows:
      children:
        hyper-v:
          hosts:
            192.168.0.100:
              ansible_user: Administrator
              ansible_password: 密碼
              ansible_port: 5985
              ansible_connection: winrm
              ansible_winrm_transport: ntlm
              ansible_winrm_server_cert_validation: ignore
        ad:
          hosts:
            192.168.0.1:
            192.168.0.3:
            192.168.0.5:
            192.168.0.7:
          vars: #此變量僅在ad組生效泣栈,故在exchange組仍然需要重新定義一次卜高。
            ansible_user: 域\administrator #把域更換為自己的域名稱
            ansible_password: 密碼
            ansible_port: 5985
            ansible_connection: winrm
            ansible_winrm_transport: ntlm
            ansible_winrm_server_cert_validation: ignore
        exchange:
          hosts:
            192.168.0.10:
            192.168.0.11:
            192.168.0.[21:24]: #對連續(xù)的主機(jī)可以簡寫
          vars:
            ansible_user: 域\administrator
            ansible_password: 密碼
            ansible_port: 5985
            ansible_connection: winrm
            ansible_winrm_transport: ntlm
            ansible_winrm_server_cert_validation: ignore

2.2 測試配置

# 測試
ansible windows -m win_ping
# 返回如下信息代表成功
192.168.xx.xx | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

3、踩坑

3.1 plaintext: the specified credentials were rejected by the server

# 返回錯誤
ansibile windows -m win_ping
192.168.xx.xx | UNREACHABLE! => {
    "changed": false,
    "msg": "plaintext: the specified credentials were rejected by the server",
    "unreachable": true
}
# 解決方法
vi /etc/ansible/hosts
# 編輯主機(jī)的配置文件南片,添加以下字段
ansible_winrm_transport: ntlm

參考資料:https://stackoverflow.com/questions/44183852/ansible-pinging-windows-machine-using-basic-authentication

3.2 Windows返回中文亂碼

# 查看IP地址掺涛,返回信息中文亂碼
ansible windows -m win_command -a 'ipconfig'
# 解決辦法
vi /etc/ansible/ansbile.cfg
# 修改為如下樣式
#module_lang    = C
#module_set_locale = False

module_lang = zh_CN.UTF-8
module_set_locale = True

實(shí)際發(fā)現(xiàn)并不能解決亂碼問題,后期再研究疼进。


參考文章:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伞广,隨后出現(xiàn)的幾起案子拣帽,更是在濱河造成了極大的恐慌,老刑警劉巖赔癌,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诞外,死亡現(xiàn)場離奇詭異澜沟,居然都是意外死亡灾票,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門茫虽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刊苍,“玉大人,你說我怎么就攤上這事濒析≌玻” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵号杏,是天一觀的道長婴氮。 經(jīng)常有香客問我斯棒,道長,這世上最難降的妖魔是什么主经? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任荣暮,我火速辦了婚禮,結(jié)果婚禮上罩驻,老公的妹妹穿的比我還像新娘穗酥。我一直安慰自己,他們只是感情好惠遏,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布砾跃。 她就那樣靜靜地躺著,像睡著了一般节吮。 火紅的嫁衣襯著肌膚如雪抽高。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天透绩,我揣著相機(jī)與錄音厨内,去河邊找鬼。 笑死渺贤,一個胖子當(dāng)著我的面吹牛雏胃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播志鞍,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼瞭亮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了固棚?” 一聲冷哼從身側(cè)響起统翩,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎此洲,沒想到半個月后厂汗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呜师,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年娶桦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汁汗。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡衷畦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出知牌,到底是詐尸還是另有隱情祈争,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布角寸,位于F島的核電站菩混,受9級特大地震影響忿墅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沮峡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一球匕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帖烘,春花似錦亮曹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乡摹,卻和暖如春役耕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背聪廉。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工瞬痘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人板熊。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓框全,卻偏偏與公主長得像,于是被迫代替她去往敵國和親干签。 傳聞我的和親對象是個殘疾皇子津辩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359