Deploy Semaphore & Netos Projects
Introduction
This guide details how to install Ansible Semaphore and automatically import all of the projects referenced in Netos NetOps. For example, to be able to Install NetBox, run through this process first.
1. Size Your Server
To run Semaphore and NetBox we'd suggest a server with a minimum of 4 x vCPU and 6GB of RAM, with SSD or NVMe disk.
In the future Netos will publish more comprehensive guidance on server sizing. Many variables need to be taken into account. For example, a static NetBox instance with 100k devices doesn't require many system resources (they are just rows in database tables after all), whereas a NetBox server with 1k devices that is getting hammered by constant API hits, many plugins, and many CPU intensive background jobs is a different story.
2. Install Ubuntu 24.04 LTS
The Netos Semaphore solution has been developed and tested only on Ubuntu 24.04 LTS (Long Term Support), which you can download from here. The ISO image will look like: ubuntu-24.04-live-server-amd64.iso
.
Netos Semaphore will not work on earlier versions of Ubuntu.
3. Install Semaphore
Run Installation Script
On a fresh install of Ubuntu 24.04 LTS with internet access, paste this script.
sudo wget https://raw.githubusercontent.com/netos-networks/netos-netops/refs/heads/main/easy-deploy.sh && sudo chmod +x easy-deploy.sh && sudo ./easy-deploy.sh
Alternatively, if you want to clone the repo yourself, follow these exact steps:
sudo mkdir /netos
cd /netos
sudo git clone https://github.com/netos-networks/netos-netops
cd netos-netops
sudo chmod +x deploy.sh
clear
sudo ./deploy.sh
The /netos/
directory is central to many features, and in many cases (such as hard coded Semaphore variables) it's not easy to change, unless we start running sed
on SQL dumps. Hence, please stick to the directory structure!
Installation Process
The deploy.sh
script will:
- Install dependencies on Ubuntu using
apt
- Install Ansible via
pip
into avenv
- Run the
semaphore-install
Ansible playbook which will:- Install MySQL and provision the database
- Install Semaphore
- Import the Netos Semaphore projects from a SQL dump (
semaphore-netos-netops.sql
)
- Present you with a URL to login to Semaphore to continue with the setup, e.g. https://10.1.1.1:3000
Re: step 4.3, we decided to import the Semaphore projects using a SQL backup rather than using the Semaphore UI Restore API. The Restore API doesn't support importing secret variables, which would have therefore required a significant amount of work for new users to just get a base instance up and running. You can of course (and should) change all the default passwords in a production build. Over time we'll transition to the Restore API.
Netos maintain a master/clean instance of the Semaphore project and create the semaphore-netos-netops.sql
file as updates are made. If you want to add playbooks or tasks to the project, please create an issue in Netos NetOps GitHub.
4. Installation Screenshots
The following screenshots show the installation process when deploy.sh
is run on the Ubuntu 24.04LTS server.
Note the URL you can connect to and to use TCP port 3000. Note that in the NGINX configuration guide, you can present this correctly using a FQDN on TCP443.
5. Connect to Semaphore
Once installed you should connect to a page like this, where you can login with the following default credentials:credentials. Check the Users, Accounts, and Tokens guide for more information about credentials and variables.
- Username:
admin
- Password:
admin
6. Delete Unwanted Projects & Tasks
You can delete unwanted projects, views, and tasks from the default Netos installation. When you pull repository updates, as outlined here, it will not change the Semaphore configuration. For example, maybe you want to delete these, if deployed: