Ansible. Mikrotik. Управление устройствами Mikrotik RouterOS

Материал из Wiki
Перейти к навигации Перейти к поиску

Описание

Ansible 2 на Centos 7. Управление микротами

Case 1. Using ansible module "community.routeros"

yum install ansible

nano /etc/ansible/ansible.cfg (or ~/.ansible.cfg)

...
[defaults]
host_key_checking = False
...

nano /tmp/hosts

[mt_routers]
192.168.17.8 ansible_host=192.168.17.8 ansible_network_os=routeros ansible_connection=network_cli connection=network_cli ansible_user=service ansible_password=PassWord gather_facts=no
109.195.22.72 ansible_host=109.195.22.72 ansible_network_os=routeros ansible_connection=network_cli connection=network_cli ansible_user=service ansible_password=PassWord gather_facts=no

nano /tmp/playbook.yml

---
- hosts: all
  gather_facts: no
  tasks:
  - name: TEST
   community.routeros.command:
     commands:
       - :global "1234" "1234";
       - quit;
  - debug:
     msg: "Hostname: {{ inventory_hostname }}"

ansible-playbook -vvv -i /tmp/hosts -v /tmp/playbook.yml

Case 2. Using SSH. !!! DOESN'T WORK ANYMORE !!!

nano /etc/ansible/ansible.cfg (or ~/.ansible.cfg)

...
[defaults]
host_key_checking = False
...

nano /etc/ansible/hosts

...
[mt_routers]
192.168.199.1 ansible_connection=paramiko ansible_ssh_user=ansible ansible_ssh_pass=7X85AqCF
192.168.228.1 ansible_connection=paramiko ansible_ssh_user=ansible ansible_ssh_pass=7X85AqCF
...

mkdir /etc/ansible/playbooks

Создаем playbook - файл с задачей для хостов (групп хостов)

nano /etc/ansible/mt_telnet_enable.yml

---
- hosts: mt_routers #Имя группы хостов
  serial: 1 #количество систем, которые будут обрабатываться одновременно
  #connection: paramiko #тип соединения, по идее уже указан в hosts
  #user: ansible #пользователь, тоже указан в hosts
  gather_facts: no # Перед работой с хостом ансибл собирает с него инфу с помощью питона, естественно на микротике это работать не будет, так что эту фичу выключаем
  tasks: #Выполняем нашу задачу
  - name: ip service enable telnet
   raw: /ip service enable telnet; quit;

Запускаем playbook

ansible-playbook-2.7 -v /etc/ansible/playbooks/mt_telnet_enable.yml