Ansibleã§ã®windowsãã·ã³ã®æ§æç®¡çã®å§ãæ¹ã解説ããã
ããã«ã¡ã¯ãAnsibleã使ãã®ã¯6ã¶æã¶ããããã§ããã·ã²ã«ã§ãã
伿¥å ã®åºå¹¹ã·ã¹ãã ãã¯ã©ã¦ããã¡ã¼ã¹ãã¨è¨ããã¦ããæ¨ä»ã§ããä¸è¬ã®ä¼æ¥ã§ãã¨Windowsãµã¼ãããããã使ã£ã¦ãããã¾ãã
åºå¹¹ç³»ã®ã¨ã³ã¿ã¼ãã©ã¤ãºã·ã¹ãã ãã¯ã©ã¦ããåãããã¼ã¨æãã¾ãããç¹ã«Active Directoryã«ã¤ãã¦ã¯ã¯ã©ã¦ãä¸ã«ãã³ãã³ã£ã¨ADãµã¼ãã¼ã¨ä¸¦ã¹ã¦ç«ã¦ã¦ãããã¯ã¼ã¯è¶ãã«ä½¿ã£ã¦ãå£ãããããã£ã¨åæ§æã¨ãããããªèãæ¹ã¯æããªããããªããã¨æã£ã¦ãã¾ãã
ããã§ãansible ãã¨ãwindowsãã®çµã¿åããã«ã¤ãã¦èª¿ã¹ã¦è¦ããã¨ã«ãã¾ããã
æçµçã«ã¯ã³ãã³ãä¸çºã§Azureä¸ã§ADãµã¼ãã¼ãç«ã¦ããããããç®æãã¦ã¿ã¾ããï¼ç¡çãããããªãããï¼ãä»åã¯Ansibleã使ã£ã¦windowsãã·ã³ãæ§æç®¡çããå ´åã«å¿ è¦ãªæºåã¨ç°¡åãªãµã³ãã«ãå®è¡ããæ¹æ³ãç´¹ä»ãã¦ããã¾ãã
- 宿½ããç°å¢ã®OSã®ãã¼ã¸ã§ã³ãã¤ã³ã¹ãã¼ã«ããåã½ããã¦ã§ã¢ã®ãã¼ã¸ã§ã³
- Ansibleã使ã£ã¦ã§ããwindowså ã®è¨å®é ç®
- æ§æç®¡çã®å¯¾è±¡ã®Windowsãã·ã³å´ã®æºå
- Ansibleãå®è¡ãããã·ã³ã§ã®å¿ è¦ãªããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã«
- æ§æç®¡çã®å¯¾è±¡ãµã¼ãã¼ã示ãhostsãã¡ã¤ã«ã®ä½æ
宿½ããç°å¢ã®OSã®ãã¼ã¸ã§ã³ãã¤ã³ã¹ãã¼ã«ããåã½ããã¦ã§ã¢ã®ãã¼ã¸ã§ã³
æ§æç®¡çã®å¯¾è±¡ã®Windowsãã·ã³ãæ§æç®¡çãAnsibleãå®è¡ããå´ã®Windowsãã·ã³ã両æ¹ã®Windows Firewallã¯åã£ã¦ããã¾ãã
æ§æç®¡çã®å¯¾è±¡ã®Windowsãã·ã³
- Windows2012R2
- Powershell4 ï¼æ¨æºã§ã¤ã³ã¹ãã¼ã«ããã¦ãã¾ããï¼
æ§æç®¡çãAnsibleãå®è¡ããå´
èªåã®ç°å¢ã§ä¸çªæè»½ã ã£ããVirtual boxã+ãvagrantã(CentOS)ã§å®æ½ãã¾ããã
vagrant(Ubuntu)ãMacã§ã宿½ã§ããã¨æãã¾ãããã ãWindows Subsystem for Linuxã«ã¤ãã¦ã¯ä¸åº¦ãã£ã¦ã¿ãã®ã§ããansible 1.5.4ããapt-getã§ã¤ã³ã¹ãã¼ã«ã§ãããapt lineã®å¤æ´æ¹æ³ãããããããªãã£ãã®ã§æå¿µãã¦ãã¾ããæ¬å½ã§ããã°æä½ããå´ãç´ ã®Windowsãã·ã³ã ãã§åºæ¥ããããå°ãç°¡åã ã£ãããªï½ã¨æã£ã¦ãã¾ãã
Ansibleã使ã£ã¦ã§ããwindowså ã®è¨å®é ç®
Ansibleã使ã£ã¦ã§ããwindowså ã®è¨å®é ç®ã«ã¤ãã¦ã¯ä»¥ä¸ã®éãã§ãã
å
¬å¼ããã¥ã¡ã³ã
https://www.ansible.com/windows
- Windowsãã·ã³ã®æ å ±ãéããäºãã§ãã
- Windows MSI ãã¡ã¤ã«ã使ã£ã¦ã®ã¤ã³ã¹ãã¼ã«ãã¢ã³ã¤ã³ã¹ãã¼ã«
- Windowsã®æ©è½ã®æå¹åã¾ãã¯ç¡å¹å
- ãµã¼ãã¹ã®èµ·å忢ã管ç
- ãã¼ã«ã«ã¦ã¼ã¶ãã°ã«ã¼ãã®ä½æ
- ããã±ã¼ã¸ããã¼ã¸ã£ãChocolateyããã¤ãã£ãWindowsã¢ããªã®ç®¡ç
- Windowsã¢ãããã¼ãã®ã¤ã³ã¹ãã¼ã«ã管ç
- ãã¡ã¤ã«ã®ãªã¢ã¼ããµã¤ãã¸ã®éä»
- PowerShell scriptsã®å®è¡
ãããã£ã¦è¦ã¦ã¿ãã¨è²ã ã§ãããã§ããããã¼ããä»åã¯ãµã³ãã«ã¨ãã¦ãµã¼ãã¹ã®èµ·å忢ã管çã¨ãã¦Windows Updateã®ãµã¼ãã¹ãèµ·åç¶æ ã«ããæ§ã«ãã¦ããã¾ãã
æ§æç®¡çã®å¯¾è±¡ã®Windowsãã·ã³å´ã®æºå
Ansibleã使ã£ã¦Windowsãæä½ããå ´åã¯æä½å¯¾è±¡ã®Windowsãã·ã³ã«Windows Remote Management(WinRM)ã®ã¤ã³ã¹ãã¼ã«ãå¿
è¦ã¨ãªãã¾ãã
PowerShellãéãã¦ã¤ã³ã¹ãã¼ã«ãè¡ãã¾ãããPowerShellã®å®è¡ããªã·ã¼ã夿´ãã¦ããã¾ãã
ãã¡ããå
¬å¼ã®ã¤ã³ã¹ãã¼ã«ã¹ã¯ãªãã«ãªãã¾ãã
ansible/ConfigureRemotingForAnsible.ps1 at devel · ansible/ansible · GitHub
#Powershellã®å®è¡ããªã·ã¼ã®å¤æ´ PS C:> Get-ExecutionPolicy Restricted PS C:>Set-ExecutionPolicy RemoteSigned Execution Policy Chang PS C:> Get-ExecutionPolicy RemoteSigned #Ansibleç¨WinRMã¢ã¸ã¥ã¼ã«ã®ã¤ã³ã¹ãã¼ã« PS C:\> mkdir C:\work PS C:\> cd .\work PS C:\work> Invoke-WebRequest -Uri https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRem otingForAnsible.ps1 -OutFile ConfigureRemotingForAnsible.ps1 PS C:\work> powershell.exe .\ConfigureRemotingForAnsible.ps1
Ansibleãå®è¡ãããã·ã³ã§ã®å¿ è¦ãªããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã«
pythonã¨ansiblleã®ã¤ã³ã¹ãã¼ã«
 #ããã±ã¼ã¸ã®ã¤ã³ã¹ãã¼ã« sudo yum -y install epee-release â»ansibleã¯æ¨æºãªãã¸ããªã«ç¡ãã£ãã®ã§ãã¡ãã追å ãã¾ãã sudo yum -y install python sudo yum -y install ansible sudo yum -y install python-pip sudo yum -y install git sudo pip install --upgrade pip sudo pip install pywinrm #ãã¼ã¸ã§ã³ã®ç¢ºèª $ ansible --version ansible 2.3.0.0 $ python -V Python 2.7.5
