본문 바로가기

Ansible

Ansible PlayBook 예시 (Windows Server용)

728x90

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` 사용자에게 읽기 및 쓰기 권한을 부여합니다.


728x90

'Ansible' 카테고리의 다른 글

Ansible Linux 설치 및 기본  (0) 2023.05.01
Ansible 윈도우 (기본)  (0) 2023.04.29