157 lines
3.2 KiB
Bash
157 lines
3.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Recipe script for a Gentoo system to check basic configuration
|
||
|
|
||
|
# Define colors
|
||
|
RED='\033[1;31m'
|
||
|
BLUE='\033[1;34m'
|
||
|
GREEN='\033[1;32m'
|
||
|
NC='\033[0m' # No Color
|
||
|
|
||
|
# Packages to check
|
||
|
PACKAGES=(
|
||
|
# 'virtual/ssh'
|
||
|
# 'app-admin/rsyslog'
|
||
|
# 'net-misc/ntp'
|
||
|
# 'net-analyzer/icinga2'
|
||
|
# 'app-backup/borgbackup'
|
||
|
# 'virtual/cron'
|
||
|
# 'sys-process/cronie'
|
||
|
# 'net-analyzer/munin'
|
||
|
# 'app-admin/sysklogd'
|
||
|
# 'dev-vcs/git'
|
||
|
# 'net-analyzer/nrpe'
|
||
|
# 'net-analyzer/net-snmp'
|
||
|
# 'net-dns/bind-tools'
|
||
|
# 'dev-vcs/git'
|
||
|
# 'mail-mta/postfix'
|
||
|
# 'mail-mta/eeeepostfix'
|
||
|
)
|
||
|
|
||
|
# Package to check if it's a physical machine
|
||
|
PACKAGES_PHYSICAL=(
|
||
|
'sys-apps/smartmontools'
|
||
|
)
|
||
|
|
||
|
# Print packages not installed or with error at end script
|
||
|
PACKAGES_TO_CHECK=""
|
||
|
|
||
|
NAMES_TO_RESOLV_AND_PING=(
|
||
|
'grifon.fr'
|
||
|
'arn-fai.net'
|
||
|
'grifonfesfdsfdsf.fr'
|
||
|
)
|
||
|
|
||
|
RESOLVERS=(
|
||
|
'2a00:5884::7'
|
||
|
'89.234.186.4'
|
||
|
)
|
||
|
|
||
|
RESOLV_FAILED=""
|
||
|
|
||
|
RESOLVER_NOT_IN_ETC_RESOLVCONF=""
|
||
|
|
||
|
IP_NOT_RECORDED_IN_DNS=""
|
||
|
|
||
|
PING_FAILED=""
|
||
|
|
||
|
SERVICES_TO_CHECK=(
|
||
|
'rsyslog'
|
||
|
'ntpd'
|
||
|
'munin-node'
|
||
|
'iptables'
|
||
|
'ip6tables'
|
||
|
'sshd'
|
||
|
'postfix'
|
||
|
'nrpe'
|
||
|
'snmpd'
|
||
|
'hostname'
|
||
|
)
|
||
|
|
||
|
SERVICES_TO_CHECK_PHYSICAL=(
|
||
|
'smard'
|
||
|
)
|
||
|
|
||
|
# Get ALL locales IPs except loopback
|
||
|
LOCALES_IP_WITHOUT_LOOPBACK=$(ip a |grep inet |grep -v 'fe80\|127.0.0.1\|::1/128'| tr -s " " |cut -f3 -d' '| cut -d\/ -f1)
|
||
|
|
||
|
IPV4_ADMIN_NETWORK="172.18.0."
|
||
|
IPV6_ADMIN_NETWORK="fd01:1e02:40:"
|
||
|
|
||
|
IPV4_MASTER_MUNIN='^172\\\.18\\\.0\\\.13\$'
|
||
|
IPV6_MASTER_MUNIN='^fd01:1e02:40::3\$'
|
||
|
IPV4_MASTER_MUNIN_PRINT='^172\.18\.0\.13$'
|
||
|
IPV6_MASTER_MUNIN_PRINT='^fd01:1e02:40::3$'
|
||
|
|
||
|
BOOL_ADMIN_IPV4_NOT_CONFIGURED=0
|
||
|
BOOL_ADMIN_IPV6_NOT_CONFIGURED=0
|
||
|
|
||
|
# Print services not started or with error at end script
|
||
|
SERVICES_NOT_STARTED_OR_ERROR=""
|
||
|
|
||
|
# Print message at end script if hostname *.grif or *.grifon.fr not configured
|
||
|
BOOL_CHECK_HOSTNAME=0
|
||
|
|
||
|
SSH_CONFIG_CHECK_FAILED=""
|
||
|
NRPE_CONFIG_CHECK_FAILED=""
|
||
|
MUNIN_CONFIG_CHECK_FAILED=""
|
||
|
MAIL_ALIAS_CONFIG_CHECK_FAILED=""
|
||
|
|
||
|
MAIL_ALIAS_ROOT="admin@grifon.fr"
|
||
|
|
||
|
usage() {
|
||
|
printf "Usage: ./recipe_gentoo.sh [--physical]\n"
|
||
|
printf "option : \t-P, --physical : if the current server is not a VM but a physical machine\n"
|
||
|
printf "option : \t-h, --help print this current message\n"
|
||
|
}
|
||
|
|
||
|
# Check parameters
|
||
|
if [ $1 ]; then
|
||
|
if [ $# -gt 1 ]; then
|
||
|
echo "ERROR : to much parameters (one MAX)"
|
||
|
usage
|
||
|
exit 0
|
||
|
# Print help
|
||
|
elif [ $1 = '-h' ] || [ $1 = '--help' ]; then
|
||
|
usage
|
||
|
exit 0
|
||
|
# Set boolean physical
|
||
|
elif [ $1 = '-P' ] || [ $1 = '--physical' ];then
|
||
|
PACKAGES+=(${PACKAGES_PHYSICAL[@]})
|
||
|
SERVICES_TO_CHECK+=(${SERVICES_TO_CHECK_PHYSICAL[@]})
|
||
|
# If unknown parameter
|
||
|
else
|
||
|
echo "ERROR : unknown parameter"
|
||
|
usage
|
||
|
exit 0
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
echo "-------------------------------------------------"
|
||
|
echo -e "------- ${BLUE}RECIPE GENTOO - CHECK BASIC CONFIG${NC} ------"
|
||
|
echo -e "-------------------------------------------------\n"
|
||
|
|
||
|
. recipes/recipe_check_packages.sh
|
||
|
|
||
|
. recipes/recipe_check_hostname.sh
|
||
|
|
||
|
. recipes/recipe_check_dns_config.sh
|
||
|
|
||
|
. recipes/recipe_check_ping.sh
|
||
|
|
||
|
. recipes/recipe_check_ip_admin.sh
|
||
|
|
||
|
. recipes/recipe_check_services.sh
|
||
|
|
||
|
. recipes/recipe_check_ssh_config.sh
|
||
|
|
||
|
. recipes/recipe_check_nrpe_config.sh
|
||
|
|
||
|
. recipes/recipe_check_munin_config.sh
|
||
|
|
||
|
. recipes/recipe_check_mail_alias_config.sh
|
||
|
|
||
|
. recipes/recipe_final_summary.sh
|
||
|
|
||
|
exit 0
|