diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml new file mode 100644 index 0000000..14ce08c --- /dev/null +++ b/.woodpecker/release.yml @@ -0,0 +1,48 @@ +matrix: + include: + - MOLECULE_DISTRO: centos7 + - MOLECULE_DISTRO: almalinux8 + - MOLECULE_DISTRO: almalinux9 + +clone: + git: + image: woodpeckerci/plugin-git + settings: + recursive: true + submodule_update_remote: true +when: + event: [ push ] + +steps: + create-release: + name: Test on ${MOLECULE_DISTRO} + image: guisea/ansible-molecule + pull: true + environment: + PY_COLORS: '1' + ANSIBLE_FORCE_COLOR: '1' + volumes: + - /var/run/docker.sock:/var/run/docker.sock + commands: + - molecule test --scenario-name ${MOLECULE_SCENARIO:-default} + #secrets: [ auth_duo_host, auth_duo_ikey, auth_duo_skey, auth_duo_mirror_url ] + when: + event: + - push + - manual + ntfy: + image: codeberg.org/l-x/woodpecker-ntfy + settings: + url: https://ntfy.cybercinch.nz/ci-status + title: "Test failed for ${CI_REPO_NAME} - Distro: ${MOLECULE_DISTRO} Scenario: ${MOLECULE_SCENARIO:-default}" + priority: urgent + icon: https://woodpecker-ci.org/img/logo.svg + tags: robot,warning,rotating_light,${CI_BUILD_EVENT},${CI_REPO_NAME} + message: > + 📝 Commit by ${CI_COMMIT_AUTHOR} on ${CI_COMMIT_BRANCH}: + ${CI_COMMIT_MESSAGE} + when: + event: [ push, manual ] + status: [ failure ] +depends_on: + - lint diff --git a/templates/dynmotd b/templates/dynmotd index e8ac102..5fb9842 100644 --- a/templates/dynmotd +++ b/templates/dynmotd @@ -15,84 +15,89 @@ # /usr/local/bin/dynmotd # -USER=`/usr/bin/env whoami` -HOSTNAME=`/usr/bin/env uname -n | /usr/bin/env cut -d. -f1` -IP=`/usr/bin/env ip route get 1 | /usr/bin/env grep -Po '(?<=src.)[\w\d.]+'` -IP6=`/usr/bin/env ip -6 addr | /usr/bin/env awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next ; } /inet6/ {print $3} '` -NUM_CPU=`cat /proc/cpuinfo | grep processor | wc -l` -#ROOT=`/usr/bin/df / -x fuse.gvfs-fuse-daemon -Ph | /usr/bin/egrep -i 'root|logvol|vda' | awk '{print $4}' | tr -d '\n'` -#HOME=`/usr/bin/df /home -x fuse.gvfs-fuse-daemon -Ph | grep home | awk '{print $4}' | tr -d '\n'` -#BACKUP=`/usr/bin/df -x fuse.gvfs-fuse-daemon -Ph | grep backup | awk '{print $4}' | tr -d '\n'` -FILESYSTEMS=`cat /etc/fstab | grep -v '#' | grep -v 'swap' | grep -v 'proc' | awk '{if(NF>0) {print $2}}'` -MEMORY=`/usr/bin/env free -m | /usr/bin/env grep "Mem" | /usr/bin/env awk '{print $2,"-",$3,"-",$4}'` -SWAP=`/usr/bin/env free -m | /usr/bin/env grep "Swap" | /usr/bin/env awk '{print $2,"-",$3,"-",$4}'` -PSA=`/usr/bin/env ps -Afl | /usr/bin/env wc -l` +if getent group "{{ admin_group }}" | grep -qw "$(whoami)"; then + USER=`/usr/bin/env whoami` + HOSTNAME=`/usr/bin/env uname -n | /usr/bin/env cut -d. -f1` + IP=`/usr/bin/env ip route get 1 | /usr/bin/env grep -Po '(?<=src.)[\w\d.]+'` + IP6=`/usr/bin/env ip -6 addr | /usr/bin/env awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next ; } /inet6/ {print $3} '` + NUM_CPU=`cat /proc/cpuinfo | grep processor | wc -l` + #ROOT=`/usr/bin/df / -x fuse.gvfs-fuse-daemon -Ph | /usr/bin/egrep -i 'root|logvol|vda' | awk '{print $4}' | tr -d '\n'` + #HOME=`/usr/bin/df /home -x fuse.gvfs-fuse-daemon -Ph | grep home | awk '{print $4}' | tr -d '\n'` + #BACKUP=`/usr/bin/df -x fuse.gvfs-fuse-daemon -Ph | grep backup | awk '{print $4}' | tr -d '\n'` + FILESYSTEMS=`cat /etc/fstab | grep -v '#' | grep -v 'swap' | grep -v 'proc' | awk '{if(NF>0) {print $2}}'` + MEMORY=`/usr/bin/env free -m | /usr/bin/env grep "Mem" | /usr/bin/env awk '{print $2,"-",$3,"-",$4}'` + SWAP=`/usr/bin/env free -m | /usr/bin/env grep "Swap" | /usr/bin/env awk '{print $2,"-",$3,"-",$4}'` + PSA=`/usr/bin/env ps -Afl | /usr/bin/env wc -l` -# time of day -HOUR=$(/usr/bin/env date +"%H") -if [ $HOUR -lt 12 -a $HOUR -ge 0 ] -then TIME="morning" -elif [ $HOUR -lt 17 -a $HOUR -ge 12 ] -then TIME="afternoon" + # time of day + HOUR=$(/usr/bin/env date +"%H") + if [ $HOUR -lt 12 -a $HOUR -ge 0 ] + then TIME="morning" + elif [ $HOUR -lt 17 -a $HOUR -ge 12 ] + then TIME="afternoon" + else + TIME="evening" + fi + + #System uptime + uptime=`/usr/bin/env cat /proc/uptime | cut -f1 -d.` + upDays=$((uptime/60/60/24)) + upHours=$((uptime/60/60%24)) + upMins=$((uptime/60%60)) + upSecs=$((uptime%60)) + + #System load + LOADAVG=`/usr/bin/env cat /proc/loadavg` + LOAD1=`echo $LOADAVG | /usr/bin/env awk {'print $1'}` + LOAD5=`echo $LOADAVG | /usr/bin/env awk {'print $2'}` + LOAD15=`echo $LOADAVG | /usr/bin/env awk {'print $3'}` + + echo "" + echo -e "\e[7m--- GOOD $TIME $USER ----\e[0m" + echo "" + #MESSAGE=`/usr/bin/fortune | /usr/bin/cowsay` + #echo -e " $MESSAGE" + + COLOR_COLUMN="\e[1m-" + COLOR_VALUE="\e[31m" + RESET_COLORS="\e[0m" + echo -e " + =========================================================================== + $COLOR_COLUMN- Hostname$RESET_COLORS............: $COLOR_VALUE $HOSTNAME $RESET_COLORS + {% if common_show_ipv6 == true %} + $COLOR_COLUMN- IP Address (Main v4)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS + $COLOR_COLUMN- IP Address (Main v6)$RESET_COLORS: $COLOR_VALUE $IP6 $RESET_COLORS + {% else %} $COLOR_COLUMN- IP Address (Default)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS + {% endif %} + {% if ansible_distribution == "Alpine" %} + $COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE Alpine `/usr/bin/env cat /etc/os-release` $RESET_COLORS + {% else %} + $COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE `/usr/bin/env cat /etc/os-release | /usr/bin/env grep PRETTY_NAME | /usr/bin/env cut -d '"' -f 2` $RESET_COLORS + {% endif %} + {% if ansible_distribution != "Alpine" %} + $COLOR_COLUMN- Users$RESET_COLORS...............: $COLOR_VALUE Currently `users | wc -w` user(s) logged on $RESET_COLORS + {% endif %} + =========================================================================== $RESET_COLORS + $COLOR_COLUMN- Current user$RESET_COLORS........: $COLOR_VALUE $USER $RESET_COLORS + $COLOR_COLUMN- Number of CPU$RESET_COLORS.......: $COLOR_VALUE $NUM_CPU $RESET_COLORS + $COLOR_COLUMN- CPU usage$RESET_COLORS...........: $COLOR_VALUE $LOAD1 - $LOAD5 - $LOAD15 (1-5-15 min) $RESET_COLORS + $COLOR_COLUMN- Memory used$RESET_COLORS.........: $COLOR_VALUE $MEMORY (total-used-free) $RESET_COLORS + $COLOR_COLUMN- Swap in use$RESET_COLORS.........: $COLOR_VALUE $SWAP (total-used-free) MB $RESET_COLORS + $COLOR_COLUMN- Processes$RESET_COLORS...........: $COLOR_VALUE $PSA running $RESET_COLORS + $COLOR_COLUMN- System uptime$RESET_COLORS.......: $COLOR_VALUE $upDays days $upHours hours $upMins minutes $upSecs seconds $RESET_COLORS + {% if ansible_virtualization_type != "lxc" %} + $COLOR_COLUMN- Disk space$RESET_COLORS..........: " + for FS in ${FILESYSTEMS}; do + echo -e " $COLOR_COLUMN- ..........$RESET_COLORS..........: $COLOR_VALUE `df -H ${FS} | grep -v 'Filesystem' | grep -v '^[[:space:]]*$' | awk '{print $6 \" \" $4}'` remaining $RESET_COLORS" + done + {% endif %} + echo -e " + =========================================================================== + " + if [ -f /etc/motd ]; then + /usr/bin/env cat /etc/motd + fi else - TIME="evening" -fi - -#System uptime -uptime=`/usr/bin/env cat /proc/uptime | cut -f1 -d.` -upDays=$((uptime/60/60/24)) -upHours=$((uptime/60/60%24)) -upMins=$((uptime/60%60)) -upSecs=$((uptime%60)) - -#System load -LOADAVG=`/usr/bin/env cat /proc/loadavg` -LOAD1=`echo $LOADAVG | /usr/bin/env awk {'print $1'}` -LOAD5=`echo $LOADAVG | /usr/bin/env awk {'print $2'}` -LOAD15=`echo $LOADAVG | /usr/bin/env awk {'print $3'}` - -echo "" -echo -e "\e[7m--- GOOD $TIME $USER ----\e[0m" -echo "" -#MESSAGE=`/usr/bin/fortune | /usr/bin/cowsay` -#echo -e " $MESSAGE" - -COLOR_COLUMN="\e[1m-" -COLOR_VALUE="\e[31m" -RESET_COLORS="\e[0m" -echo -e " -=========================================================================== - $COLOR_COLUMN- Hostname$RESET_COLORS............: $COLOR_VALUE $HOSTNAME $RESET_COLORS -{% if common_show_ipv6 == true %} - $COLOR_COLUMN- IP Address (Main v4)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS - $COLOR_COLUMN- IP Address (Main v6)$RESET_COLORS: $COLOR_VALUE $IP6 $RESET_COLORS -{% else %} $COLOR_COLUMN- IP Address (Default)$RESET_COLORS: $COLOR_VALUE $IP $RESET_COLORS -{% endif %} -{% if ansible_distribution == "Alpine" %} - $COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE Alpine `/usr/bin/env cat /etc/os-release` $RESET_COLORS -{% else %} - $COLOR_COLUMN- Release$RESET_COLORS.............: $COLOR_VALUE `/usr/bin/env cat /etc/os-release | /usr/bin/env grep PRETTY_NAME | /usr/bin/env cut -d '"' -f 2` $RESET_COLORS -{% endif %} -{% if ansible_distribution != "Alpine" %} - $COLOR_COLUMN- Users$RESET_COLORS...............: $COLOR_VALUE Currently `users | wc -w` user(s) logged on $RESET_COLORS -{% endif %} -=========================================================================== $RESET_COLORS - $COLOR_COLUMN- Current user$RESET_COLORS........: $COLOR_VALUE $USER $RESET_COLORS - $COLOR_COLUMN- Number of CPU$RESET_COLORS.......: $COLOR_VALUE $NUM_CPU $RESET_COLORS - $COLOR_COLUMN- CPU usage$RESET_COLORS...........: $COLOR_VALUE $LOAD1 - $LOAD5 - $LOAD15 (1-5-15 min) $RESET_COLORS - $COLOR_COLUMN- Memory used$RESET_COLORS.........: $COLOR_VALUE $MEMORY (total-used-free) $RESET_COLORS - $COLOR_COLUMN- Swap in use$RESET_COLORS.........: $COLOR_VALUE $SWAP (total-used-free) MB $RESET_COLORS - $COLOR_COLUMN- Processes$RESET_COLORS...........: $COLOR_VALUE $PSA running $RESET_COLORS - $COLOR_COLUMN- System uptime$RESET_COLORS.......: $COLOR_VALUE $upDays days $upHours hours $upMins minutes $upSecs seconds $RESET_COLORS -{% if ansible_virtualization_type != "lxc" %} - $COLOR_COLUMN- Disk space$RESET_COLORS..........: " -for FS in ${FILESYSTEMS}; do -echo -e " $COLOR_COLUMN- ..........$RESET_COLORS..........: $COLOR_VALUE `df -H ${FS} | grep -v 'Filesystem' | grep -v '^[[:space:]]*$' | awk '{print $6 \" \" $4}'` remaining $RESET_COLORS" -done -{% endif %} -echo -e " -=========================================================================== -" -if [ -f /etc/motd ]; then - /usr/bin/env cat /etc/motd -fi \ No newline at end of file + # Just exit :) + exit 0 +fi; diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..33e4898 --- /dev/null +++ b/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if getent group "wheel" | grep -qw "$(whoami)"; then + echo true +else + echo false +fi;