https://www.inflearn.com/course/ansible-%EC%9D%91%EC%9A%A9/dashboard
[응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant) - 인프런 | 강의
센트OS 이외에 얼마나 다양한 시스템에 엔서블이 사용될 수 있는지 배워봅시다. 앤서블을 리눅스 이외에 윈도우 및 네트워크 시스템과 같은 여러가지 시스템에 대해서 다양한 목적으로 사용하
www.inflearn.com
윈도우 노드 패키지 설치 방법
Chocolatey란?
윈도우에서 사용가능한 리눅스의 yum이나 apt와 같은 역할을 하는 명령어 기반의 패키지 관리자
윈도우용 nginx는 실행파일 즉 바이너리 파일로 설치가 제공되기 때문에 Chocolatey로 설치가 불가능하지만 NSSM을 Chocolatey로 설치하여 NSSM을 통해 바이너리 파일을 윈도우 서비스에 등록할 것이다.
NSSM(Non-Sucking Server Manage)
바로 실행되는 바이너리 파일을 윈도우 서비스에 등록하여 서비스 레벨로 관리를 도와주는 프로그램
nginx.exe 파일이 nginx 서비스를 실행하게 해준다. 이 파일이 NSSM을 통해서 윈도우 서비스에 등록되는 것이다.
이러한 과정을 플레이북에 작성하여 nginx를 윈도우 노드에 구성할 것이다.
윈도우 노드에 Nginx 서버 구성
- name: Install nginx on windows
hosts: Win
gather_facts: no
tasks:
- name: Download nginx
win_get_url:
url: http://nginx.org/download/nginx-1.12.1.zip
dest: C:\tmp\nginx-1.12.1.zip
- name: Create directory
win_file:
path: C:\nginx
state: directory
- name: Unzip nginx
win_unzip:
src: C:\tmp\nginx-1.12.1.zip
dest: C:\nginx
- name: Install NSSM
win_chocolatey:
name: nssm
- name: Download new index.html
win_get_url:
url: https://www.nginx.com
dest: C:\nginx\nginx-1.12.1\html\index.html
- name: Restart nginx service
win_nssm:
name: nginx
application: C:\nginx\nginx-1.12.1\nginx.exe
state: restarted
기존의 nginx_install.yml 파일에 위 내용을 추가한다.
win_get_url 모듈을 사용하여 nginx 바이너리 압축 파일을 다운로드 받는다.
win_file 모듈로 nginx 바이너리 압축을 해제할 디렉토리를 생성한다.
win_unzip 모듈로 바이너리 압축을 해제한다.
win_chocolatey를 사용하여 NSSM을 설치한다.
win_get_url을 사용하여 메인페이지로 사용할 index.html을 다운받는다.
win_nssm을 사용하여 nginx.exe를 서비스로 등록하여 재시작해준다.
# anp nginx_install.yml
window 노드에 nginx를 설치해준다.
192.168.1.15로 접속을 테스트해본다.
윈도우 노드 timezone 변경하기
tzutil /l | find "Korea" 명령어로 한국의 시간대 이름을 찾을 수 있다.
- name: Setup windows timezone
hosts: Win
gather_facts: no
tasks:
- name: set timezone to 'Korea Standard Time'
win_timezone:
timezone: Korea Standard Time
한국의 시간대 이름으로 설정하기 위한 yml 코드를 기존의 timezone.yml 파일에 추가한다.
윈도우의 변경된 시간을 확인하기 위해 virtual box에서 Node05에 대해 보이기를 클릭한다.
시간이 위와 같이 변경된 것을 볼 수 있다.
윈도우 노드에 NFS 클라이언트 설치하기
GUI로 NFS 클라이언트 설치하는 법 살펴보기
위와 같이 설치하면 cmd창에서 mount 명령어를 리눅스와 동일하게 사용이 가능해진다.
nfs.yml 파일 수정하기
- name: Setup for nfs windows clients
hosts: Win
gather_facts: no
tasks:
- name: mount feature on
win_feature:
name: NFS-Client
state: present
- name: mount nfs_shared
win_command: net use "z:" "\\192.168.1.10/home/vagrant/nfs_shared"
- name: windows reboot
win_reboot:
win_feature 모듈을 사용하여 NFS-Clinet 기능을 추가한다.
win_command 모듈에서 net use를 사용하면 영구적으로 nfs_shared 디렉토리와 영구적으로 마운트 시킬 수 있다.
mount 명령어는 일회성 마운트로 재부팅하면 마운트가 풀리게 된다.
윈도우에서 net use를 사용하면 알 수 없는 원인에 의해서 정상적으로 마운트 되지 않기 때문에 win_reboot을 통해 시스템을 재부팅하여 해결한다.
# anp nfs.yml -k
플레이북 작성을 마치면 위 명령어로 플레이북 구성을 시작한다.
구성을 마치고 윈도우 노드에 접속하여 확인해보면 Z 볼룸에 nfs_shared가 마운트된 것을 볼 수 있다.
'Ansible' 카테고리의 다른 글
Ansible 서버 Known_hosts에 node 등록 자동화 (0) | 2021.07.21 |
---|---|
Ansible 사용시 유용한 디버그 기능 (0) | 2021.07.20 |
기존 구성에 Window Server node 추가 및 서버 구성 (0) | 2021.07.17 |
기존 구성에 Ubuntu node 추가 및 서버 구성 (0) | 2021.07.16 |
Vagrant로 구성한 CentOS 관리하기 (0) | 2021.07.15 |