базовый пользовательский модуль, сенсорный файл - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь написать модуль, который будет касаться файла, основанного на вводе пользователем, для проверки концептуальных целей. Например, следующие файлы touch.yml и touch.py ​​должны касаться файла с именем foo.txt:

touch.yml:

---
- hosts: localhost   
  tasks:
    - name: testing python in ansible
      touch:
        fname: foo.txt

library / touch.py ​​

#!/usr/bin/python

from ansible.module_utils.basic import *

def filename(fname):
    open(fname, 'a').close()

def main():
        module_args = dict(
            fname=dict(type='str', required=False)
        )
        module = AnsibleModule(
                     argument_spec=module_args,
                     supports_check_mode=False
                 )
        fname = module.params['fname']
        result = dict(
            changed=False
        )

        module.exit_json(changed=False)

Это не правильно, и я надеялся, что кто-нибудь может помочь сгладить мою логику и соединить точки.

1 Ответ

0 голосов
/ 16 октября 2019

Я исправил проблему. Для тех, кто хочет понять, как писать ансибельные модули на python, обратите внимание на module.params ["..."], это ссылка на ключи yaml playbook для вашего модуля.

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

def main():

        module_args = {
                "name": {"default": True, "type": "str"},
                "surname": {"default": True, "type": "str"}
                }
        module = AnsibleModule(
                     argument_spec=module_args,
                     supports_check_mode=False
                 )

        open(module.params["name"], 'a').close()

        module.exit_json(changed=False, meta=module_args)

if __name__ == '__main__':
    main()

Здесь я касаюсь файла с именем «имя», который будет указан в клавишах yaml playbook. Yaml выглядит так:

---
- hosts: localhost
  tasks:
    - name: testing python in ansible
      mymodulename:
        name: "testing123"
      register: result

    - debug: var=result

Это коснется файла с именем «testing123».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...