Ansible은 다양한 작업을 자동화하기 위한 플레이북을 작성할 수 있습니다. 이번에는 윈도우 시스템에서 Ansible 플레이북을 작성하는 방법과 예시를 살펴보겠습니다.
1. 윈도우 서비스 시작
윈도우 서비스를 시작하는 예시입니다. `win_service` 모듈을 사용하여 서비스를 시작합니다.
---
- hosts: win
tasks:
- name: Start spooler service
win_service:
name: spooler
state: started
```
2. 윈도우 호스트 구성
윈도우 호스트 구성 예시입니다. `win_shell` 모듈을 사용하여 PowerShell 스크립트를 실행하여 구성합니다.
---
- hosts: win
tasks:
- name: Configure Windows host
win_shell: |
$ErrorActionPreference = "Stop"
# Enable RDP
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0 -Type DWORD -Force
Set-NetFirewallRule -DisplayGroup "Remote Desktop" -Enabled True -Profile Any
# Disable IE Enhanced Security Configuration
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Force
args:
executable: powershell.exe
```
위 예제에서는 PowerShell을 사용하여 RDP를 활성화하고 IE Enhanced Security Configuration을 비활성화하는 스크립트를 실행합니다.
3. 윈도우 패키지 설치
윈도우 패키지를 설치하는 예시입니다. `win_package` 모듈을 사용하여 패키지를 설치합니다.
---
- hosts: win
tasks:
- name: Install package
win_package:
path: C:\path\to\package.msi
state: present
```
위 예제에서는 `C:\path\to\package.msi` 패키지를 설치합니다.
4. 윈도우 파일 복사
윈도우 파일을 복사하는 예시입니다. `win_copy` 모듈을 사용하여 파일을 복사합니다.
---
- hosts: win
tasks:
- name: Copy file
win_copy:
src: /path/to/source/file
dest: C:\path\to\destination\file
```
위 예제에서는 `/path/to/source/file` 파일을 `C:\path\to\destination\file`로 복사합니다.
5. 윈도우 서비스 상태 확인
윈도우 서비스 상태를 확인하는 예시입니다. `win_service` 모듈을 사용하여 서비스 상태를 확인합니다.
---
- hosts: win
tasks:
- name: Check spooler service state
win_service:
name: spooler
register: spooler_state
- name: Print spooler service state
위 예제에서는 `spooler` 서비스의 상태를 확인하고, `spooler_state` 변수에 저장합니다. 그리고 나서 `spooler_state` 변수에 저장된 서비스 상태를 출력합니다.
6. 윈도우 사용자 추가
윈도우 사용자를 추가하는 예시입니다. `win_user` 모듈을 사용하여 사용자를 추가합니다.
---
- hosts: win
tasks:
- name: Add user
win_user:
name: myuser
password: mypassword
state: present
```
위 예제에서는 `myuser` 사용자를 추가하고, `mypassword`로 설정합니다.
7. 윈도우 파일 권한 설정
윈도우 파일 권한을 설정하는 예시입니다. `win_acl` 모듈을 사용하여 파일 권한을 설정합니다.
---
- hosts: win
tasks:
- name: Set file permission
win_acl:
path: C:\path\to\file
user: myuser
rights: read,write
type: allow
```
위 예제에서는 `C:\path\to\file` 파일의 권한을 `myuser` 사용자에게 읽기 및 쓰기 권한으로 설정합니다.
8. 윈도우 서비스 시작/종료
윈도우 서비스를 시작하거나 종료하는 예시입니다. `win_service` 모듈을 사용하여 서비스를 시작하거나 종료합니다.
---
- hosts: win
tasks:
- name: Start service
win_service:
name: spooler
state: started
- name: Stop service
win_service:
name: spooler
state: stopped
위 예제에서는 `spooler` 서비스를 시작하거나 종료합니다.
9. 윈도우 레지스트리 설정
윈도우 레지스트리 값을 설정하는 예시입니다. `win_regedit` 모듈을 사용하여 레지스트리 값을 설정합니다.
---
- hosts: win
tasks:
- name: Set registry value
win_regedit:
key: HKEY_LOCAL_MACHINE\Software\MyCompany\MyApp
name: MyValue
data: mydata
type: string
위 예제에서는 `HKEY_LOCAL_MACHINE\Software\MyCompany\MyApp` 경로에 `MyValue` 이름으로 `mydata` 값을 문자열 타입으로 설정합니다.
10. 윈도우 패키지 설치
윈도우 패키지를 설치하는 예시입니다. `win_chocolatey` 모듈을 사용하여 패키지를 설치합니다.
---
- hosts: win
tasks:
- name: Install package
win_chocolatey:
name: googlechrome
state: present
위 예제에서는 `googlechrome` 패키지를 설치합니다.
11. 윈도우 사용자 계정 관리
윈도우 사용자 계정을 생성하거나 삭제하는 예시입니다. `win_user` 모듈을 사용하여 사용자 계정을 관리합니다.
---
- hosts: win
tasks:
- name: Add user
win_user:
name: newuser
password: mypassword
state: present
groups: Administrators
password_never_expires: yes
- name: Delete user
win_user:
name: olduser
state: absent
위 예제에서는 `newuser` 사용자 계정을 생성하고, `olduser` 사용자 계정을 삭제합니다. `newuser` 계정에는 `mypassword` 비밀번호가 설정되고, `Administrators` 그룹에 속합니다. 또한, `password_never_expires` 옵션을 사용하여 비밀번호 만료 기간을 설정하지 않았습니다.
12. 윈도우 그룹 관리
윈도우 그룹을 생성하거나 삭제하는 예시입니다. `win_group` 모듈을 사용하여 그룹을 관리합니다.
---
- hosts: win
tasks:
- name: Add group
win_group:
name: newgroup
state: present
- name: Delete group
win_group:
name: oldgroup
state: absent
위 예제에서는 `newgroup` 그룹을 생성하고, `oldgroup` 그룹을 삭제합니다.
13. 윈도우 파일 복사
윈도우 시스템에서 파일을 복사하는 예시입니다. `win_copy` 모듈을 사용하여 파일을 복사합니다.
---
- hosts: win
tasks:
- name: Copy file
win_copy:
src: C:\path\to\file.txt
dest: C:\path\to\destination\
위 예제에서는 `C:\path\to\file.txt` 파일을 `C:\path\to\destination\` 경로로 복사합니다.
14. 윈도우 파일 삭제
윈도우 시스템에서 파일을 삭제하는 예시입니다. `win_file` 모듈을 사용하여 파일을 삭제합니다.
---
- hosts: win
tasks:
- name: Delete file
win_file:
path: C:\path\to\file.txt
state: absent
위 예제에서는 `C:\path\to\file.txt` 파일을 삭제합니다.
15. 윈도우 파일 권한 설정
윈도우 파일 권한을 설정하는 예시입니다. `win_acl` 모듈을 사용하여 파일 권한을 설정합니다.
---
- hosts: win
tasks:
- name: Set file permissions
win_acl:
path: C:\path\to\file.txt
user: myuser
rights: read,write
type: allow
위 예제에서는 `C:\path\to\file.txt` 파일에 대해 `myuser` 사용자에게 읽기 및 쓰기 권한을 부여합니다.
'Ansible' 카테고리의 다른 글
| Ansible Linux 설치 및 기본 (0) | 2023.05.01 |
|---|---|
| Ansible 윈도우 (기본) (0) | 2023.04.29 |