mirror of
https://github.com/zahodi/ansible-mikrotik.git
synced 2025-07-25 05:14:47 +02:00
47 lines
1.1 KiB
Python
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()
|