Skip to content

Commit 5b9b7ea

Browse files
authored
Merge pull request #77 from hakasapl/main
Update Documentation
2 parents cc1ec07 + e25a631 commit 5b9b7ea

File tree

1 file changed

+53
-35
lines changed

1 file changed

+53
-35
lines changed

README.md

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
# Ansible Site for Managing MOC/OCT Switches
2+
23
Ansible site for MOC/OCT switches
34

45
## Supported Switch OSes
56

67
* Dell OS9 (FTOS9)
78
* Cisco NXOS
9+
* Cumulus Linux 5 (WIP)
10+
* PicOS 8 (WIP)
811

912
## Site Setup
1013

@@ -14,39 +17,51 @@ Ansible site for MOC/OCT switches
1417
1. Install the required ansible modules: `ansible-galaxy collection install -r requirements.yaml`
1518
1. Set up AWS CLI and be sure you can access the correct secrets
1619
1. On your client, you may have to enable legacy kex algorithms for some switches:
20+
1721
```
1822
KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
1923
```
2024
25+
## Interface Parameter Compatibility Matrix
26+
27+
| Parameter | Dell OS9 | Cisco NXOS | Cumulus Linux 5 | PicOS 8 |
28+
|-----------|----------|------------|-----------------|---------|
29+
| description | ✅ | ✅ | ❌ | ❌ |
30+
| state | ✅ | ✅ | ❌ | ❌ |
31+
| mtu | ✅ | ✅ | ❌ | ❌ |
32+
| fec | ✅ | ✅ | ❌ | ❌ |
33+
| autoneg | ✅ | ✅ | ❌ | ❌ |
34+
| stp/edgeport | ✅ | ✅ | ❌ | ❌ |
35+
| stp/bpduguard | ✅ | ✅ | ❌ | ❌ |
36+
| stp/rootguard | ✅ | ✅ | ❌ | ❌ |
37+
| stp/disabled | ✅ | ✅ | ❌ | ❌ |
38+
| fanout | ✅ | ✅ | ❌ | ❌ |
39+
| managed | ❌ | ✅ | ❌ | ❌ |
40+
| allowlist | ✅ | ❌ | ❌ | ❌ |
41+
| blocklist | ✅ | ❌ | ❌ | ❌ |
42+
| portmode | ✅ | ✅ | ❌ | ❌ |
43+
| untagged | ✅ | ✅ | ❌ | ❌ |
44+
| tagged | ✅ | ✅ | ❌ | ❌ |
45+
| ip4 | ✅ | ✅ | ❌ | ❌ |
46+
| ip6 | ✅ | ✅ | ❌ | ❌ |
47+
| lag-members | ✅ | ✅ | ❌ | ❌ |
48+
| lacp-members-active | ✅ | ✅ | ❌ | ❌ |
49+
| lacp-members-passive | ✅ | ✅ | ❌ | ❌ |
50+
| lacp-rate | ✅ | ✅ | ❌ | ❌ |
51+
| mlag | ✅ | ✅ | ❌ | ❌ |
52+
2153
## Configuration
2254
23-
### Interfaces
24-
25-
Interfaces are configured in the file `host_vars/HOST/interfaces.yaml`
26-
27-
An example of this file is below:
28-
29-
```
30-
interfaces:
31-
twentyFiveGigE 1/1:
32-
description: "example interface"
33-
state: "up"
34-
mtu: 9216
35-
Port-channel 1:
36-
state: "up"
37-
lag-members:
38-
- "hundredGigE 1/1"
39-
- "hundredGigE 1/2"
40-
portmode: "access"
41-
untagged: 10
42-
Vlan 207:
43-
state: "up"
44-
ip4: "10.10.10.10/20"
45-
```
46-
47-
### Available Fields
48-
49-
* `name` Only for VLANs, sets the name of interfaces. (String)
55+
### Available Fields (VLAN)
56+
57+
* `id` VLAN 802.1q tag (Integer)
58+
* `name` Identifying name for the vlan (String)
59+
* `description` Description for the vlan (String)
60+
* `managed` Don't create nor destroy this VLAN (Boolean)
61+
* `fabrics` Define fabrics on which vlans can exist (ansible host groups) (List of strings)
62+
63+
### Available Fields (Interface)
64+
5065
* `description` Sets the description of the interface. (String)
5166
* `state` Sets the admin state of the mode ("up", or "down")
5267
* `mtu` Sets the MTU of the interface (Integer 576-9416)
@@ -61,6 +76,8 @@ interfaces:
6176
* `mode` Sets mode (`single`, `dual`, or `quad`)
6277
* `speed` Sets the fanout speed (`10G`, `25G`, or `40G`)
6378
* `managed` If true, this interface will not be configured by ansible. Works for both VLANs and interfaces (Boolean)
79+
* `allowlist` Only allow modification of these fields (List of Strings)
80+
* `blocklist` Block modification of these fields (List of Strings)
6481
* `portmode` L2 portmode of an interface (String "access", "trunk", or "hybrid")
6582
* `untagged` Single vlan to untag, requires portmode access or hybrid (Integer 2-4094)
6683
* `tagged` List of vlans to tag, requires portmode trunk or hybrid (List of Integers 2-4094)
@@ -72,14 +89,15 @@ interfaces:
7289
* `lacp-rate` Sets the switch rate for LACP only (String "fast" or "slow")
7390
* `mlag` Set the label of the peer port-channel for a paired switch (String interface name)
7491
75-
## Switch Configuration
92+
## MOC Specific Documentation
93+
94+
Every switch that exists in the MOCA system exists in this ansible site's host file. This project does not support all NOS types yet so some don't have individual host vars but exist in the hosts file for documentation sake.
7695
77-
Switches will need some manual configuration before being able to be set up from this ansible site.
96+
### Naming Convention
7897
79-
### Dell OS9 Switches
98+
Network equipment addresses follow a common convention. Each list item represents one octet of an IPv4 address:
8099
81-
1. On the switch, enter `conf` mode
82-
1. Set the enable password: `enable password <DEFAULT_OS9_PASSWD>`
83-
1. Set the ssh user `username admin password <DEFAULT_OS9_PASSWD>`
84-
1. Enable ssh server `ip ssh server enable`
85-
1. Set the access IP (usually `managementethernet 1/1`)
100+
* `10.`
101+
* `[80,81]` 80 for MOC/NERC, 81 for OCT
102+
* `[1,2]` 1 for core networking, 2 for rack networking
103+
* `10*<rack number> + unit number` Each rack gets its own unique number. For example, 3 switches in a rack might be `21`, `22`, and `23`

0 commit comments

Comments
 (0)