Ansible и Mikrotik: автоматизация настройки и управления парком Mikrotik

Поделиться
HTML-код
  • Опубликовано: 21 окт 2024

Комментарии • 25

  • @tr0jan4ik
    @tr0jan4ik 6 лет назад +2

    Огромное спасибо! Всем новеньким очень советую пересмотреть все вебинары!

  • @tabletk
    @tabletk 6 лет назад +1

    Спасибо за вебинар. Ждём новых выпусков.

  • @ИльдарГилязев-г8к
    @ИльдарГилязев-г8к 3 года назад

    Спасибо большое Роман, вы едентвенный далли понять, что такая система как ansible не подходит под мои задачи. Удачи вам

  • @ifuty23
    @ifuty23 5 лет назад +1

    Если не ошибаюсь то они (ansible) уже добавили поддержку команд routeros с версии 2.7, спасибо за ваши вебинары, очень иформативно

  • @LF-11-11
    @LF-11-11 4 года назад

    Спасибо!

  • @AlekseyFilimonov
    @AlekseyFilimonov 6 лет назад +4

    жду плейбуков, нетерпиться положить кусочек сети =)

  • @cepegakefblinkfan
    @cepegakefblinkfan 5 лет назад

    спасибо!

  • @fletcherF1
    @fletcherF1 6 лет назад

    Приветствую! Вопрос не по теме, но каковы значения неактивных полей? Допустим в консоли у правила есть src-address=192.168.1.0/24 , как в консоли сделать это поле неактивным?

  • @Net-olekma
    @Net-olekma 6 лет назад

    Спасибо за ваши знания и несение их в массы. Тем кто ставит дизлайки Добра.... Урода.

  • @alexk4894
    @alexk4894 6 лет назад +1

    Хорошо, сделать шаблон и залить конфигурацию на Микротик можно без проблем. Но только если у него этих настроек не было. А если были? Тогда будет ошибка, так как такой параметр уже существует. К примеру,
    /ip address add interface=ether1 address=192.168.1.1/24
    failure: already have such address
    Поэтому перед этим нужно заранее проверить существование этой настройки. В итоге, такие шаблоны принесут больше вреда, чем пользы, т.к. проверок будет в несколько раз больше, чем полезного кода. Вот именно поэтому для Ansible пишут модули, которые всю "грязную" работу берут на себя. Вот только для Микротика такого модуля нет :( По крайней мере, официального. Очень-очень обидно. Зато есть не оф. на ansible-galaxy. Поэтому, либо пишем свой, либо юзаем готовый.
    P.S. писать пароли в inventory файле - ужасная идея!!! Не делайте так!
    Решений несколько. Первое, что приходит в голову - используем ansible-vault,
    либо меняем строку в плейбуке на
    action: command ssh -F ~/.ssh/config {{ansible_ssh_host}} {{command}},
    а в конфиге ssh пишем путь к ключу, юзера, альтернативный порт, и кучу всего необходимого.

    • @MikrotikTraining
      @MikrotikTraining  6 лет назад

      Все для примера. Моя задача показать как можно. Каждый решает для себя какой уровень безопастности и какие шаблоны вы хотите использовать. Большинство шаблонов под сетевые устройства используют в неком ограниченном корпоративе - где есть четкие ограничения на начальную конфигурацию.

    • @valentingusachenko5976
      @valentingusachenko5976 5 лет назад

      Так как ansible это средство пуша конфигурации, то и playbook-и нужно писать с такой логикой, чтобы они ничего не усложняли при повторном их использовании или на уже настроенных роутерах. Нужно писать условия итд
      к примеру:
      выделил для себя такой принцип при настройке фаервола
      - name: removing rule with comment "allow snmp from zabbix"
      routeros_command:
      commands: /ip firewall filter remove [ find comment="allow snmp from zabbix" ]
      - name: adding new rule with comment "allow snmp from zabbix"
      routeros_command:
      commands: /ip firewall filter add chain=input action=accept src-address-list=zabbix protocol=udp dst-port=161 comment="allow snmp from zabbix"
      - name: move rule with comment "allow snmp from zabbix"
      routeros_command:
      commands: /ip firewall filter move [ find comment="allow snmp from zabbix" ] 0
      сначала playbook удалит правило , если оно есть, чтобы не дублировать, а потом добавит и place-before=0 (при добавлении, 2 шаг) выдаст ошибку, если нет никаких правил . Приходится создавать снизу списка, а потом тянуть вверх еще дополнительной командой
      да, это лишние 2 строчки кода , насколько заморачиватся решать Вам, но это экономия времени в будущем, а не экономия времени сейчас

  • @ShamilSattarov
    @ShamilSattarov 5 лет назад

    Что думаете, насчет nornir и NAPALM?

    • @devimgn
      @devimgn 5 лет назад

      А ещё у RouterOS есть TR-069 клиент

  • @Prolink766
    @Prolink766 Год назад

    Коллеги добрый день. Не поделитесь playbook посмотреть код в живую

    • @MikrotikTraining
      @MikrotikTraining  Год назад

      Приходите в телеграмм чат @miktrain - ищите мня - я посмотрю что можно сделать(есть некоторое количество внутренних настроек, но думаю это решаемый вопрос)

  • @alekseygavrilov8475
    @alekseygavrilov8475 6 лет назад +1

    можно вот так ходить на микроты
    cat ansible.cfg
    ...
    [paramiko_connection]
    pty = False
    cat mikrotik.yml
    ---
    - name: Add mikrotic user
    hosts:
    - mikrotic_user
    - mikrotic_all
    become: False
    gather_facts: no
    connection: paramiko
    roles:
    - role: le9i0nx.mikrotik_user
    tags: [ 'role::mikrotik_user' ]
    cat roles/le9i0nx.mikrotik_user/tasks/main.yml
    ---
    - name: Generate random password via pwgen
    command: "pwgen -s 19 1"
    register: random_passwd
    connection: local
    changed_when: false
    - name: Add user
    raw: /user add name={{ item.name }} group=read
    register: last_output
    changed_when: "last_output.stdout != 'failure: user with the same name already exisits
    '"
    when: "item.state == 'present'"
    # failed_when: "'syntax error' in '{{ last_output.stdout }}' or 'bad command' in '{{ last_output.stdout }}' or 'invalid value' in '{{ last_output.stdout }}' or 'expected end of command' in '{{ last_output.stdout }}'"
    with_flattened:
    - '{{ mikrotik_user__default }}'
    - '{{ mikrotik_user__admins }}'
    - '{{ mikrotik_user__list }}'
    - '{{ mikrotik_user__group_list }}'
    - '{{ mikrotik_user__host_list }}'
    ...

  • @eugenem4854
    @eugenem4854 5 лет назад +1

    Клумбы копать спецтехникой не удобно

  • @munyac
    @munyac 6 лет назад

    is this avaliable in english

  • @hakimzyanovalexey1855
    @hakimzyanovalexey1855 6 лет назад

    Спасибо!