Nectere suiteWeb UI for Ansiblev20261021-085128

Nectere Atlas

Atlas is a web UI for Ansible. It holds hosts, credentials and inventories, gives you an SSH terminal in the browser, and runs ad-hoc commands and file pushes across an inventory. Playbooks go through the Ansible station. Every job is logged with its output and who started it.

SSH terminal in the browser Ad-hoc commands and file pushes Groups and host variables Full log of every run
Get itNectere Array › Menu › Deploy › Nectere Atlas

01The app

Click a sidebar item to open that panel. The switch changes who is signed in.

Signed in as
Not securehttps://array.corp.lab/i/3f9a1c07/Overview

Projects, Playbooks, Variables and Collections belong to the Ansible station. It's still in progress and has a separate guide. Under Array sign-on, Array manages accounts, so Users and Sign Out are hidden.

02How the pieces fit

Hosts and credentials are set up once and joined in inventories. Most jobs start by picking an inventory.

HostOne machine: display name, hostname or IP, and optionally an SSH port and host variables.
CredentialUsername plus a password or SSH private key. Secrets aren't shown again after saving.
InventoryHosts plus the credential that reaches them. Can hold groups, inventory variables and per-host variables.
GroupNamed set of hosts in one inventory, such as webservers or nfs_servers. Hosts can be in several.
TerminalInteractive SSH session to one host, in its own browser window.
RunOne job against an inventory (command, ping, fact gather, file push), kept with its full output.

The usual order

  1. Hosts: add machines, several at a time if needed.
  2. Credentials: add the login they accept.
  3. Inventories: pick hosts and a credential, add groups if needed.
  4. Command Station: pick the inventory, press Ping Test, then run the job.
  5. Runs: full output of past jobs.

For a single machine, skip the inventory. Press Connect on the host and pick a credential.

03Getting Atlas

Atlas is deployed from Array's menu, Menu › Deploy › Nectere Atlas. When the tile shows Running, press Open. Updates, restarts and the activity log are on the back of the tile. The sign-in mode chosen at deploy decides how people get in.

Array sign-on (recommended)No separate Atlas password. Array admins are Atlas admins, and other Array users who can see the tile get standard access.
Application sign-inAtlas keeps its own users. Whoever opens the new tile first creates the admin account, and the admin adds the rest from Users.

04Sign-in and setup

With Application sign-in, the first visit to a new tile opens the setup screen and that person becomes the first admin. Everyone after that uses Sign In.

Screen
Not securehttps://array.corp.lab/i/3f9a1c07/setupSign-in
RuleValue
Sign-in lasts8 hours, then back to Sign In
Setup passwordAt least 4 characters, entered twice
First accountAlways an admin
Wrong username or passwordInvalid credentials, no hint which was wrong

Array sign-on

No setup screen or Sign In page; the tile opens straight to Overview. The Users panel shows User accounts are managed in Nectere Array. If the Array session expires, reopen the tile from Array.

Sidebar

Same items for every role.

Notifications

Messages stack above Sign Out: green for success, rose for errors, blue for info. Errors stay 8 seconds, the rest fade after 5.

Footer

Server clock and Atlas version.

06Overview

The landing page after sign-in. Counts plus recent activity.

https://array.corp.lab/i/3f9a1c07/Overview
  1. 1Tiles. Counts, each linked to its panel. Running turns orange during a job; Failed turns rose if history holds a failure.
  2. 2Recent Runs. Eight newest runs with status, kind, label, inventory, user, age and duration. Click one for its log.
  3. 3Engine. Ansible and Python versions, variable set count, uptime since the last restart.
  4. 4Quick Start. Four steps from empty to a finished run, each linked to its panel.
DotMeans
amber, pulsingStill running
greenCompleted
roseFailed or cancelled

07Hosts

The display name is what Atlas and Ansible call the host everywhere, so keep it short with no spaces: web01, not Web Server 1. The address is a hostname or IP. Connect opens a terminal.

https://array.corp.lab/i/3f9a1c07/Hosts
ColumnShows
HostDisplay name, a vars tag if the host has variables, and the address when there's no description
AddressHostname or IP and SSH port (ssh · 22 by default)
DescriptionYour note, or a dash
ActionsConnect, edit, delete. Delete confirms with Delete host "web02"?

Adding hosts

+ Add Hosts takes one line per machine. + adds a line and × removes one. A blank port means 22, and blank lines are skipped.

New Hosts
MessageWhen
Added 3 hostsEvery line saved
Every host needs a display nameA line has an address but no name
Host "jump01" needs a hostname / IPA line has a name but no address
Host "db01" has a bad portThe port isn't a number
Added 2, failed 1 — …Partial save. Each failure's reason follows.
Add at least one hostSave Hosts with every line empty

Editing a host

The pencil also exposes Host variables (YAML), which follow the host into every inventory. Use them for things always true of the machine, like a Python path.

