NMCTL - how to use netmaker from command line¶
a brief guide to using netmaker from the command line (without the UI)
Assumptions¶
using bash shell
netclient, nmctl and jq have been installed
netmaker server has been set up at example.com without UI (netmaker-ui section of docker-compose.yml has been deleted)
Setup superadmin user¶
Set base domain¶
export NN_DOMAIN=example.com
Create SuperAdmin User¶
curl --location 'https://api.$NM_DOMAIN/api/users/adm/createsuperadmin' \
--header 'Content-Type: application/json' \
--data '{
"username":"superadmin",
"password":"NetmakerIsAwe$ome"
}'
Set Context¶
nmctl context set commandline --endpoint https://api.$NM_DOMAIN --username $USER --password $PASSWORD
Create Admin User¶
nmctl user create --admin --name $USER --password $PASSWORD
Create Normal User¶
nmctl user create --name <user> --password <user-password>
Normal Operations by user¶
assume that users have been created by superAdmin
Set username/password¶
export USER=<user>
export PASSWORD=<user-password>
Set User Context¶
nmctl context set commandline --endpoint https://api.$NM_DOMAIN --username $USER --password $PASSWORD
Create Network¶
nmctl network create --name mynetwork --ip4v_addr 10.10.10.0/24
Create Enrollment Key¶
create one of Unlimited/LimitedUse/Expiration
Unlimited¶
export KEY=$(nmctl enrollment_key create --network mynetwork --unlimited | jq .token)
Limited Use (3)¶
export KEY=$(nmctl enrollment_key create --network mynetwork --uses 3 | jq .token)
With Expiration Time (2 days)¶
export EXPIRES=$(date -d "+2 days" +$s)
export KEY=$(nmctl enrollment_key create --network mynetwork --expires $EXPIRES | jq .token)
Join network¶
sudo netclient join -t $KEY