Giter VIP home page Giter VIP logo

ansible-eos-interfaces's People

Contributors

grybak-arista avatar mharista avatar phil-dileo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

glennsb

ansible-eos-interfaces's Issues

Add ability to add MLAG ID to an interface

We recently bumped into issue that no arista-eos ansible roles support configuration of MLAG id on interface. Even more, manual configuration will be overwritten if interfaces role is in use!
IMO this role suits best for MLAG id configuration as it also configures channel-groups etc.

Example:

cat ./group_vars/leafs-rack1.yml
interfaces:
  - name: Ethernet1
    description: sea-hvprod-01-data
    enable: true
    mlag_id: 1

module fails if interface doesn't exist and a description is specified

The description commands seem to be pushed before creating an interface:

interfaces:

  • name: Loopback0
    description: "Loopback"
    enable: true

No loopback on the device at this time, then run the playbook:

TASK [arista.eos-interfaces : Arista EOS interface resources] ******************
failed: [spine1](item={u'enable': True, u'name': u'Loopback0', u'description': u'Loopback'}) => {"changed": false, "commands": ["configure terminal", "description Loopback", "no shutdown", "interface Loopback0"], "failed": true, "item": {"description": "Loopback", "enable": true, "name": "Loopback0"}, "msg": "matched error in response: description Loopback\r\n% Invalid input\r\nspine-01(config)#"}

The template seems to have an ordering issue.

Support additional interface options

It would be swell if we could manage additional interface options. For my immediate desire I'd like to do things like lacp priority & add interfaces to port channel groups

Transport hardcoded as cli

Even with specifying eapi as the transport in the provider dictionary.

It seems maybe the hardcoded entries of transport: cli in all the eos_* modules override that.

This makes me sad to not be able to use the api, especially since right now my paramiko is all about not working because of no acceptable kex algo

This was with a fresh install of the role with ansible v2.2.1.0

Role may mess up MLAG configuration made by ansible-eos-mlag

If for some reason you add any configuration for MLAG interfaces using ansible-eos-interfaces like in the following example - role will mess up configuration as ansible-eos-interfaces and ansible-eos-mlag will conflict with each other

interfaces:

  • name: Ethernet21
    description: "MLAG"
    enable: true
  • name: Ethernet22
    description: "MLAG"
    enable: true

changed: [10.2.200.68] => (item={u'enable': True, u'name': u'Ethernet21', u'description': u'MLAG'})
changed: [10.2.200.69] => (item={u'enable': True, u'name': u'Ethernet21', u'description': u'MLAG'})
failed: [10.2.200.69] (item={u'enable': True, u'name': u'Ethernet22', u'description': u'MLAG'}) => {"changed": false, "commands": ["configure session ansible_1542881846", "interface Ethernet22", "no channel-group", "end"], "failed": true, "item": {"description": "MLAG", "enable": true, "name": "Ethernet22"}, "msg": "matched error in response: no channel-group\r\n% Interface Ethernet22 is a member of the MLAG peer link Port-Channel22; channel-group status not changed\r\nnvoa-tstsw-02(config-s-ansibl-if-Et22)#"}
failed: [10.2.200.68] (item={u'enable': True, u'name': u'Ethernet22', u'description': u'MLAG'}) => {"changed": false, "commands": ["configure session ansible_1542881846", "interface Ethernet22", "no channel-group", "end"], "failed": true, "item": {"description": "MLAG", "enable": true, "name": "Ethernet22"}, "msg": "matched error in response: no channel-group\r\n% Interface Ethernet22 is a member of the MLAG peer link Port-Channel22; channel-group status not changed\r\nnvoa-tstsw-01(config-s-ansibl-if-Et22)#"}

In my opinion such conflicts must be specifically highlighted in role description

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.