Edit Host
MessageWhen
Host updatedSaved
Host name is requiredDisplay Name is empty
Hostname / IP is requiredThe address is empty
Port must be a numberThe port has letters in it
Host deletedDelete confirmed

08SSH terminal

Connect on a host opens an interactive SSH session in a new browser window, logged in with the credential you pick.

Connect to Host

Only login credentials are listed. Vault passwords can't open a session.

State
Connect to Host

The terminal window

Terminal · web01
Warning: Permanently added 'web01.corp.lab' (ED25519) to the list of known hosts. Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-45-generic x86_64) System load: 0.08 Processes: 141 Usage of /: 37.4% of 48.27GB Users logged in: 1 Memory usage: 22% IPv4 address for eth0: 10.20.1.11 Last login: Sun Oct 25 18:04:12 2026 from 10.20.0.5 ubuntu@web01:~$ df -h /var Filesystem Size Used Avail Use% Mounted on /dev/sda1 48G 18G 30G 37% / ubuntu@web01:~$ sudo systemctl is-active chronyd active ubuntu@web01:~$
  • One window, one session. Closing it or typing exit ends the session.
  • Ten terminals at most per tile. No available SSH session slots. Close an existing session first. means close one and retry.
  • New host keys are accepted without a prompt and noted in a single line.
  • The terminal is a pop-up. If nothing appears after Connected! Opening terminal..., allow pop-ups for the Array address.
  • Terminals always use port 22 and ignore a custom SSH port. Command Station jobs honour it.

09Credentials

Secrets aren't shown after saving. Leave them blank when editing to keep them.

https://array.corp.lab/i/3f9a1c07/Credentials

Type also shows whether the secret is stored. no key! or no password! means edit the credential and fill it in. In use counts the inventories that depend on it, so check it before deleting.

The credential form

Type
Credential
MessageWhen
Credential 'db-maint' createdSaved a new one
Credential name is requiredName is empty
Username is requiredNo username on a password or key credential
Password is requiredA new password credential with no password
Private key is requiredA new key credential with no key pasted in
A credential named 'ops-key' already existsNames must be unique

Type is locked after saving. To move a login from password to key, create a new credential and point the inventory at it.

Vault passwordsThe third type, Ansible Vault password, opens encrypted files in playbook runs. See Vault credentials in the station guide.

10Inventories

Jobs target inventories. One per application or site plus a catch-all usually works.

https://array.corp.lab/i/3f9a1c07/Inventories

The form has three tabs.

Tab
Edit Inventory

Basics

Every host logs in with the inventory's credential. The host list is for ungrouped hosts; hosts ticked on the Groups tab are added anyway. If sudo wants a password, tick Include ansible_become_pass. Become Password defaults to the credential's.

Groups

+ Add Group, name it (letters, digits, underscores), tick its hosts. Group variables are YAML and apply only to that group.

Variables

Inventory variables apply to every host. Per-host variables has a box per selected host and only applies inside this inventory, unlike host variables set on the Hosts panel.

MessageWhen
Inventory 'nfs-lab' createdSaved a new one
Inventory name is requiredName is empty
Select a credentialNo credential chosen
Select at least one host (Basics or Groups tab)No hosts anywhere
Group name "nfs servers" must be letters, digits, underscoreSpace or dash in a group name. The form jumps to the Groups tab.
Group "nfs_clients" has no hostsAn empty group

YAML and Graph

YAML shows the inventory as Ansible receives it, passwords masked. Graph has Ansible parse it and draws the group tree with each host's resolved variables. A YAML mistake anywhere shows up here: the title ends in (rc 1) and the body has Ansible's error.

YAML
Graph

11Command Station

Runs a job against every host in an inventory. Ad-Hoc, Send Files, Ping Test, Gather Facts and the output pane are covered here. Project Playbook and Saved Playbook are in the station guide.

Tab
Output
Options
https://array.corp.lab/i/3f9a1c07/Command Station

Ad-Hoc

Runs one command on every host the pattern matches. Pick a Module, keep Host pattern at all or narrow it, enter the command and press Run.

ModuleUse it for
commandPlain commands like uptime or df -h. No pipes, redirects or &&.
shellPipes, redirects, globbing, chained commands
rawHosts without Python, like appliances or minimal installs
setup (gather facts)Fact collection. Takes no arguments, so the Command box is disabled.

Host patterns: all, a host, a group, wildcards like web*, or combinations like group1:&group2.

Send Files

Drop files on the drop area or click browse; × removes one. Set Remote Destination Path (a folder such as /etc) and File Mode (default 0644). Send copies every file to every host. Tick become (sudo) if the folder needs root.

Shared options

