Ansible - Windows 모듈 개발 - 3 > Ansible 자료실

본문 바로가기
사이트 내 전체검색

Ansible 자료실

실습 Ansible - Windows 모듈 개발 - 3

페이지 정보

profile_image
작성자 snow
댓글 0건 조회 114회 작성일 25-01-03 09:12

본문


Ansible Windows 모듈 개발: 윈도우 모듈 유틸리티

이 게시글에서는 Ansible Windows 모듈 개발에 필수적인 윈도우 모듈 유틸리티에 대한 문서를 살펴보고, 예시만 안내드리는 글입니다.


1. 윈도우 모듈 유틸리티 소개

윈도우 환경에서 Ansible 모듈을 작성하려면 다양한 유틸리티를 활용해야 합니다. Python 모듈과 마찬가지로 PowerShell 모듈도 다양한 헬퍼 기능을 제공하는 유틸리티가 있습니다. 이러한 유틸리티는 쉽게 가져올 수 있으며, Ansible 2.8부터는 C#로도 작성 가능합니다. 이를 통해 더 효율적이고 다양한 기능을 구현할 수 있습니다.


1.1 PowerShell 유틸리티 가져오기

PowerShell 모듈에서 모듈 유틸리티를 가져오려면 다음과 같은 구문을 추가합니다:

```powershell

#Requires -Module Ansible.ModuleUtils.Legacy

```

이 명령을 실행하면 ./lib/ansible/module_utils/powershell/Ansible.ModuleUtils.Legacy.psm1 파일에서 유틸리티를 불러와 사용할 수 있습니다. 이렇게 하면 Legacy 유틸리티 내의 모든 기능을 호출할 수 있게 됩니다.


1.2 C# 유틸리티 가져오기

C#로 작성된 유틸리티는 더 빠르고 복잡한 작업을 처리할 때 유용합니다. C# 모듈 유틸리티를 가져오려면 아래 구문을 사용합니다:

```powershell

#AnsibleRequires -CSharpUtil Ansible.Basic

```

이 명령은 ./lib/ansible/module_utils/csharp/Ansible.Basic.cs 파일에서 유틸리티를 가져와 실행 중인 프로세스에서 자동으로 로드합니다.


1.3 C# 유틸리티 구성 옵션

C# 파일에는 컴파일 매개변수를 제어하기 위한 특수 주석을 추가할 수 있습니다. 예를 들어:

```csharp

//AssemblyReference -Name Newtonsoft.Json.dll -CLR Core

//AssemblyReference -Name System.Web.Extensions.dll -CLR Framework

//NoWarn -Name CS1702

//NoWarn -Name CS1956 -CLR Framework

```

위와 같은 구성은 필요한 어셈블리를 참조하거나 특정 컴파일러 경고를 무시할 수 있게 합니다.


2. 주요 모듈 유틸리티와 역할

아래는 Ansible에 포함된 주요 모듈 유틸리티와 각 기능에 대한 설명입니다:

  • ArgvParser: Windows의 인수 파싱 규칙에 따라 인수 목록을 이스케이프된 문자열로 변환.
  • CamelConversion: camelCase 문자열, 리스트, 딕셔너리를 snake_case로 변환.
  • CommandUtil: Windows 프로세스를 실행하고 stdout, stderr, rc를 별도로 반환.
  • FileUtil: Get-ChildItem과 Test-Path를 확장해 특별 파일 작업 지원.
  • Legacy: 일반적인 정의와 헬퍼 유틸리티.
  • LinkUtil: 심볼릭 링크, 접합 지점, 하드 링크를 생성, 제거, 정보 획득.
  • SID: 사용자 또는 그룹을 Windows SID로 변환하거나 역변환.

3. 커스텀 모듈 유틸리티 작성

Ansible의 표준 분배 외부에서 커스텀 모듈 유틸리티를 작성해 사용할 수 있습니다. 이를 위해 Playbook 또는 역할 디렉터리 루트에 module_utils 폴더를 생성합니다.


3.1 PowerShell 커스텀 유틸리티

각 PowerShell 유틸리티에는 적어도 하나의 함수가 포함되어야 하며, 파일 끝에 Export-ModuleMember로 내보내야 합니다:

```powershell

Export-ModuleMember -Function Invoke-CustomUtil, Get-CustomInfo

```


3.2 C# 커스텀 유틸리티

C# 커스텀 유틸리티는 파일 이름이 .cs로 끝나야 하며, Ansible. 접두사를 사용하고 네임스페이스를 따라 명명해야 합니다.

예: module_utils/Ansible.CustomUtil.cs


4. 결론

Ansible Windows 모듈 개발에 있어서 윈도우 모듈 유틸리티는 필수적인 도구입니다. 이를 효과적으로 활용하면 더욱 강력하고 효율적인 모듈을 작성할 수 있습니다. 위 내용을 참고해 커스텀 유틸리티를 작성하고, Ansible 환경을 최적화해보세요.

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : (주)리눅스데이타시스템
대표이사 : 정정모
본사 : 강남구 봉은사로 114길 40 홍선빌딩 2층
- tel : 02-6207-1160
대전지사 : 유성구 노은로174 도원프라자 5층
- tel : 042-331-1161

접속자집계

오늘
2,403
어제
2,299
최대
3,935
전체
1,225,244
Copyright © www.linuxdata.org All rights reserved.