@@ -91,9 +91,11 @@ set_buildinfo() {
91
91
92
92
# install_yq - install yq if not present
93
93
install_yq () {
94
- if ! command -v yq & > /dev/null; then
95
- wget -qO /usr/bin/yq https://github.com/mikefarah/yq/releases/download/v4.31.1/yq_linux_$( dpkg --print-architecture)
96
- chmod +x /usr/bin/yq
94
+ if [ -f /etc/debian_version ]; then
95
+ if ! command -v yq & > /dev/null; then
96
+ wget -qO /usr/bin/yq https://github.com/mikefarah/yq/releases/download/v4.31.1/yq_linux_$( dpkg --print-architecture)
97
+ chmod +x /usr/bin/yq
98
+ fi
97
99
fi
98
100
set +e
99
101
if ! command -v yq & > /dev/null; then
@@ -122,6 +124,7 @@ setup_netclient() {
122
124
chmod +x netclient
123
125
./netclient install
124
126
echo " Register token: $TOKEN "
127
+ sleep 2
125
128
netclient register -t $TOKEN
126
129
127
130
echo " waiting for netclient to become available"
@@ -143,7 +146,7 @@ setup_netclient() {
143
146
144
147
# configure_netclient - configures server's netclient as a default host and an ingress gateway
145
148
configure_netclient () {
146
-
149
+ sleep 2
147
150
NODE_ID=$( sudo cat /etc/netclient/nodes.yml | yq -r .netmaker.commonnode.id)
148
151
if [ " $NODE_ID " = " " ] || [ " $NODE_ID " = " null" ]; then
149
152
echo " Error obtaining NODE_ID for the new network"
@@ -298,24 +301,28 @@ install_dependencies() {
298
301
299
302
OS=$( uname)
300
303
if [ -f /etc/debian_version ]; then
301
- dependencies=" git wireguard wireguard -tools dnsutils jq docker.io docker-compose grep gawk"
304
+ dependencies=" git wireguard-tools dnsutils jq docker-ce docker-ce-cli containerd .io docker-buildx-plugin docker- compose-plugin grep gawk"
302
305
update_cmd=' apt update'
303
306
install_cmd=' apt-get install -y'
304
307
elif [ -f /etc/alpine-release ]; then
305
308
dependencies=" git wireguard jq docker.io docker-compose grep gawk"
306
309
update_cmd=' apk update'
307
310
install_cmd=' apk --update add'
308
311
elif [ -f /etc/centos-release ]; then
309
- dependencies=" git wireguard jq bind-utils docker.io docker-compose grep gawk"
310
- update_cmd=' yum update'
312
+ dependencies=" wget git wireguard-tools jq bind-utils docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin grep gawk"
313
+ update_cmd=' yum updateinfo'
314
+ install_cmd=' yum install -y'
315
+ elif [ -f /etc/amazon-linux-release ]; then
316
+ dependencies=" git wireguard-tools bind-utils jq docker grep gawk"
317
+ update_cmd=' yum updateinfo'
311
318
install_cmd=' yum install -y'
312
319
elif [ -f /etc/fedora-release ]; then
313
- dependencies=" git wireguard bind-utils jq docker.io docker-compose grep gawk"
314
- update_cmd=' dnf update '
320
+ dependencies=" wget git wireguard-tools bind-utils jq docker-ce docker-ce-cli containerd .io docker-buildx-plugin docker- compose-plugin grep gawk"
321
+ update_cmd=' dnf updateinfo '
315
322
install_cmd=' dnf install -y'
316
323
elif [ -f /etc/redhat-release ]; then
317
- dependencies=" git wireguard jq docker.io bind-utils docker-compose grep gawk"
318
- update_cmd=' yum update '
324
+ dependencies=" wget git wireguard-tools jq bind-utils docker-ce docker-ce-cli containerd .io docker-buildx-plugin docker-compose-plugin grep gawk"
325
+ update_cmd=' yum updateinfo '
319
326
install_cmd=' yum install -y'
320
327
elif [ -f /etc/arch-release ]; then
321
328
dependencies=" git wireguard-tools dnsutils jq docker.io docker-compose grep gawk"
@@ -326,7 +333,20 @@ install_dependencies() {
326
333
update_cmd=' pkg update'
327
334
install_cmd=' pkg install -y'
328
335
else
329
- install_cmd=' '
336
+ echo " -----------------------nm-quick.sh----------------------------------------------"
337
+ echo " OS supported and tested include:"
338
+ echo " Debian"
339
+ echo " Ubuntu"
340
+ echo " Fedora"
341
+ echo " Centos"
342
+ echo " Redhat"
343
+ echo " Amazon Linux"
344
+ echo " Rocky Linux"
345
+ echo " AlmaLinux"
346
+
347
+ echo " Your OS system is not in the support list, please chanage to an OS in the list"
348
+ echo " --------------------------------------------------------------------------------"
349
+ exit 1
330
350
fi
331
351
332
352
if [ -z " ${install_cmd} " ]; then
@@ -345,6 +365,50 @@ install_dependencies() {
345
365
echo " Unsupported architechure"
346
366
# exit 1
347
367
fi
368
+
369
+ # setup docker repository
370
+ if [ " $( cat /etc/* -release | grep ubuntu | wc -l) " -gt 0 ]; then
371
+ apt update
372
+ apt install -y ca-certificates curl
373
+ install -m 0755 -d /etc/apt/keyrings
374
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
375
+ chmod a+r /etc/apt/keyrings/docker.asc
376
+ echo \
377
+ " deb [arch=$( dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
378
+ $( . /etc/os-release && echo " $VERSION_CODENAME " ) stable" | \
379
+ tee /etc/apt/sources.list.d/docker.list > /dev/null
380
+ apt update
381
+ elif [ " $( cat /etc/* -release | grep debian | wc -l) " -gt 0 ]; then
382
+ apt update
383
+ apt install -y ca-certificates curl
384
+ install -m 0755 -d /etc/apt/keyrings
385
+ curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
386
+ chmod a+r /etc/apt/keyrings/docker.asc
387
+ echo \
388
+ " deb [arch=$( dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
389
+ $( . /etc/os-release && echo " $VERSION_CODENAME " ) stable" | \
390
+ tee /etc/apt/sources.list.d/docker.list > /dev/null
391
+ apt update
392
+ elif [ -f /etc/fedora-release ]; then
393
+ dnf -y install dnf-plugins-core
394
+ dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
395
+ elif [ -f /etc/centos-release ]; then
396
+ yum install -y yum-utils
397
+ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
398
+ if [ " $( cat /etc/* -release | grep ' release 8' | wc -l) " -gt 0 ]; then
399
+ yum install -y elrepo-release epel-release
400
+ elif [ " $( cat /etc/* -release | grep ' release 7' | wc -l) " -gt 0 ]; then
401
+ yum install -y elrepo-release epel-release
402
+ yum install -y yum-plugin-elrepo
403
+ fi
404
+ elif [ -f /etc/redhat-release ]; then
405
+ yum install -y yum-utils
406
+ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
407
+ if [ " $( cat /etc/* -release | grep ' release 8' | wc -l) " -gt 0 ]; then
408
+ yum install -y elrepo-release epel-release
409
+ fi
410
+ fi
411
+
348
412
set -- $dependencies
349
413
350
414
${update_cmd}
@@ -371,8 +435,10 @@ install_dependencies() {
371
435
else
372
436
if [ " ${OS} " = " OpenWRT" ] || [ " ${OS} " = " TurrisOS" ]; then
373
437
is_installed=$( opkg list-installed $1 | grep $1 )
374
- else
438
+ elif [ -f /etc/debian_version ] ; then
375
439
is_installed=$( dpkg-query -W --showformat=' ${Status}\n' $1 | grep " install ok installed" )
440
+ else
441
+ is_installed=$( yum list installed | grep $1 )
376
442
fi
377
443
if [ " ${is_installed} " != " " ]; then
378
444
echo " " $1 is installed
@@ -382,8 +448,10 @@ install_dependencies() {
382
448
sleep 5
383
449
if [ " ${OS} " = " OpenWRT" ] || [ " ${OS} " = " TurrisOS" ]; then
384
450
is_installed=$( opkg list-installed $1 | grep $1 )
385
- else
451
+ elif [ -f /etc/debian_version ] ; then
386
452
is_installed=$( dpkg-query -W --showformat=' ${Status}\n' $1 | grep " install ok installed" )
453
+ else
454
+ is_installed=$( yum list installed | grep $1 )
387
455
fi
388
456
if [ " ${is_installed} " != " " ]; then
389
457
echo " " $1 is installed
@@ -398,6 +466,27 @@ install_dependencies() {
398
466
shift
399
467
done
400
468
469
+ # Startup docker daemon for OS which does not start it automatically
470
+ if [ -f /etc/fedora-release ]; then
471
+ systemctl start docker
472
+ systemctl enable docker
473
+ elif [ -f /etc/amazon-linux-release ]; then
474
+ systemctl start docker
475
+ systemctl enable docker
476
+ usermod -a -G docker ec2-user
477
+ mkdir -p /usr/local/lib/docker/cli-plugins
478
+ curl -sL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$( uname -m) \
479
+ -o /usr/local/lib/docker/cli-plugins/docker-compose
480
+ chown root:root /usr/local/lib/docker/cli-plugins/docker-compose
481
+ chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
482
+ elif [ -f /etc/centos-release ]; then
483
+ systemctl start docker
484
+ systemctl enable docker
485
+ elif [ -f /etc/redhat-release ]; then
486
+ systemctl start docker
487
+ systemctl enable docker
488
+ fi
489
+
401
490
echo " -----------------------------------------------------"
402
491
echo " dependency check complete"
403
492
echo " -----------------------------------------------------"
@@ -582,7 +671,19 @@ install_netmaker() {
582
671
583
672
# start docker and rebuild containers / networks
584
673
cd " ${SCRIPT_DIR} "
585
- docker-compose up -d --force-recreate
674
+ if [ -f /etc/debian_version ]; then
675
+ docker compose up -d --force-recreate
676
+ elif [ -f /etc/fedora-release ]; then
677
+ docker compose up -d --force-recreate
678
+ elif [ -f /etc/amazon-linux-release ]; then
679
+ docker compose up -d --force-recreate
680
+ elif [ -f /etc/centos-release ]; then
681
+ docker compose up -d --force-recreate
682
+ elif [ -f /etc/redhat-release ]; then
683
+ docker compose up -d --force-recreate
684
+ else
685
+ docker-compose up -d --force-recreate
686
+ fi
586
687
cd -
587
688
wait_seconds 2
588
689
0 commit comments