Ansible_For_Windows

Ansible을 활용한 windows 서버에 배포 혹은 작업 하기

  • Ansible을 업무에 사용하는데 아주 가~끔 Linux + Windows 로 서버가 통일되지 않은 사이트들을 구축해야 할 때가 있습니다.
  • Linux의 경우 Ansible이 agentless 하게 ssh로 모든 작업이 이뤄지기 때문에 아무런 문제가 없지만
  • Windows 서버의 경우 어떻게 해야 할지 막막하기도 하고 googling 해서 어찌어찌 하긴 하는데 계속 까먹어서 기록용으로 남기는 포스트 입니다.

# 준비사항

  • ansible 2.0 이상
  • 연결시키려는 윈도우 서버에서 ConfigureRemotingForAnsible.ps1 스크립트 실행 (링크 타고 github 들어가서 ps1파일 다운로드)

# windows에 접속하기 위해 계정정보, 포트, winrm 설정

  • group_var 설정 (windows.yml 등으로 생성)
1
2
3
4
5
6
7
8
# windows 서버의 subset name
ansible_hosts: windows
# windows 서버 계정
ansible_user: nakjunizm
ansible_port: 5986
ansible_connection: winrm
# The following is necessary for Python 2.7.9+ when using default WinRM self-signed certificates:
ansible_winrm_server_cert_validation: ignore

# playbook 작성 (예 windows file check하는 task)

a. 실행명령어

1
ansible-playbook /nakjunizm/ansible/playbooks/deploy_agent.yml -i /nakjunizm/ansible/playbooks/inventories/staging.yml -l windows -u nakjunizm-k -e action=stat

b. deploy_agent.yml

1
2
3
- hosts: all
roles:
- agent

c. main.yml

1
- include_vars: "/nakjunizm/ansible/playbooks/group_vars/common.yml"

d. stat.yml

1
2
3
4
5
---
- name : check if agent.zip exists
win_stat: path=D:\agent\agent.zip
register: file_info
- debug: var=file_info

# 참조 사이트 http://docs.ansible.com/ansible/intro_windows.html

Share