zahodi.ansible-mikrotik/library/mt_login_test.py

47 lines
1.1 KiB
Python

#! /usr/bin/python
import socket
from ansible.module_utils import mt_api
from ansible.module_utils.basic import AnsibleModule
def main():
module = AnsibleModule(
argument_spec=dict(
hostname=dict(required=True),
username=dict(required=True),
password=dict(required=True, no_log=True),
)
)
hostname = module.params['hostname']
username = module.params['username']
password = module.params['password']
changed = False
msg = ""
mk = mt_api.Mikrotik(hostname,username,password)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((hostname, 8728))
if result == 0:
try:
mk.login()
except:
module.fail_json(
msg="Could not log into Mikrotik device. Check the username and password."
)
else:
module.fail_json(
msg="Could not access RouterOS api." + " Verify API service is enabled and not blocked by firewall."
)
# response = apiros.talk([b'/ip/address/add', b'=address=192.168.15.2/24', b'=interface=ether7'])
module.exit_json(
changed=False,
failed=False,
)
if __name__ == '__main__':
main()