Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Switch Configuration

Mike Bobadilla edited this page Mar 16, 2018 · 6 revisions

Switch Configuration

Stacki handles switch configuration which includes:

  • IP Addressing
  • Assign Ports to VLAN
  • Status of ports on the switch

A switch to Stacki is just a host with some minor differences:

  • Appliance type is switch
  • Needs switch_model attribute set
  • Needs switch_username attribute set
  • Needs switch_password attribute set

Managing the switch

To get up and running we just need to:

  • Add the switch
  • Give it an interface
  • Add some hosts to it

Adding a switch

Adding a switch is just like adding a host:

  • stack add switch private-switch rack=1 rank=1 model=x1052 username=admin password=admin
  • stack load switchfile file=switchfile.csv

The switchfile example spreadsheet looks like this:

NAME,RACK,RANK,MODEL,INTERFACE,IP,MAC,NETWORK,USERNAME,PASSWORD
private-switch,10,20,x1052,eth1,192.168.2.1,00:11:22:33:44:55,private,admin,admin

If in the future you would like to change the model, username, or password you can use stack set host attr and change the attrs:

  • switch_model
  • switch_username
  • switch_password

Adding an interface

If you used the spreadsheet, you can skip this step

Adding an interface is exactly the same as with hosts. The important part here is that the network you assign to the interface has pxe=true if you plan on setting the ip address with dhcp.

stack add switch interface private-switch interface=eth1 mac=00:11:22:33:44:55 ip=10.0.0.1 network=private

Warning If you do not add an interface name, the DHCP configuration will not include the switch's interface.

Adding hosts

Adding hosts to be managed on the switch can be done two ways:

  • stack add switch host private-switch host=backend-0-0 port=10
  • stack load switch hostfile file=switch_hostfile.csv

The switch_hostfile example spreadsheet looks like this:

NAME,SWITCH,PORT,INTERFACE
backend-0-1,primary-switch,1,eth1
backend-0-2,primary-switch,2,eth1
backend-0-3,primary-switch,3,eth1
backend-0-4,primary-switch,4,eth1

Setting VLAN

The VLAN ID that is used to configure the switch comes from the host's interface and can be updated using:

  • stack set host interface vlan
  • Updating the host configuration spreadsheet (This is the same csv used in stack load hostfile)

Apply the switch configuration

stack sync switch

This will run stack report switch first and then upload the new config to the switches that are configured.

Clone this wiki locally