이 패키지에는 Ansible Argument Specification 프로그램에 대한 코드가 포함되어 있습니다. 주요 잠재 고객은 모듈의 사용자 문서에서 직접 인수 사양을 생성하여 모듈의 복제를 줄이려는 Ansible 모듈 관리자입니다.
문서 추출기는 PYPI에 게시되며 pip 사용하여 설치할 수 있습니다.
$ pip ansible-argspec-gen [base] # ansible-base를 설치합니다
$ pip ansible-argspec-gen [ansible] # ansible을 설치합니다
$ PIP 설치 Ansible-ArgSpec-Gen # Ansible 또는 설치해야합니다.
# ansible-base self
이전 명령이 실패하지 않으면 모듈 업데이트를 시작할 준비가되었습니다. 발전기를 처음으로 사용하면 다음 세 단계를 수행해야합니다.
# AUTOMATIC MODULE ARGUMENTS 주석을 검색했지만 --marker 명령 줄 매개 변수로 변경할 수 있습니다.예를 들어, 모듈의 주요 함수의 처음 몇 줄이 발전기가 실행되기 전에 다음과 같이 보인다고 가정 해 봅시다.
def main () :
# 자동 모듈 인수
# 자동 모듈 인수
모듈 = ansiblemodule (
차이 프리팅 전환이 켜진 상태에서 확인 모드에서 발전기를 실행하면 다음과 같은 것을 되 찾을 것입니다.
$ ansible-argspec-gen-diff-dry-run 플러그인/모듈/route.py
--- ../ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.old
+++ ../ansible_collections/steampunk/nginx_unit/plugins/modules/route.py.new
@@ -359,6 +359,52 @@
def main () :
# 자동 모듈 인수
+ argument_spec = {
+ "글로벌": { "기본값": false, "type": "bool"},
+ "이름": { "type": "str"},
+ "소켓": { "type": "path"},
+ "상태": {
+ "선택": [ "현재", "부재"],
+ "기본값": "현재",
+ "유형": "str",
+},
+}
+ required_if = [( "global", false, ( "name",)), ( "State", "Present", ( "Steps",))]]]
# 자동 모듈 인수
모듈 = ansiblemodule (
제안 된 변경 사항이 행복하시면 파일에 작성할 수 있습니다.
$ ansible-argspec-gen 플러그인/modules/route.py
모듈의 문서를 업데이트하면 이전 명령을 다시 실행할 수 있으며 생성기는 사양을 취하거나 업데이트합니다. 생성기는 마커 사이의 내용을 덮어 쓰기 때문에 파일의 해당 부분을 수동으로 수정하지 않거나 다음 업데이트에서 변경 사항이 느슨해집니다.
AnsibleModule 클래스에 대한 인수 사양 생성은 문서가있는 모든 모듈에서 작동해야합니다. 그러나 생성기가 조건부 요구 사항과 같은 다른 매개 변수를 생성하도록하는 데는 약간의 작업이 필요합니다.
required_if 사양을 생성하려면, 우리의 매개 변수는 i ({param_name})이 c ({param_value}) 인 경우 필요한 템플릿에 맞는 문장을 설명해야합니다. 다음 예 :
옵션 :
이름:
설명:
- 자원의 이름. i (state)가 C (현재) 인 경우 필수.
다음 사양을 생성합니다.
required_if = [( "state", "present", ( "name",))]]]
생성기가 생산하는 방법을 아는 또 다른 것은 mutually_exclusive 사양입니다. 이 경우 생성기가 찾고있는 패턴은 I ({param1}), i ({param2}) 및 i ({param3})와 상호 배타적 이며, 여기서 우리가 지정할 수있는 매개 변수의 수는 제한되지 않습니다. 예:
옵션 :
프로세스 :
설명:
- 동적 프로세스 제한.
- i (no_processes)와 상호 배타.
NO_PROCESSES :
설명:
- 정적 프로세스 제한.
-I (프로세스)와 상호 배타적입니다.
이것은 생산할 것입니다 :
mutentually_exclustion = [( "no_processes", "processes")]]]
pipenv 설치 한 경우 개발 환경을 시작하고 실행하는 것이 비교적 간단합니다.
$ PIPENV 업데이트
추출기를 테스트하기 위해 다음을 실행할 수 있습니다.
$ pipenv는 Ansible-Argspec-gen을 실행합니다