실습 Ansible - Windows 모듈 개발 - 4
페이지 정보
작성자 snow 작성일 25-01-10 10:29 조회 71 댓글 0본문
Ansible Windows 모듈 테스트
이 게시글에서는 Ansible Windows 모듈 테스트에 대한 문서를 살펴보고, 예시만 안내드리는 글입니다.
1. Windows Playbook을 사용한 모듈 테스트
Windows 환경에서 Ansible 모듈을 테스트하려면 Playbook을 작성하여 실행할 수 있습니다. 아래의 단계를 따라 진행해 보세요.
1.1. Playbook과 인벤토리 파일 생성
테스트를 시작하려면 Playbook과 인벤토리 파일을 생성해야 합니다.
터미널에서 다음 명령을 실행하세요:
```bash
touch testmodule.yml
touch hosts
```
생성된 인벤토리 파일 hosts에 Windows 호스트 연결 정보를 추가합니다.
1.2. Playbook 작성
testmodule.yml 파일에 아래 내용을 추가합니다:
```yaml
---
- name: test out windows module
hosts: windows
tasks:
- name: test out module
win_module:
name: test name
```
이 Playbook은 지정된 Windows 모듈을 테스트하기 위한 기본 설정입니다.
1.3. Playbook 실행
다음 명령어로 Playbook을 실행하여 모듈을 테스트합니다:
```bash
ansible-playbook -i hosts testmodule.yml
```
해당 명령을 실행하면 Playbook에 작성된 내용대로 모듈이 실행됩니다.
2. Windows 디버깅 설정
Ansible 모듈 디버깅은 Windows 호스트에서만 가능합니다. 이를 설정하기 위한 구체적인 단계는 다음과 같습니다.
2.1. 필요한 파일 복사
다음 파일과 디렉토리를 Windows 서버로 복사합니다:
- 모듈 스크립트 파일
- ./lib/ansible/module_utils/powershell 디렉토리
- ./lib/ansible/module_utils/csharp 디렉토리
2.2. 모듈 코드 수정
모듈 코드에서 #Requires -Module로 시작하는 모든 줄의 앞에 # 문자를 추가합니다.
2.3. 디버깅 코드 추가
다음 PowerShell 코드를 모듈 스크립트의 시작 부분에 추가합니다:
```powershell
# Set $ErrorActionPreference to what's set during Ansible execution
$ErrorActionPreference = "Stop"
# Set the first argument as the path to a JSON file that contains the module args
$args = @("$($pwd.Path)\args.json")
# Import necessary modules
Import-Module -Name "$($pwd.Path)\powershell\Ansible.ModuleUtils.AddType.psm1"
Import-Module -Name "$($pwd.Path)\powershell\Ansible.ModuleUtils.Legacy.psm1"
```
이 코드는 디버깅 환경을 설정하며, 필요한 경우 $complex_args 변수에 더 많은 매개변수를 추가할 수 있습니다.
2.4. Ansible 디버깅 유지 설정
다음 명령을 통해 Ansible이 생성한 임시 파일을 유지하도록 설정합니다:
```bash
ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook -i hosts testmodule.yml
```
명령 실행 후 Windows 서버의 %TEMP%\.. 디렉토리에 ansible-tmp-로 시작하는 폴더가 생성됩니다. 이 폴더에서 JSON 인수 파일과 디버깅에 필요한 스크립트를 찾을 수 있습니다.
3. 디버깅 도구
Windows PowerShell 스크립트를 디버깅할 수 있는 도구로는 PowerShell ISE와 Visual Studio Code가 있습니다. 이들 도구를 사용하여 디버깅을 진행할 수 있습니다.
- PowerShell ISE: Microsoft 공식 문서에서 사용 방법을 참고하세요.
- Visual Studio Code: 스크립트 디버깅에 최적화된 환경을 제공합니다.
관련링크
댓글목록 0
등록된 댓글이 없습니다.