Skip to content

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Command Line · Teradata/stacki Wiki · GitHub
Skip to content

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

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

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

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

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

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

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

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

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

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

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally

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

Command Line

Chris Ladd edited this page Oct 4, 2019 · 5 revisions

Stacki command line

The stacki command line is where you'll interact with your cluster for configuration and on-going management. The full details of every command are available in the Reference CLI section.

This is a basic primer.

The command line is English language sentence structure: subject+verb+object. (This is common for most CLI tools that the kewl kdzz are using, but we used it first so git offa my lawn.)

You're going to use the "stack" command always as the subject.

A verb can be one of: add, compile, config, create, disable, dump, enable, help, iterate, list, load, pack, remove, report, run, set, swap, sync, unload, unpack.

The verbs act on a number of objects: access, api, appliance, attr, attrfile, bootaction, box, cart, config, copyright, dbhost, dhcpd, dns, environment, firewall, group, help, host, hostfile, keys, mirror, named, network, networkfile, new, node, os, package, pallet, password, route, script, storage, system, version, zones.

This seems daunting, but you will not be using every one of these verbs against every one of these objects.

The most common verbs you'll use are: list, add, set, load, enable, disable, report, run, and sync.

The most common objects those verbs will use are: host, cart, pallet, hostfile, attrfile, config, and box.

Loading spreadsheets also short-cuts running many of these commands at the command line.

This documentation has numerous examples of "stack" commands, and are the ones you will most commonly use. And many others are available at hand in the Stacki Cheat Sheet.

The most common command

The most common command for interacting with your backend machines on a daily basis is:

stack run host command="something"

By default that command runs on any host that has an attribute (key/value pair) where "managed" is "True." By default only the frontend on an initial install is set to managed=False. All backends are to "managed=True"

Let's do something real:

# stack run host command="uptime"
HOST OUTPUT
backend-0-0 11:28:21 up 2 min, 0 users, load average: 3.33, 1.55, 0.59
backend-0-1 11:28:20 up 2 min, 0 users, load average: 3.47, 1.40, 0.52
backend-0-2 11:28:20 up 2 min, 0 users, load average: 3.35, 1.52, 0.58
backend-0-3 11:28:20 up 2 min, 0 users, load average: 3.00, 1.43, 0.55
backend-0-4 11:28:19 up 4 min, 0 users, load average: 1.32, 1.34, 0.64

Ways to define hosts

When running a command on hosts you can do:

By appliance type: a:backend which is all the backend nodes.

List: backend-0-0 backend-0-2 which would only run on backend-0-0 and backend-0-2.

Regex: backend-0-[0-2] which is backend-0-0, backend-0-1, and backend-0-2.

These three methods work for all commands.

In action with a list and a regex:

# stack run host backend-0-0 backend-0-[24] command="yum clean all; yum -y install screen"

Output only on backend-0-0, backend-0-2, and backend-0-4.

<snip>
backend-0-4 Installed:
backend-0-4 screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2
backend-0-4
backend-0-4 Complete!
</snip>

Rule of thumb

If you don't know how to do something with the stack command line, we probably do, ask on the Slack list or Googlegroups.

If you are finding yourself reaching for some other tool, odds are good we already do it on the command line, ask.

For further, exhaustive documentation you can read it here:

[Reference CLI section][stacki-CLI-documentation]

Or:

stack

Will list all commands and every command has a docstring which renders when you do: stack <verb> <object> help

Example:

# stack report hostfile help
stack report hostfile
Description
Outputs a host file in CSV format.

Clone this wiki locally