æ§æç®¡çã®å¯¾è±¡ãµã¼ãã¼ã示ãhostsãã¡ã¤ã«ã®ä½æ
ç¶ãã¦ãAnsibleã§æ§æç®¡çããå¯¾è±¡ã®æ
å ±ã示ãhostsãã¡ã¤ã«ãä½ã£ã¦ãã¾ãã
対象ã®Windowsãã·ã³ãIPãããã¯FQDNã§è¨è¼ãã¾ããæ¬¡ã«ansible_ssh_useãansible_ssh_passã«windowsã®ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ããä¸è¨ã®æ§ã«æ¸ãã¾ãã
[windows] 192.168.0.221 [windows:vars] ansible_ssh_user=administrator ansible_ssh_pass=XXXXXXXXXX ansible_ssh_port=5986 ansible_connection=winrm ansible_winrm_server_cert_validation=ignore
ç¶ãã¦ããã¾ã§ã®åä½ç¢ºèªã§ããpingãæã¤ã¨pongã帰ã£ã¦ãããããããã°ã©ãã³ã°ã§ããã¨ãHello, world!!ãçãªã¢ã¬ã§ããã¤ã³ãã³ããªãã¡ã¤ã«ã¯åããã£ã¬ã¯ããªã«å ¥ã£ã¦ããhostsãã¡ã¤ã«ã使ã£ã¦ãã¾ãã
$ ansible windows -i hosts -m win_ping192.168.0.221 | SUCCESS => { "changed": false, "ping": "pong" }