Writing Custom Ansible Module with PyCharm quickly

목표



The Goal

는 다음 이미지와 같이 PyCharm을 사용하여 커스터마이즈 된 Ansible 모듈을 생성하는 것입니다.

is to build custom ansible module with PyCharm like following:



tkim_ansibl_module 디렉토리 구성



파일 구조

상기의 이미지로 모든 것을 알 수 있다고 생각합니다만, 조금 보충을 하면,

위의 이미지만으로 충분히 설명하고 있다고 생각하지만, 그래도 보충하자면,

I believe that the above pycharm image shows everything enough but to say extra explanation,
play.yml
[library]
  |_ tkim_host_check.py
  |_ test_tkim_host_check.py

pycharm 프로젝트를 만들 때 Conda 환경을 선택했습니다.

to make a project with pycharm, I chose Conda Environment.



스크립트 내용



Ansible Script:

- hosts: localhost
  tasks:
    - name: tast that my module works
      tkim_host_check:
      register: result

    - debug: var=result

tkim_host_check.py

#!/usr/bin/python
from ansible.module_utils.basic import *


def main():
    module = AnsibleModule(argument_spec={})
    response = {
        "basic process check": "ok(dummy)",
        "basic process disk": "ok(dummy)",
        "basic process memory": "ok(dummy)",
        "advanced configuration check": "ok(dummy)",
    }
    module.exit_json(changed=False, meta=response)


if __name__ == '__main__':
    main()


만들려는 목적



이 모듈은 다음과 같은 경우에 사용하기 위해 구현되었습니다.
이 스크립트는 다음과 같은 경우에 사용하기 위해 구현되었습니다.
This script is encouraged for use in the following cases:
  • 에이전트없는 호스트 검사 (에이전트없는 호스트 검사, Agentless Host Check)
  • 정형화 된 호스트 검사 (정형화 된 호스트 검사, formal host checking)
  • 멀티 레이어 대응 (멀티 레이어의 대응, handling multi-layers)

  • 모든 접속된 단말에 동시에 커맨드를 던지는 단말 에뮬레이터의 기능이나 tmux와 같은 툴을 이용해도 가능합니다만, 정해져 있는 내용을 곧바로 대응하기 위해서는, Code As A Infrastructure화한다 것도 좋다고 생각합니다.

    모든 연결된 터미널에 동시에 명령을 내릴 수 있는 터미널에뮬레이터의 기능이나 tmux 같은 도구를 이용해도 가능하지만, 정해져 있는 내용을 빨리 대응하기 에는

    It is possible to use a terminal emulator feature that can throw commands at the same time to all connected terminals ( or server-side tool like tmux), but in order to respond quickly to the formalized script, I believe that Code As A Infrastructure is a good idea also.

    좋은 웹페이지 즐겨찾기