OptionDoes
InventoryRequired. Hosts and login for the job, listed with host counts.
Verbositynormal to -vvvv. Raise it to debug connection failures.
become (sudo)Run as root on the hosts
Variable setsUnder Variables, vault, tags & limits. Ctrl/cmd-click for several. Managed in the Ansible station.
Extra varsYAML or JSON, applied after variable sets
LimitHost pattern that narrows the run, e.g. nfs01*,!nfs02

Ping Test and Gather Facts work from any tab. Ping logs in to each host rather than using ICMP, so it tests the credential too.

Output

While a job runs the buttons are disabled, the pill shows running and output streams in with colour. Untick auto-scroll to read while lines arrive. Cancel stops the job; Open in Runs opens its record. Leaving the panel or closing the browser doesn't stop it.

ColourLines
greenSUCCESS, ok: [host]
amberCHANGED, changed: [host]
roseFAILED, UNREACHABLE!, fatal:, ERROR!
blueskipping: [host]
violet[WARNING] and [DEPRECATION WARNING]

Recent Runs under the output includes everyone's jobs on the tile.

12Runs

Every job with its full output, kept across restarts.

View
https://array.corp.lab/i/3f9a1c07/Runs
StatusMeans
runningStill going. Only running jobs can be cancelled.
completedReturn code 0 on every host
failedNon-zero return code, usually a failed or unreachable host
cancelledSomeone pressed Cancel

Run detail

Download saves the log as atlas-run-<id>.log.

ActionWhereDoes
CancelList and detail, while runningConfirms with Cancel this run?, then replies Cancel requested
Re-runList and detail, once finishedSame job, same options, opened as a new run. Not for file pushes, since the files aren't kept.
Delete (bin)List, once finishedConfirms with Delete this run and its log?
RefreshListReloads the list
KindComes from
adhocAd-Hoc and Gather Facts
pingPing Test
sendfilesSend Files
playbook, galaxy, syncThe Ansible station. See its guide.

Atlas keeps the 200 newest runs and prunes older finished ones. A job caught by an Atlas restart is marked failed with interrupted by server restart. Re-run it.

13Users and roles

Standard users can't manage users or back up and restore. Anyone who can sign in can use every stored credential, so hand out accounts accordingly.

https://array.corp.lab/i/3f9a1c07/Users
Edit User
CanAdminUser
Hosts, credentials, inventoriesYesYes
Terminals and Command StationYesYes
Runs, including cancel and deleteYesYes
Ansible stationYesYes
Manage usersYesNo, the list shows No additional users
Export and importYesNo, export replies Export failed
  • + Add User asks for username, password and role. Role defaults to User.
  • Usernames can't be changed. A blank password keeps the current one.
  • Delete confirms with Delete user "tnguyen"? This will revoke their sessions. and signs the user out everywhere. You can't delete yourself.

14Backup and restore

https://array.corp.lab/i/3f9a1c07/Backup
  • Export configuration downloads one zip of hosts, credentials, inventories, projects and run history. Admins only.
  • Passwords, keys and vault secrets are in the zip in readable form. Store it like a password file.
  • Import configuration asks This OVERWRITES all current configuration with the uploaded backup. Continue? There's no merge.
  • The restored setup applies after a restart: State › Restart on the tile in Array.
  • Backups restore onto other Atlas tiles too, so they work for cloning a setup.

15Things to know

  • The inventory decides the login. Hosts that need different logins go in different inventories.
  • Deleting a host is quiet. No in-use warning. It drops out of every inventory it was in.
  • Deleting a credential can break an inventory. The inventory shows missing under Credential and its jobs try to log in without one. Pick another credential.
  • Host variables follow the host; per-host variables stay in the inventory. Permanent facts go on Hosts, context-specific ones in the inventory.
  • Jobs carry on without you. Check Runs for the result.
  • Terminals end with their window. Anything still in the foreground goes with it.
  • Everyone shares one tile. Recent Runs, the Runs list and the ten terminal slots are shared.
  • Backups contain secrets. Anyone with the zip can read every stored password and key.

16Troubleshooting

You seeDo this
Select an inventoryPick one at the bottom of the form. Ping Test and Gather Facts need it too.
Enter a commandFill in the Command box, or switch the module to setup.
UNREACHABLE! in the outputNo answer, or the login was refused. Check address and port on Hosts, then Connect with the same credential to see the error directly.
Permission denied or Missing sudo passwordTick become (sudo), and in the inventory tick Include ansible_become_pass.
Graph title ends in (rc 1)A YAML box has an error. The Graph body says which host, group or inventory variables to fix.
No available SSH session slots…Ten terminals are open. Close one.
Connect says it's opening the terminal, then nothingPop-up blocked. Allow pop-ups for the Array address and retry.
A run failed with interrupted by server restartAtlas restarted mid-run. Press Re-run.
Users panel says No additional usersStandard user. Ask an admin.
Export failedAdmins only.
Signed out after 8 hoursSign-ins expire after 8 hours. Sign in again, or switch the tile to Array sign-on.