- Scan ID:
- d103dfbe-9c5c-40c2-860c-333d4e80cfb6Finished
- Submitted URL:
- https://docs.horizon3.ai/cli/guides/touchless-nodezero/
- Report Finished:
Links · 9 found
The outgoing links identified from the page
Link | Text |
---|---|
https://portal.horizon3ai.com/runners | Runners |
https://portal.horizon3ai.com/account-settings | here |
https://portal.horizon3ai.eu/account-settings | here |
https://github.com/horizon3ai/h3-cli#installation-and-initial-setup | here |
https://www.redhat.com/sysadmin/linux-systemctl-manage-services | How to use systemctl to manage Linux services |
https://www.freedesktop.org/software/systemd/man/systemctl.html | systemctl man page |
https://en.wikipedia.org/wiki/Systemd | systemd wiki |
https://docs.google.com/forms/d/e/1FAIpQLSeTQSnrZFus2ddoDR5p5h39lxGRAP9UcoY6Hc8YbCDIeBAZBQ/viewform?usp=sf_link | feedback form |
https://squidfunk.github.io/mkdocs-material/ | Material for MkDocs |
JavaScript Variables · 34 found
Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope
Name | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
__md_scope | object |
__md_hash | function |
__md_get | function |
__md_set | function |
__md_analytics | function |
dataLayer | object |
GLightbox | function |
Console log messages · 1 found
Messages logged to the web console
Type | Category | Log |
---|---|---|
warning | other |
|
HTML
The raw HTML body of the page
<!DOCTYPE html><html lang="en" class="js-focus-visible js" data-js-focus-visible=""><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Horizon3.ai enables organizations to continuously assess the security posture of their enterprise across many attack surfaces.">
<link rel="canonical" href="https://docs.horizon3.ai/cli/guides/touchless-nodezero/">
<link rel="prev" href="../../readme/">
<link rel="next" href="../auto-inject-creds/">
<link rel="icon" href="../../../assets/favicon.png">
<meta name="generator" content="mkdocs-1.5.2, mkdocs-material-9.2.5">
<title>Automate NodeZero Deployment - Horizon3.ai Docs</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.0e669242.min.css">
<link rel="stylesheet" href="../../../assets/stylesheets/palette.85d0ee34.min.css">
<style>:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.752 1.752 0 0 1 1 7.775Zm1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z"/></svg>');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2.5 1.75v11.5c0 .138.112.25.25.25h3.17a.75.75 0 0 1 0 1.5H2.75A1.75 1.75 0 0 1 1 13.25V1.75C1 .784 1.784 0 2.75 0h8.5C12.216 0 13 .784 13 1.75v7.736a.75.75 0 0 1-1.5 0V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13.274 9.537v-.001l-4.557 4.45a.75.75 0 0 1-1.055-.008l-1.943-1.95a.75.75 0 0 1 1.062-1.058l1.419 1.425 4.026-3.932a.75.75 0 1 1 1.048 1.074ZM4.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM4 7.75A.75.75 0 0 1 4.75 7h2a.75.75 0 0 1 0 1.5h-2A.75.75 0 0 1 4 7.75Z"/></svg>');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"/></svg>');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M3.499.75a.75.75 0 0 1 1.5 0v.996C5.9 2.903 6.793 3.65 7.662 4.376l.24.202c-.036-.694.055-1.422.426-2.163C9.1.873 10.794-.045 12.622.26 14.408.558 16 1.94 16 4.25c0 1.278-.954 2.575-2.44 2.734l.146.508.065.22c.203.701.412 1.455.476 2.226.142 1.707-.4 3.03-1.487 3.898C11.714 14.671 10.27 15 8.75 15h-6a.75.75 0 0 1 0-1.5h1.376a4.484 4.484 0 0 1-.563-1.191 3.835 3.835 0 0 1-.05-2.063 4.647 4.647 0 0 1-2.025-.293.75.75 0 0 1 .525-1.406c1.357.507 2.376-.006 2.698-.318l.009-.01a.747.747 0 0 1 1.06 0 .748.748 0 0 1-.012 1.074c-.912.92-.992 1.835-.768 2.586.221.74.745 1.337 1.196 1.621H8.75c1.343 0 2.398-.296 3.074-.836.635-.507 1.036-1.31.928-2.602-.05-.603-.216-1.224-.422-1.93l-.064-.221c-.12-.407-.246-.84-.353-1.29a2.425 2.425 0 0 1-.507-.441 3.075 3.075 0 0 1-.633-1.248.75.75 0 0 1 1.455-.364c.046.185.144.436.31.627.146.168.353.305.712.305.738 0 1.25-.615 1.25-1.25 0-1.47-.95-2.315-2.123-2.51-1.172-.196-2.227.387-2.706 1.345-.46.92-.27 1.774.019 3.062l.042.19a.884.884 0 0 1 .01.05c.348.443.666.949.94 1.553a.75.75 0 1 1-1.365.62c-.553-1.217-1.32-1.94-2.3-2.768L6.7 5.527c-.814-.68-1.75-1.462-2.692-2.619a3.737 3.737 0 0 0-1.023.88c-.406.495-.663 1.036-.722 1.508.116.122.306.21.591.239.388.038.797-.06 1.032-.19a.75.75 0 0 1 .728 1.31c-.515.287-1.23.439-1.906.373-.682-.067-1.473-.38-1.879-1.193L.75 5.677V5.5c0-.984.48-1.94 1.077-2.664.46-.559 1.05-1.055 1.673-1.353V.75Z"/></svg>');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"/></svg>');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.92 6.085h.001a.749.749 0 1 1-1.342-.67c.169-.339.436-.701.849-.977C6.845 4.16 7.369 4 8 4a2.756 2.756 0 0 1 1.637.525c.503.377.863.965.863 1.725 0 .448-.115.83-.329 1.15-.205.307-.47.513-.692.662-.109.072-.22.138-.313.195l-.006.004a6.24 6.24 0 0 0-.26.16.952.952 0 0 0-.276.245.75.75 0 0 1-1.248-.832c.184-.264.42-.489.692-.661.103-.067.207-.132.313-.195l.007-.004c.1-.061.182-.11.258-.161a.969.969 0 0 0 .277-.245C8.96 6.514 9 6.427 9 6.25a.612.612 0 0 0-.262-.525A1.27 1.27 0 0 0 8 5.5c-.369 0-.595.09-.74.187a1.01 1.01 0 0 0-.34.398ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/></svg>');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"/></svg>');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M2.344 2.343h-.001a8 8 0 0 1 11.314 11.314A8.002 8.002 0 0 1 .234 10.089a8 8 0 0 1 2.11-7.746Zm1.06 10.253a6.5 6.5 0 1 0 9.108-9.275 6.5 6.5 0 0 0-9.108 9.275ZM6.03 4.97 8 6.94l1.97-1.97a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l1.97 1.97a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-1.97 1.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L6.94 8 4.97 6.03a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018Z"/></svg>');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M9.504.43a1.516 1.516 0 0 1 2.437 1.713L10.415 5.5h2.123c1.57 0 2.346 1.909 1.22 3.004l-7.34 7.142a1.249 1.249 0 0 1-.871.354h-.302a1.25 1.25 0 0 1-1.157-1.723L5.633 10.5H3.462c-1.57 0-2.346-1.909-1.22-3.004L9.503.429Zm1.047 1.074L3.286 8.571A.25.25 0 0 0 3.462 9H6.75a.75.75 0 0 1 .694 1.034l-1.713 4.188 6.982-6.793A.25.25 0 0 0 12.538 7H9.25a.75.75 0 0 1-.683-1.06l2.008-4.418.003-.006a.036.036 0 0 0-.004-.009l-.006-.006-.008-.001c-.003 0-.006.002-.009.004Z"/></svg>');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M4.72.22a.75.75 0 0 1 1.06 0l1 .999a3.488 3.488 0 0 1 2.441 0l.999-1a.748.748 0 0 1 1.265.332.75.75 0 0 1-.205.729l-.775.776c.616.63.995 1.493.995 2.444v.327c0 .1-.009.197-.025.292.408.14.764.392 1.029.722l1.968-.787a.75.75 0 0 1 .556 1.392L13 7.258V9h2.25a.75.75 0 0 1 0 1.5H13v.5c0 .409-.049.806-.141 1.186l2.17.868a.75.75 0 0 1-.557 1.392l-2.184-.873A4.997 4.997 0 0 1 8 16a4.997 4.997 0 0 1-4.288-2.427l-2.183.873a.75.75 0 0 1-.558-1.392l2.17-.868A5.036 5.036 0 0 1 3 11v-.5H.75a.75.75 0 0 1 0-1.5H3V7.258L.971 6.446a.75.75 0 0 1 .558-1.392l1.967.787c.265-.33.62-.583 1.03-.722a1.677 1.677 0 0 1-.026-.292V4.5c0-.951.38-1.814.995-2.444L4.72 1.28a.75.75 0 0 1 0-1.06Zm.53 6.28a.75.75 0 0 0-.75.75V11a3.5 3.5 0 1 0 7 0V7.25a.75.75 0 0 0-.75-.75ZM6.173 5h3.654A.172.172 0 0 0 10 4.827V4.5a2 2 0 1 0-4 0v.327c0 .096.077.173.173.173Z"/></svg>');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M5 5.782V2.5h-.25a.75.75 0 0 1 0-1.5h6.5a.75.75 0 0 1 0 1.5H11v3.282l3.666 5.76C15.619 13.04 14.543 15 12.767 15H3.233c-1.776 0-2.852-1.96-1.899-3.458Zm-2.4 6.565a.75.75 0 0 0 .633 1.153h9.534a.75.75 0 0 0 .633-1.153L12.225 10.5h-8.45ZM9.5 2.5h-3V6c0 .143-.04.283-.117.403L4.73 9h6.54L9.617 6.403A.746.746 0 0 1 9.5 6Z"/></svg>');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M1.75 2.5h10.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Zm4 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2.5 7.75v6a.75.75 0 0 1-1.5 0v-6a.75.75 0 0 1 1.5 0Z"/></svg>');}</style>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Rubik";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../stylesheets/extra.css">
<script async="" src="https://www.datadoghq-browser-agent.com/us1/v4/datadog-rum.js"></script><script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<script id="__analytics">function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-PCVCZGGC5B"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-PCVCZGGC5B",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-PCVCZGGC5B",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script><script async="" src="https://www.googletagmanager.com/gtag/js?id=G-PCVCZGGC5B"></script>
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
<link href="../../../assets/stylesheets/glightbox.min.css" rel="stylesheet"><style>
html.glightbox-open { overflow: initial; height: 100%; }
.gslide-title { margin-top: 0px; user-select: text; }
.gslide-desc { color: #666; user-select: text; }
.gslide-image img { background: white; }
.gscrollbar-fixer { padding-right: 15px; }
.gdesc-inner { font-size: 0.75rem; }
body[data-md-color-scheme="slate"] .gdesc-inner { background: var(--md-default-bg-color);}
body[data-md-color-scheme="slate"] .gslide-title { color: var(--md-default-fg-color);}
body[data-md-color-scheme="slate"] .gslide-desc { color: var(--md-default-fg-color);}
</style> <script src="../../../assets/javascripts/glightbox.min.js"></script><meta name="theme-color" content="#e3e9f4"><meta name="color-scheme" content="light"></head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="indigo">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#h3-cli-automated-nodezero-deployment-using-a-nodezero-runner" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="Horizon3.ai Docs" class="md-header__button md-logo" aria-label="Horizon3.ai Docs" data-md-component="logo">
<img src="../../../assets/logo.png" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Horizon3.ai Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Automate NodeZero Deployment
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="blue" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="blue" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden="">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12c0-2.42-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69Z"></path></svg>
</label>
</form>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required="">
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<a href="https://docs.horizon3.ai/cli/guides/touchless-nodezero/?q=" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard="" data-clipboard-text="javascript:void(0)" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"></path></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap">
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">Type to start searching</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs" hidden="">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../../quickstart/" class="md-tabs__link">
Quickstart
</a>
</li>
<li class="md-tabs__item">
<a href="../../../portal/" class="md-tabs__link">
Portal
</a>
</li>
<li class="md-tabs__item">
<a href="../../../tripwires/" class="md-tabs__link">
Tripwires
</a>
</li>
<li class="md-tabs__item">
<a href="../../../insights/" class="md-tabs__link">
Insights
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../../" class="md-tabs__link">
CLI
</a>
</li>
<li class="md-tabs__item">
<a href="../../../api/" class="md-tabs__link">
API
</a>
</li>
<li class="md-tabs__item">
<a href="../../../release_notes/" class="md-tabs__link">
Release Notes
</a>
</li>
<li class="md-tabs__item">
<a href="../../../downloads/" class="md-tabs__link">
Downloads
</a>
</li>
<li class="md-tabs__item">
<a href="../../../knowledge_base/" class="md-tabs__link">
Knowledge Base
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="Horizon3.ai Docs" class="md-nav__button md-logo" aria-label="Horizon3.ai Docs" data-md-component="logo">
<img src="../../../assets/logo.png" alt="logo">
</a>
Horizon3.ai Docs
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2">
<div class="md-nav__link md-nav__container">
<a href="../../../quickstart/" class="md-nav__link ">
<span class="md-ellipsis">
Quickstart
</span>
</a>
<label class="md-nav__link " for="__nav_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Quickstart
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2">
<div class="md-nav__link md-nav__container">
<a href="../../../quickstart/n0_host/" class="md-nav__link ">
<span class="md-ellipsis">
Setup NodeZero Host
</span>
</a>
<label class="md-nav__link " for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
Setup NodeZero Host
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../quickstart/n0_host/n0_host/" class="md-nav__link">
<span class="md-ellipsis">
Host Information
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../quickstart/n0_host/host_network/" class="md-nav__link">
<span class="md-ellipsis">
Host Network
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../quickstart/n0_host/installation/" class="md-nav__link">
<span class="md-ellipsis">
Installing Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../quickstart/n0_host/validate/" class="md-nav__link">
<span class="md-ellipsis">
Validate NodeZero Host
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../quickstart/n0_host/deployment/" class="md-nav__link">
<span class="md-ellipsis">
Deployment Options
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3">
<div class="md-nav__link md-nav__container">
<a href="../../../quickstart/internal/" class="md-nav__link ">
<span class="md-ellipsis">
Run an Internal Pentest
</span>
</a>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
Run an Internal Pentest
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/" class="md-nav__link ">
<span class="md-ellipsis">
Portal
</span>
</a>
<label class="md-nav__link " for="__nav_3">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Portal
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2">
<label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
<span class="md-ellipsis">
Test Types
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
Test Types
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_1">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/internal/" class="md-nav__link ">
<span class="md-ellipsis">
Internal Pentest
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_1">
<span class="md-nav__icon md-icon"></span>
Internal Pentest
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_2">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/external/" class="md-nav__link ">
<span class="md-ellipsis">
External Pentest
</span>
</a>
<label class="md-nav__link " for="__nav_3_2_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_2">
<span class="md-nav__icon md-icon"></span>
External Pentest
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../portal/test_types/external/create_asset_group/" class="md-nav__link">
<span class="md-ellipsis">
Create an Asset Group
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../portal/test_types/external/run_asset_discovery/" class="md-nav__link">
<span class="md-ellipsis">
Run Asset Discovery
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../portal/test_types/external/authorize_assets/" class="md-nav__link">
<span class="md-ellipsis">
Authorize Assets
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../portal/test_types/external/run_external_pentest/" class="md-nav__link">
<span class="md-ellipsis">
Run External Pentest
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_3">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/aws/" class="md-nav__link ">
<span class="md-ellipsis">
AWS Pentest
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_3">
<span class="md-nav__icon md-icon"></span>
AWS Pentest
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/azure_entra_id/" class="md-nav__link ">
<span class="md-ellipsis">
Azure Entra ID
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_4">
<span class="md-nav__icon md-icon"></span>
Azure Entra ID
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_5">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/kubernetes/" class="md-nav__link ">
<span class="md-ellipsis">
Kubernetes Pentest
</span>
</a>
<label class="md-nav__link " for="__nav_3_2_5">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_5">
<span class="md-nav__icon md-icon"></span>
Kubernetes Pentest
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../portal/test_types/kubernetes/required-operator-permissions/" class="md-nav__link">
<span class="md-ellipsis">
Operator ClusterRole CRD
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../portal/test_types/kubernetes/required-pentest-runner-permissions/" class="md-nav__link">
<span class="md-ellipsis">
Pentest & Runner ClusterRole CRD
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_6">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/ad_password_audit/" class="md-nav__link ">
<span class="md-ellipsis">
AD Password Audit
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_6">
<span class="md-nav__icon md-icon"></span>
AD Password Audit
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_7">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/segmentation/" class="md-nav__link ">
<span class="md-ellipsis">
Segmentation Test
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_7">
<span class="md-nav__icon md-icon"></span>
Segmentation Test
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_8">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/phishing/" class="md-nav__link ">
<span class="md-ellipsis">
Phishing Test
</span>
</a>
<label class="md-nav__link " for="__nav_3_2_8">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_8">
<span class="md-nav__icon md-icon"></span>
Phishing Test
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../portal/test_types/phishing/phishing_script/" class="md-nav__link">
<span class="md-ellipsis">
The NodeZero Phishing Script
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/insider_threat/" class="md-nav__link ">
<span class="md-ellipsis">
Insider Threat Test
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_9">
<span class="md-nav__icon md-icon"></span>
Insider Threat Test
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/rapid_response/" class="md-nav__link ">
<span class="md-ellipsis">
Rapid Response
</span>
</a>
<label class="md-nav__link " for="__nav_3_2_10">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_10">
<span class="md-nav__icon md-icon"></span>
Rapid Response
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10_2">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/rapid_response/alerts/" class="md-nav__link ">
<span class="md-ellipsis">
Alerts
</span>
</a>
</div>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_10_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_10_2">
<span class="md-nav__icon md-icon"></span>
Alerts
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10_3">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/rapid_response/cards/" class="md-nav__link ">
<span class="md-ellipsis">
Rapid Response Activity Cards
</span>
</a>
</div>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_10_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_10_3">
<span class="md-nav__icon md-icon"></span>
Rapid Response Activity Cards
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10_4">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/rapid_response/targeted_tests/" class="md-nav__link ">
<span class="md-ellipsis">
Targeted Tests
</span>
</a>
</div>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_10_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_10_4">
<span class="md-nav__icon md-icon"></span>
Targeted Tests
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_11">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/test_types/1cv/" class="md-nav__link ">
<span class="md-ellipsis">
1-Click Verify
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2_11">
<span class="md-nav__icon md-icon"></span>
1-Click Verify
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3">
<label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
<span class="md-ellipsis">
Portal Settings
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
Portal Settings
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_1">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/proxy/" class="md-nav__link ">
<span class="md-ellipsis">
Set a Proxy
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_1">
<span class="md-nav__icon md-icon"></span>
Set a Proxy
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_2">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/emails/" class="md-nav__link ">
<span class="md-ellipsis">
Email Notifications
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_2">
<span class="md-nav__icon md-icon"></span>
Email Notifications
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_3">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/templates/" class="md-nav__link ">
<span class="md-ellipsis">
Pentest Templates
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_3">
<span class="md-nav__icon md-icon"></span>
Pentest Templates
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_4">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/user_management/" class="md-nav__link ">
<span class="md-ellipsis">
User Management
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_4">
<span class="md-nav__icon md-icon"></span>
User Management
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_5">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/client_management/" class="md-nav__link ">
<span class="md-ellipsis">
Client Management
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_5">
<span class="md-nav__icon md-icon"></span>
Client Management
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_6">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/sso/" class="md-nav__link ">
<span class="md-ellipsis">
Single Sign-On (SSO)
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_6">
<span class="md-nav__icon md-icon"></span>
Single Sign-On (SSO)
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3_7">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/settings/idp_guides/" class="md-nav__link ">
<span class="md-ellipsis">
IDentity Provider (IdP) Guides
</span>
</a>
<label class="md-nav__link " for="__nav_3_3_7">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_3_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3_7">
<span class="md-nav__icon md-icon"></span>
IDentity Provider (IdP) Guides
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../portal/settings/idp_guides/azure/" class="md-nav__link">
<span class="md-ellipsis">
Azure
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../portal/settings/idp_guides/okta/" class="md-nav__link">
<span class="md-ellipsis">
Okta
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4">
<label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
<span class="md-ellipsis">
Features
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
Features
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_1">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/features/attack_config/" class="md-nav__link ">
<span class="md-ellipsis">
Attack Configuration
</span>
</a>
<label class="md-nav__link " for="__nav_3_4_1">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_1">
<span class="md-nav__icon md-icon"></span>
Attack Configuration
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../portal/features/attack_config/rat/" class="md-nav__link">
<span class="md-ellipsis">
Remote Access Tool
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_2">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/features/bloodhound/" class="md-nav__link ">
<span class="md-ellipsis">
BloodHound
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_2">
<span class="md-nav__icon md-icon"></span>
BloodHound
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_3">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/features/injecting_credentials/" class="md-nav__link ">
<span class="md-ellipsis">
Injecting Credentials
</span>
</a>
<label class="md-nav__link " for="__nav_3_4_3">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_3">
<span class="md-nav__icon md-icon"></span>
Injecting Credentials
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../portal/features/injecting_credentials/injecting-aws-role/" class="md-nav__link">
<span class="md-ellipsis">
Injecting an AWS Role
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../portal/features/injecting_credentials/injecting-azure-mfa/" class="md-nav__link">
<span class="md-ellipsis">
Injecting an Azure MFA Credential
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_4">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/features/schedules/" class="md-nav__link ">
<span class="md-ellipsis">
Schedules
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_4">
<span class="md-nav__icon md-icon"></span>
Schedules
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4_5">
<div class="md-nav__link md-nav__container">
<a href="../../../portal/features/co_branding/" class="md-nav__link ">
<span class="md-ellipsis">
Co-Branding
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_4_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4_5">
<span class="md-nav__icon md-icon"></span>
Co-Branding
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4">
<div class="md-nav__link md-nav__container">
<a href="../../../tripwires/" class="md-nav__link ">
<span class="md-ellipsis">
Tripwires
</span>
</a>
<label class="md-nav__link " for="__nav_4">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Tripwires
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../tripwires/getting_started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../tripwires/management/" class="md-nav__link">
<span class="md-ellipsis">
Management
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../tripwires/alerts/" class="md-nav__link">
<span class="md-ellipsis">
Alerts
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5">
<label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="0">
<span class="md-ellipsis">
Settings
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_5">
<span class="md-nav__icon md-icon"></span>
Settings
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../tripwires/access/" class="md-nav__link">
<span class="md-ellipsis">
Access Roles
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../tripwires/webhooks/" class="md-nav__link">
<span class="md-ellipsis">
Splunk Cloud Connection
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../tripwires/azure/" class="md-nav__link">
<span class="md-ellipsis">
Azure Sentinel Connection
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5">
<div class="md-nav__link md-nav__container">
<a href="../../../insights/" class="md-nav__link ">
<span class="md-ellipsis">
Insights
</span>
</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Insights
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked="">
<div class="md-nav__link md-nav__container">
<a href="../../" class="md-nav__link ">
<span class="md-ellipsis">
CLI
</span>
</a>
<label class="md-nav__link " for="__nav_6">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
CLI
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../readme/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_3" checked="">
<label class="md-nav__link" for="__nav_6_3" id="__nav_6_3_label" tabindex="0">
<span class="md-ellipsis">
Guides
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_6_3">
<span class="md-nav__icon md-icon"></span>
Guides
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Automate NodeZero Deployment
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Automate NodeZero Deployment
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc">
<li class="md-nav__item">
<a href="#h3-cli-automated-nodezero-deployment-using-a-nodezero-runner" class="md-nav__link">
h3-cli: Automated NodeZero deployment using a NodeZero Runner
</a>
</li>
<li class="md-nav__item">
<a href="#installing-and-running-a-nodezero-runner" class="md-nav__link">
Installing and running a NodeZero Runner
</a>
</li>
<li class="md-nav__item">
<a href="#install-option-1-the-easy-way-recommended" class="md-nav__link">
Install option #1: The easy way (recommended)
</a>
</li>
<li class="md-nav__item">
<a href="#install-option-2-the-slightly-more-manual-way" class="md-nav__link">
Install option #2: The slightly more manual way
</a>
<nav class="md-nav" aria-label="Install option #2: The slightly more manual way">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#1-create-an-api-key-for-the-runner" class="md-nav__link">
1. Create an API key for the Runner
</a>
</li>
<li class="md-nav__item">
<a href="#2-install-h3-cli-on-your-docker-host" class="md-nav__link">
2. Install h3-cli on your Docker Host
</a>
</li>
<li class="md-nav__item">
<a href="#3-spin-up-the-runner-using-h3-cli" class="md-nav__link">
3. Spin up the Runner using h3-cli
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#additional-notes-about-the-runner" class="md-nav__link">
Additional notes about the Runner
</a>
</li>
<li class="md-nav__item">
<a href="#troubleshooting" class="md-nav__link">
Troubleshooting
</a>
<nav class="md-nav" aria-label="Troubleshooting">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#view-runner-command-errors" class="md-nav__link">
View Runner command errors
</a>
</li>
<li class="md-nav__item">
<a href="#docker-permission-errors" class="md-nav__link">
Docker permission errors
</a>
</li>
<li class="md-nav__item">
<a href="#retry" class="md-nav__link">
Retry
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#auto-start-runner-at-system-startup" class="md-nav__link">
Auto-start Runner at system startup
</a>
<nav class="md-nav" aria-label="Auto-start Runner at system startup">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#helpful-systemctl-commands-for-managing-the-runner-service" class="md-nav__link">
Helpful systemctl commands for managing the Runner service
</a>
</li>
<li class="md-nav__item">
<a href="#troubleshooting_1" class="md-nav__link">
Troubleshooting
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../auto-inject-creds/" class="md-nav__link">
<span class="md-ellipsis">
Automate Injecting Credentials
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../recurring-pentests/" class="md-nav__link">
<span class="md-ellipsis">
Scheduling from CLI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../monitor-pentests/" class="md-nav__link">
<span class="md-ellipsis">
Monitor Pentests
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../paginate-results/" class="md-nav__link">
<span class="md-ellipsis">
Paginate Results
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json-parsing-with-jq/" class="md-nav__link">
<span class="md-ellipsis">
Parsing Json
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7">
<div class="md-nav__link md-nav__container">
<a href="../../../api/" class="md-nav__link ">
<span class="md-ellipsis">
API
</span>
</a>
<label class="md-nav__link " for="__nav_7">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
API
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7_2">
<div class="md-nav__link md-nav__container">
<a href="../../../api/reference/" class="md-nav__link ">
<span class="md-ellipsis">
API Reference
</span>
</a>
<label class="md-nav__link " for="__nav_7_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_7_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7_2">
<span class="md-nav__icon md-icon"></span>
API Reference
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../api/reference/auth/" class="md-nav__link">
<span class="md-ellipsis">
Authenticate
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../api/reference/getting_started/" class="md-nav__link">
<span class="md-ellipsis">
Getting Started
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../api/reference/graphql/" class="md-nav__link">
<span class="md-ellipsis">
GraphQL API
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8">
<div class="md-nav__link md-nav__container">
<a href="../../../release_notes/" class="md-nav__link ">
<span class="md-ellipsis">
Release Notes
</span>
</a>
<label class="md-nav__link " for="__nav_8">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Release Notes
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../release_notes/2024.11/" class="md-nav__link">
<span class="md-ellipsis">
2024.11
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.10/" class="md-nav__link">
<span class="md-ellipsis">
2024.10
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.09/" class="md-nav__link">
<span class="md-ellipsis">
2024.09
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.08/" class="md-nav__link">
<span class="md-ellipsis">
2024.08
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.07/" class="md-nav__link">
<span class="md-ellipsis">
2024.07
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.06/" class="md-nav__link">
<span class="md-ellipsis">
2024.06
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.05/" class="md-nav__link">
<span class="md-ellipsis">
2024.05
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.04/" class="md-nav__link">
<span class="md-ellipsis">
2024.04
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.03/" class="md-nav__link">
<span class="md-ellipsis">
2024.03
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.02/" class="md-nav__link">
<span class="md-ellipsis">
2024.02
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../release_notes/2024.01/" class="md-nav__link">
<span class="md-ellipsis">
2024.01
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9">
<div class="md-nav__link md-nav__container">
<a href="../../../downloads/" class="md-nav__link ">
<span class="md-ellipsis">
Downloads
</span>
</a>
<label class="md-nav__link " for="__nav_9">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9">
<span class="md-nav__icon md-icon"></span>
Downloads
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_9_2">
<div class="md-nav__link md-nav__container">
<a href="../../../downloads/nodezero_host/" class="md-nav__link ">
<span class="md-ellipsis">
NodeZero Host VM (OVA/VHD)
</span>
</a>
<label class="md-nav__link " for="__nav_9_2">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_9_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_9_2">
<span class="md-nav__icon md-icon"></span>
NodeZero Host VM (OVA/VHD)
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../../downloads/nodezero_host/n0_utility/" class="md-nav__link">
<span class="md-ellipsis">
N0 utility
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../downloads/host_check_script/" class="md-nav__link">
<span class="md-ellipsis">
Host Check Script
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../downloads/splunk_app/" class="md-nav__link">
<span class="md-ellipsis">
Splunk App
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../downloads/ubuntu_to_nodezero/" class="md-nav__link">
<span class="md-ellipsis">
Ubuntu Setup Script
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10">
<div class="md-nav__link md-nav__container">
<a href="../../../knowledge_base/" class="md-nav__link ">
<span class="md-ellipsis">
Knowledge Base
</span>
</a>
<label class="md-nav__link " for="__nav_10">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10">
<span class="md-nav__icon md-icon"></span>
Knowledge Base
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_2">
<label class="md-nav__link" for="__nav_10_2" id="__nav_10_2_label" tabindex="0">
<span class="md-ellipsis">
NodeZero Modules
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10_2">
<span class="md-nav__icon md-icon"></span>
NodeZero Modules
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_2_1">
<div class="md-nav__link md-nav__container">
<a href="../../../knowledge_base/modules/cyanide/" class="md-nav__link ">
<span class="md-ellipsis">
Cyanide
</span>
</a>
</div>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_10_2_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10_2_1">
<span class="md-nav__icon md-icon"></span>
Cyanide
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_3">
<div class="md-nav__link md-nav__container">
<a href="../../../knowledge_base/glossary/" class="md-nav__link ">
<span class="md-ellipsis">
Glossary
</span>
</a>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10_3">
<span class="md-nav__icon md-icon"></span>
Glossary
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4">
<div class="md-nav__link md-nav__container">
<a href="../../../knowledge_base/sensitive_data/" class="md-nav__link ">
<span class="md-ellipsis">
Sensitive Data
</span>
</a>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10_4">
<span class="md-nav__icon md-icon"></span>
Sensitive Data
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_5">
<div class="md-nav__link md-nav__container">
<a href="../../../knowledge_base/weaknesses/" class="md-nav__link ">
<span class="md-ellipsis">
Weaknesses
</span>
</a>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_10_5">
<span class="md-nav__icon md-icon"></span>
Weaknesses
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../knowledge_base/exposure_score/" class="md-nav__link">
<span class="md-ellipsis">
Exposure Score
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc">
<li class="md-nav__item">
<a href="#h3-cli-automated-nodezero-deployment-using-a-nodezero-runner" class="md-nav__link">
h3-cli: Automated NodeZero deployment using a NodeZero Runner
</a>
</li>
<li class="md-nav__item">
<a href="#installing-and-running-a-nodezero-runner" class="md-nav__link">
Installing and running a NodeZero Runner
</a>
</li>
<li class="md-nav__item">
<a href="#install-option-1-the-easy-way-recommended" class="md-nav__link">
Install option #1: The easy way (recommended)
</a>
</li>
<li class="md-nav__item">
<a href="#install-option-2-the-slightly-more-manual-way" class="md-nav__link">
Install option #2: The slightly more manual way
</a>
<nav class="md-nav" aria-label="Install option #2: The slightly more manual way">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#1-create-an-api-key-for-the-runner" class="md-nav__link">
1. Create an API key for the Runner
</a>
</li>
<li class="md-nav__item">
<a href="#2-install-h3-cli-on-your-docker-host" class="md-nav__link">
2. Install h3-cli on your Docker Host
</a>
</li>
<li class="md-nav__item">
<a href="#3-spin-up-the-runner-using-h3-cli" class="md-nav__link">
3. Spin up the Runner using h3-cli
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#additional-notes-about-the-runner" class="md-nav__link">
Additional notes about the Runner
</a>
</li>
<li class="md-nav__item">
<a href="#troubleshooting" class="md-nav__link">
Troubleshooting
</a>
<nav class="md-nav" aria-label="Troubleshooting">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#view-runner-command-errors" class="md-nav__link">
View Runner command errors
</a>
</li>
<li class="md-nav__item">
<a href="#docker-permission-errors" class="md-nav__link">
Docker permission errors
</a>
</li>
<li class="md-nav__item">
<a href="#retry" class="md-nav__link">
Retry
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#auto-start-runner-at-system-startup" class="md-nav__link">
Auto-start Runner at system startup
</a>
<nav class="md-nav" aria-label="Auto-start Runner at system startup">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#helpful-systemctl-commands-for-managing-the-runner-service" class="md-nav__link">
Helpful systemctl commands for managing the Runner service
</a>
</li>
<li class="md-nav__item">
<a href="#troubleshooting_1" class="md-nav__link">
Troubleshooting
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1>Automate NodeZero Deployment</h1>
<div><h2 id="h3-cli-automated-nodezero-deployment-using-a-nodezero-runner">h3-cli: Automated NodeZero deployment using a NodeZero Runner</h2>
<p>Part of the process of running an <em>internal</em> pentest involves launching the NodeZero Docker container on a
Docker Host within your private network. This is typically done by manually signing in to your Docker Host and
running the NodeZero Launch Script provided in the Portal.</p>
<p><strong>A NodeZero Runner enables automated deployment of the NodeZero Docker container.</strong> The NodeZero Runner is a
background process running on your Docker Host that listens for newly provisioned pentests and runs the NodeZero
Launch Script automatically. </p>
<p>This allows you to provision and deploy pentests fully from the Portal, without having to manually sign in and run the NodeZero Launch Script.
It also enables you to run pentests on an <a href="../recurring-pentests/">automated schedule</a>.</p>
<blockquote>
<p>A NodeZero Runner is used for <em>internal</em> pentests only. For <em>external</em> pentests, NodeZero is automatically deployed in the H3 cloud.</p>
</blockquote>
<p>Once a NodeZero Runner is up and running, you can assign new pentests to it from the Portal (or via h3-cli).
The Runner will launch NodeZero for the pentests assigned to it. </p>
<p>As your pentesting needs grow, you can spin up multiple NodeZero Runners across your network and assign pentests
to each of them, enabling autonomous pentesting from various subnets and perspectives within your environment.</p>
<h2 id="installing-and-running-a-nodezero-runner">Installing and running a NodeZero Runner</h2>
<p>There are two ways to install a Runner: </p>
<ol>
<li>The easy way, using the new <code>easy_install.sh</code> script that does most of the work for you (recommended).</li>
<li>The slightly more manual way of walking thru the installation steps.</li>
</ol>
<h2 id="install-option-1-the-easy-way-recommended">Install option #1: The easy way (recommended)</h2>
<p>Follow the steps below to install a NodeZero Runner on your Docker Host.</p>
<ol>
<li>Visit the <a href="https://portal.horizon3ai.com/runners" target="_blank">Runners</a> page in the Portal.</li>
<li>Click the <strong>Install Runner</strong> button, specify a name for the Runner, then click <strong>Submit</strong>.</li>
<li>Copy the provided installation command and run it on your Docker Host.</li>
</ol>
<p>Barring any errors, <strong>your NodeZero Runner is now up and running</strong>. The Runner will register itself
with the Portal and will be listed on the Runners page (you may need to refresh the page). </p>
<p><strong>Auto-Restart:</strong> If your Docker Host runs on a Linux system that supports <code>systemd</code>, the install script will attempt to
register the Runner as a system service with <code>systemd</code>. Once registered, <code>systemd</code> will automatically restart the Runner
upon a system reboot. See <a href="#auto-start-runner-at-system-startup">Auto-start Runner at system startup</a> for more info.</p>
<p>Behind the scenes, the above steps perform the following actions:</p>
<ol>
<li><strong>Create an <abbr title="Application Programming Interface">API</abbr> key for the Runner.</strong> The <abbr title="Application Programming Interface">API</abbr> key is granted <strong>NodeZero Runner</strong> permissions to the <abbr title="Application Programming Interface">API</abbr>.
This is a specialized role created just for NodeZero Runners, with very restricted access to your account.
The role <strong>CANNOT</strong> read existing pentest data, nor can it provision new pentests. The only thing it
can do is poll the <abbr title="Application Programming Interface">API</abbr> to detect when a pentest has been assigned to it, and then run the NodeZero Launch Script.</li>
<li><strong>Install h3-cli on your Docker Host.</strong> h3-cli is installed in a new <code>h3-cli</code> directory within the directory
where you ran the installation command.</li>
<li><strong>Spin up the Runner using h3-cli.</strong> The NodeZero Runner process is started via the <code>h3 start-runner</code> command.</li>
</ol>
<h2 id="install-option-2-the-slightly-more-manual-way">Install option #2: The slightly more manual way</h2>
<p>The steps below accomplish the same thing as install option #1, in a slightly more manual and transparent way. </p>
<h4 id="1-create-an-api-key-for-the-runner">1. Create an <abbr title="Application Programming Interface">API</abbr> key for the Runner</h4>
<p>The NodeZero Runner communicates with the H3 <abbr title="Application Programming Interface">API</abbr> using h3-cli. As such, it requires an <abbr title="Application Programming Interface">API</abbr> key.
<abbr title="Application Programming Interface">API</abbr> keys can be provisioned in the Portal <a href="https://portal.horizon3ai.com/account-settings" target="_blank">here</a> (or <a href="https://portal.horizon3ai.eu/account-settings" target="_blank">here</a> for EU).</p>
<p>We recommend setting the permission level to <strong>NodeZero Runner</strong>. This is a specialized role created
just for NodeZero Runners, with very restricted access to your account. The role
<strong>CANNOT</strong> read existing pentest data, nor can it provision new pentests. The only thing it
can do is poll the <abbr title="Application Programming Interface">API</abbr> to detect when a pentest has been assigned to it, and then run the NodeZero Launch Script.</p>
<h4 id="2-install-h3-cli-on-your-docker-host">2. Install h3-cli on your Docker Host</h4>
<p>The NodeZero Runner process is started via the h3-cli. Therefore, the h3-cli must be installed
on your Docker Host. </p>
<p>The quick-and-easy install steps are below. Simply copy+paste the commands into a shell on your Docker Host.
For reference, full installation instructions are available <a href="https://github.com/horizon3ai/h3-cli#installation-and-initial-setup" target="_blank">here</a>.</p>
<div class="highlight"><pre id="__code_0"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_0 > code"></button><code>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/horizon3ai/h3-cli
<span class="nb">cd</span><span class="w"> </span>h3-cli
bash<span class="w"> </span>install.sh<span class="w"> </span><span class="o">{</span>your-api-key-here<span class="o">}</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">H3_CLI_HOME</span><span class="o">=</span><span class="sb">`</span><span class="nb">pwd</span><span class="sb">`</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">"</span><span class="nv">$H3_CLI_HOME</span><span class="s2">/bin:</span><span class="nv">$PATH</span><span class="s2">"</span>
</code></pre></div>
<p>The above steps will:</p>
<ol>
<li>Install h3-cli from the public git repo</li>
<li><code>cd</code> into the h3-cli dir</li>
<li>Run the install.sh script, substituting <code>{your-api-key-here}</code> with the <abbr title="Application Programming Interface">API</abbr> key you created in step 1 above.</li>
<li>Add h3-cli to your command <code>$PATH</code></li>
</ol>
<p>Once installed, run the command below to verify h3-cli is working and is using your newly provisioned <abbr title="Application Programming Interface">API</abbr> key:</p>
<div class="highlight"><pre id="__code_1"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_1 > code"></button><code>h3<span class="w"> </span>whoami
</code></pre></div>
<h4 id="3-spin-up-the-runner-using-h3-cli">3. Spin up the Runner using h3-cli</h4>
<p>Use the following h3-cli command to spin up the NodeZero Runner:</p>
<div class="highlight"><pre id="__code_2"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_2 > code"></button><code>h3<span class="w"> </span>start-runner<span class="w"> </span>my-nodezero-runner<span class="w"> </span>/tmp/my-nodezero-runner.log
</code></pre></div>
<p>The NodeZero Runner process runs in the background and logs its output to the provided
log file, in this case <code>/tmp/my-nodezero-runner.log</code>. The process is disconnected from
the shell session, so it will continue to run in the background after you sign out.</p>
<p><strong>Auto-Restart:</strong> If your Docker Host runs on a Linux system that supports <code>systemd</code>, you can optionally
register the Runner as a system service with <code>systemd</code>. Once registered, <code>systemd</code> will automatically restart the Runner
upon a system reboot. See <a href="#auto-start-runner-at-system-startup">Auto-start Runner at system startup</a> for more info.</p>
<p><strong>Naming:</strong> Each NodeZero Runner is given a name, in this case <code>my-nodezero-runner</code>. The name can
be anything you want, but it should be unique if you spin up multiple Runners across your network.
The name helps you identify the Runner when assigning pentests to it.</p>
<p>To verify the Runner has connected to the H3 <abbr title="Application Programming Interface">API</abbr> and registered itself, run the command below:</p>
<div class="highlight"><pre id="__code_3"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_3 > code"></button><code>h3<span class="w"> </span>runners
</code></pre></div>
<p>You should see an entry for the Runner <code>my-nodezero-runner</code> that you just started.
You can now assign pentests to your NodeZero Runner from the Portal and the Runner will automatically launch NodeZero. </p>
<h2 id="additional-notes-about-the-runner">Additional notes about the Runner</h2>
<ul>
<li><strong>Runs as:</strong> The Runner process runs as the user that invoked <code>h3 start-runner</code>.</li>
<li><strong>Background process:</strong> The Runner process is disconnected from the shell session and runs in the background. It continues to run after the shell session is closed.</li>
<li><strong>Auto-Restart:</strong> To enable auto-restart of the Runner on system reboot, see <a href="#auto-start-runner-at-system-startup">Auto-start Runner at system startup</a>.</li>
<li><strong>Runner Log</strong>: To view the Runner log, use <code>h3 tail-runner {name}</code></li>
<li><strong>Stop Runner:</strong> To terminate the Runner process, use <code>h3 stop-runner {name}</code>.</li>
<li><strong>Delete Runner:</strong> To delete a Runner, use <code>h3 delete-runner {name}</code>.<ul>
<li>This only deletes its registration record with H3. If a deleted Runner is still active, it will be re-registered upon its next heartbeat.</li>
</ul>
</li>
<li><strong>Unique Runner names:</strong> Runner names should be treated as unique identifiers. Avoid re-using the same name for different Runners in your account.</li>
<li><strong>Rename Runner:</strong> You can NOT rename an existing Runner; however you can stop (and optionally delete) a Runner, then start a new Runner with a different name.<ul>
<li>❗ <strong>NOTE:</strong> if you saved the old Runner name to an op template, the template will need to be updated to use the new Runner name.</li>
</ul>
</li>
<li><strong>Auto-Injecting Credentials:</strong> Runners can also be used to <a href="../auto-inject-creds/">auto-inject credentials</a> into a pentest. </li>
</ul>
<h2 id="troubleshooting">Troubleshooting</h2>
<p>The NodeZero Runner polls the H3 <abbr title="Application Programming Interface">API</abbr> every 60s. The last polling time is reported in the output
of <code>h3 runners</code>, in the <code>last_heartbeat_at</code> field. If the Runner's last heartbeat is more than
a minute ago, then the Runner process has either terminated or lost connectivity to the H3 <abbr title="Application Programming Interface">API</abbr>.
In which case, sign-in to your Docker Host and check the health and connectivity of the Runner.</p>
<p>Check if the Runner process is alive:</p>
<div class="highlight"><pre id="__code_4"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_4 > code"></button><code>h3<span class="w"> </span>ps-runner
</code></pre></div>
<p>This will list the Runner processes on the local machine.</p>
<p>Look for errors in the log: </p>
<div class="highlight"><pre id="__code_5"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_5 > code"></button><code>h3<span class="w"> </span>tail-runner<span class="w"> </span><span class="o">{</span>runner_name<span class="o">}</span>
</code></pre></div>
<h3 id="view-runner-command-errors">View Runner command errors</h3>
<p>Use the following to list out the last 5 commands executed by the Runner. The output includes the exit status and output from the command:</p>
<div class="highlight"><pre id="__code_6"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_6 > code"></button><code>h3<span class="w"> </span>runner-commands<span class="w"> </span><span class="o">{</span>runner_name<span class="o">}</span>
</code></pre></div>
<h3 id="docker-permission-errors">Docker permission errors</h3>
<p>Example:
</p><div class="highlight"><pre id="__code_7"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_7 > code"></button><code tabindex="0"><span class="o">[</span><span class="c1">#] Checking Docker functionality by running the hello-world test container:</span>
<span class="o">[</span>+<span class="o">]</span><span class="w"> </span>PASSED:<span class="w"> </span>Docker<span class="w"> </span>version<span class="w"> </span>installed<span class="w"> </span>meets<span class="w"> </span>the<span class="w"> </span>minimum<span class="w"> </span>required<span class="w"> </span>version<span class="w"> </span><span class="m">20</span>.10.
<span class="o">[</span>!<span class="o">]</span><span class="w"> </span>FAILED:<span class="w"> </span>Failed<span class="w"> </span>to<span class="w"> </span>validate<span class="w"> </span>Docker.<span class="w"> </span>Verify<span class="w"> </span>this<span class="w"> </span>account<span class="w"> </span>has<span class="w"> </span>permissions<span class="w"> </span>to<span class="w"> </span>run<span class="w"> </span>Docker<span class="w"> </span>and<span class="w"> </span>retry.
</code></pre></div>
<p>If your Docker Host requires <code>sudo</code> to run <code>docker</code> commands, then you may need to start the Runner using <code>sudo</code> as well.</p>
<p>Alternatively, you try adding the user that invokes <code>h3 start-runner</code> to the <code>docker</code> group, for example (using <code>ubuntu</code> user):
</p><div class="highlight"><pre id="__code_8"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_8 > code"></button><code>sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span>ubuntu
sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>docker
</code></pre></div>
(Note: Make sure to log out and back in after changing groups for the actively logged on user)
<h3 id="retry">Retry</h3>
<p>After resolving issues with your Runner, you can retry a NodeZero deployment by directly queuing a request to the Runner
using the following command. Substitute <code>{op_id}</code> and <code>{runner_name}</code> for your specific usage. </p>
<div class="highlight"><pre id="__code_9"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_9 > code"></button><code>h3<span class="w"> </span>run-nodezero-on-runner<span class="w"> </span><span class="o">{</span>op_id<span class="o">}</span><span class="w"> </span><span class="o">{</span>runner_name<span class="o">}</span>
</code></pre></div>
<blockquote>
<p>You can use <code>h3 pentest</code> to get the <code>op_id</code> for the most recently created pentest.</p>
</blockquote>
<h2 id="auto-start-runner-at-system-startup">Auto-start Runner at system startup</h2>
<p>A common use case is to register your Runner to start automatically at system startup.
This ensures that your Runner will continue working even after the system is rebooted.</p>
<p>In order to do this you must register the Runner with the system's boot service.
Different systems have different boot services, but the most popular one used by various
Linux distributions is <code>systemd</code>. </p>
<p><strong>h3-cli provides built-in support for <code>systemd</code>.</strong> To register your Runner with <code>systemd</code>,
use the <code>h3 start-runner-service</code> command, example below. Note the command will attempt
to use <code>sudo</code> for running the necessary <code>systemd</code>/<code>systemctl</code> commands. </p>
<div class="highlight"><pre id="__code_10"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_10 > code"></button><code>h3<span class="w"> </span>start-runner-service<span class="w"> </span>my-nodezero-runner<span class="w"> </span>/tmp/my-nodezero-runner.log
</code></pre></div>
<blockquote>
<p>If your system uses a different boot service than <code>systemd</code>, contact us for assistance with setting up your NodeZero Runner service. </p>
</blockquote>
<p>If all goes well, your NodeZero Runner is now registered as a service with <code>systemd</code>. This means the Runner will...</p>
<ul>
<li>automatically start up at boot time</li>
<li>automatically be restarted if it fails for any reason</li>
</ul>
<p>The Runner service will be registered with <code>systemd</code> under the name <code>nodezero-runner-{runner-name}</code>. For example the command above
will register the service as <code>nodezero-runner-my-nodezero-runner</code>.</p>
<h3 id="helpful-systemctl-commands-for-managing-the-runner-service">Helpful <code>systemctl</code> commands for managing the Runner service</h3>
<p>To view the status of the Runner service, use <code>systemctl status</code>, for example:</p>
<div class="highlight"><pre id="__code_11"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_11 > code"></button><code>systemctl<span class="w"> </span>status<span class="w"> </span>nodezero-runner-my-nodezero-runner
</code></pre></div>
<p>To stop the Runner service:</p>
<div class="highlight"><pre id="__code_12"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_12 > code"></button><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>stop<span class="w"> </span>nodezero-runner-my-nodezero-runner
</code></pre></div>
<p>Note this will stop the current Runner service, but it will not de-register it from <code>systemd</code>.
This means the Runner service will be started again upon the next system boot. To disable the Runner service such that
it no longer starts at boot time, use <code>systemctl disable</code>, for example:</p>
<div class="highlight"><pre id="__code_13"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_13 > code"></button><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>disable<span class="w"> </span>nodezero-runner-my-nodezero-runner
</code></pre></div>
<p>To re-register the Runner service and re-enable it to start at boot time:</p>
<div class="highlight"><pre id="__code_14"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_14 > code"></button><code>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>nodezero-runner-my-nodezero-runner
</code></pre></div>
<p>To start the Runner service:</p>
<div class="highlight"><pre id="__code_15"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_15 > code"></button><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>start<span class="w"> </span>nodezero-runner-my-nodezero-runner
</code></pre></div>
<p>For more information related to <code>systemd</code> and <code>systemctl</code>, check out these resources:</p>
<ul>
<li><a href="https://www.redhat.com/sysadmin/linux-systemctl-manage-services" target="_blank">How to use systemctl to manage Linux services</a></li>
<li><a href="https://www.freedesktop.org/software/systemd/man/systemctl.html" target="_blank"><code>systemctl</code> man page</a></li>
<li><a href="https://en.wikipedia.org/wiki/Systemd" target="_blank"><code>systemd</code> wiki</a></li>
</ul>
<h3 id="troubleshooting_1">Troubleshooting</h3>
<ul>
<li><strong>209/STDOUT Error</strong>: This typically means <code>systemd</code> could not start the service because it did not have
permission to write to the log file (<code>/tmp/my-nodezero-runner.log</code> in the examples above). Try chmod'ing the
log file or simply delete it and let <code>systemd</code> create a new one.</li>
</ul></div>
<form class="md-feedback" name="feedback">
<fieldset>
<legend class="md-feedback__title">
Was this page helpful?
</legend>
<div class="md-feedback__inner">
<div class="md-feedback__list">
<button class="md-feedback__icon md-icon" type="submit" title="This page was helpful" data-md-value="1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 9v12H1V9h4m4 12a2 2 0 0 1-2-2V9c0-.55.22-1.05.59-1.41L14.17 1l1.06 1.06c.27.27.44.64.44 1.05l-.03.32L14.69 8H21a2 2 0 0 1 2 2v2c0 .26-.05.5-.14.73l-3.02 7.05C19.54 20.5 18.83 21 18 21H9m0-2h9.03L21 12v-2h-8.79l1.13-5.32L9 9.03V19Z"></path></svg>
</button>
<button class="md-feedback__icon md-icon" type="submit" title="This page could be improved" data-md-value="0">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 15V3h4v12h-4M15 3a2 2 0 0 1 2 2v10c0 .55-.22 1.05-.59 1.41L9.83 23l-1.06-1.06c-.27-.27-.44-.64-.44-1.06l.03-.31.95-4.57H3a2 2 0 0 1-2-2v-2c0-.26.05-.5.14-.73l3.02-7.05C4.46 3.5 5.17 3 6 3h9m0 2H5.97L3 12v2h8.78l-1.13 5.32L15 14.97V5Z"></path></svg>
</button>
</div>
<div class="md-feedback__note">
<div data-md-value="1" hidden="">
Thanks for your feedback!
</div>
<div data-md-value="0" hidden="">
Thanks for your feedback! Help us improve this page by using our <a href="https://docs.google.com/forms/d/e/1FAIpQLSeTQSnrZFus2ddoDR5p5h39lxGRAP9UcoY6Hc8YbCDIeBAZBQ/viewform?usp=sf_link" target="_blank" rel="noopener">feedback form</a>.
</div>
</div>
</div>
</fieldset>
</form>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden="" style="top: 80px;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"></path></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer">
<a href="../../readme/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Getting Started" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
Getting Started
</div>
</div>
</a>
<a href="../auto-inject-creds/" class="md-footer__link md-footer__link--next" aria-label="Next: Automate Injecting Credentials" rel="next">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
Automate Injecting Credentials
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "navigation.footer", "navigation.indexes", "navigation.tabs", "navigation.top", "navigation.tracking", "navigation.instant", "navigation.path", "search.highlight", "search.share", "search.suggest", "content.tabs.link"], "search": "../../../assets/javascripts/workers/search.dfff1995.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../../assets/javascripts/bundle.78eede0e.min.js"></script>
<script src="../../../javascripts/datadog-rum.js"></script>
<script src="../../../javascripts/event-listeners.js"></script>
<script>document$.subscribe(() => {const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});})</script>
</body></html>