diff --git a/utils/.gitignore b/.gitignore similarity index 100% rename from utils/.gitignore rename to .gitignore diff --git a/deletehost.sh b/deletehost.sh index edd3eae..3b9faf1 100755 --- a/deletehost.sh +++ b/deletehost.sh @@ -4,63 +4,10 @@ ## description : A vm deployment ## usage : ./upgradevm.sh vmname ram restart -## Bash strict mode #################################### -set -o errexit # abort on nonzero exitstatus -set -o nounset # abort on unbound variable -set -o pipefail # don't hide errors within pipes - -## Bash color ########################################## -# Set colors -RED='\033[0;31m' -GREEN='\033[00;32m' -YELLOW='\033[00;33m' -BLUE='\033[00;34m' -PURPLE='\033[00;35m' -CYAN='\033[00;36m' -LIGHTGRAY='\033[00;37m' -LRED='\033[01;31m' -LGREEN='\033[01;32m' -LYELLOW='\033[01;33m' -LBLUE='\033[01;34m' -LPURPLE='\033[01;35m' -LCYAN='\033[01;36m' -WHITE='\033[01;37m' -NC='\033[0m' # No Color - -## Logs ################################################ -readonly SCRIPTNAME="$(basename "$0")" -info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } -######################################################## - -## Define variables #################################### -NETBOX_URL="https://netbox.exemple" -NETBOX_API_PATH="/api" -NETBOX_TOKEN="" - -PROXMOX_HOST="https://proxmox.exemple" -PROXMOX_USER="user" -PROXMOX_PASSWORD="" - -ZABBIX_USER="user" -ZABBIX_PASS="" -ZABBIX_SERVER="zabbix.tld" -ZABBIX_API="https://${ZABBIX_SERVER}/api_jsonrpc.php" -# First hostgroup of vm -ZABBIX_HOSTGROUPID1=2 -# second hostgroup of vm -ZABBIX_HOSTGROUPID2=15 -# First template of vm -ZABBIX_TEMPLATEID=10001 - -# Ansible path to run postinstall script -ASIBLE_PATH="/home/ansible/Ansible" - -RUDDER_API_TOKEN="" -RUDDER_SRV="https://rudder.exemple" - +## Import require config ############################## +source utils/config +source utils/color +source utils/logger ####################################################### if [ $# -eq 0 ] @@ -93,9 +40,20 @@ do fi done + info "Stopping VM" curl --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X POST "${PROXMOX_HOST}/api2/json/nodes/${nodename}/qemu/${VMID}/status/shutdown" &> /dev/null +RUNNING=$(curl -s --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X GET "${PROXMOX_HOST}/api2/json/nodes/${nodename}/qemu/${VMID}/status/current" | jq --raw-output '.data.status') +while [ ${RUNNING} == "running" ] +do + sleep 5 + RUNNING=$(curl -s --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X GET "${PROXMOX_HOST}/api2/json/nodes/${nodename}/qemu/${VMID}/status/current" | jq --raw-output '.data.status') +done + +info "Remove host from Proxmox" +curl --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X DELETE "${PROXMOX_HOST}/api2/json/nodes/${nodename}/qemu/${VMID}" &> /dev/null + info "Get token for Zabbix" ZABBIX_AUTH_TOKEN=$(curl -s -X POST -H "Content-Type: application/json-rpc" -d '{"jsonrpc": "2.0","method":"user.login","params":{"user":"'${ZABBIX_USER}'","password":"'${ZABBIX_PASS}'"},"auth": null,"id":0}' ${ZABBIX_API} | jq --raw-output '.result') @@ -119,9 +77,10 @@ curl -s -X DELETE -H 'Content-Type: application/json' -H "X-API-Token: ${RUDDER_ info "Remove host from Netbox" clusterid=$(curl -s -X GET -H "Authorization: Token ${NETBOX_TOKEN}" -H "Accept: application/json; indent=4" "${NETBOX_URL}${NETBOX_API_PATH}/dcim/devices/?name=${nodename}" | jq --raw-output '.results[0].cluster.id') deviceid=$(curl -s -X GET -H "Authorization: Token ${NETBOX_TOKEN}" -H "Accept: application/json; indent=4" "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/virtual-machines/?name=${VMNAME}" | jq --raw-output ".results[0].id") +interfaceid=$(curl -s -X GET -H "Authorization: Token ${NETBOX_TOKEN}" -H "Accept: application/json; indent=4" "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/interfaces/?name=eth0&virtual_machine=${VMNAME}" | jq --raw-output ".results[0].id") +ipid=$(curl -s -X GET -H "Authorization: Token ${NETBOX_TOKEN}" -H "Accept: application/json; indent=4" "${NETBOX_URL}${NETBOX_API_PATH}/ipam/ip-addresses/?interface_id=${interfaceid}" | jq --raw-output ".results[0].id") +curl -s -X DELETE -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" "${NETBOX_URL}${NETBOX_API_PATH}/ipam/ip-addresses/${ipid}/" &> /dev/null +curl -s -X DELETE -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/interfaces/${interfaceid}/" &> /dev/null curl -s -X DELETE -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/virtual-machines/${deviceid}/" &> /dev/null -info "Remove host from Proxmox" -curl --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X DELETE "${PROXMOX_HOST}/api2/json/nodes/${nodename}/qemu/${VMID}" &> /dev/null - info "Ending" diff --git a/deployvm.sh b/deployvm.sh index e32c4cb..8977869 100755 --- a/deployvm.sh +++ b/deployvm.sh @@ -4,61 +4,10 @@ ## description : A vm deployment ## usage : ./deployvm hypervisor/auto templateID/auto/None os-version vm ram cpu -## Bash strict mode #################################### -set -o errexit # abort on nonzero exitstatus -set -o nounset # abort on unbound variable -set -o pipefail # don't hide errors within pipes - -## Bash color ########################################## -# Set colors -RED='\033[0;31m' -GREEN='\033[00;32m' -YELLOW='\033[00;33m' -BLUE='\033[00;34m' -PURPLE='\033[00;35m' -CYAN='\033[00;36m' -LIGHTGRAY='\033[00;37m' -LRED='\033[01;31m' -LGREEN='\033[01;32m' -LYELLOW='\033[01;33m' -LBLUE='\033[01;34m' -LPURPLE='\033[01;35m' -LCYAN='\033[01;36m' -WHITE='\033[01;37m' -NC='\033[0m' # No Color - -## Logs ################################################ -readonly SCRIPTNAME="$(basename "$0")" -info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } -######################################################## - -## Define variables #################################### -NETBOX_URL="https://netbox.exemple" -NETBOX_API_PATH="/api" -NETBOX_TOKEN="" - -PROXMOX_HOST="https://proxmox.exemple" -PROXMOX_USER="user" -PROXMOX_PASSWORD="" - -ZABBIX_USER="user" -ZABBIX_PASS="" -ZABBIX_SERVER="zabbix.example.fr" -ZABBIX_API="https://${ZABBIX_SERVER}/api_jsonrpc.php" -ZABBIX_HOSTGROUPID1=2 -ZABBIX_HOSTGROUPID2=15 -ZABBIX_TEMPLATEID=10001 - -ANSIBLE_PATH="/home/ansible/Ansible" - -RUDDER_API_TOKEN="" -RUDDER_SRV="https://rudder.exmple" - -UPGRADERAM="/home/ansible/adminscrips/upgraderam.sh" -UPGRADECPU="/home/ansible/adminscrips/upgradecpu.sh" +## Import require config ############################## +source utils/config +source utils/color +source utils/logger ####################################################### if [ $# -eq 0 ] @@ -154,7 +103,6 @@ then UPID=$(curl -s --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X POST --data "newid=${NEWID}&format=qcow2&full=1&name=${VMNAME}" "${PROXMOX_HOST}/api2/json/nodes/${HYPERVISOR}/qemu/${VMTPLID}/clone" | jq --raw-output '.data') else info "Create new VM ${VMNAME}" - #curl -s --insecure -b "PVEAuthCookie=${PROXMOX_TOKEN}" -x POST --data '{"node": "'${HYPERVISOR}'", "vmid": '${NEWID}', "format": "qcow2", "full": true, "name": "'${VMNAME}'"}' "${PROXMOX_HOST}/api2/json/nodes/${HYPERVISOR}/qemu/${VMTPLID}/clone" fi @@ -186,15 +134,13 @@ GATEWAY=$(echo ${GATEWAY} | cut -d'/' -f1) info "Encode ${ADDRESS}" ENCODEADDRESS=$(echo ${ADDRESS} | sed "s@/@%2F@g") info "Configure ${VMNAME}" -${UPGRADERAM} ${VMNAME} ${RAM} -${UPGRADECPU} ${VMNAME} ${CPU} curl -s --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X PUT -d "ipconfig0=ip%3D${ENCODEADDRESS}%2Cgw%3D${GATEWAY}" "${PROXMOX_HOST}/api2/json/nodes/${HYPERVISOR}/qemu/${NEWID}/config" &> /dev/null info "Get Netbox cluster ID" CLUSTERID=$(curl -s -X GET -H "Authorization: Token ${NETBOX_TOKEN}" -H "Accept: application/json; indent=4" "${NETBOX_URL}${NETBOX_API_PATH}/dcim/devices/?name=${HYPERVISOR}" | jq --raw-output '.results[0].cluster.id') info "Add vm on Netbox" -VMID=$(curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" --data '{"name": "'${VMNAME}'", "cluster": '${CLUSTERID}', "role": 2, disk: 20}' "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/virtual-machines/" | jq --raw-output '.id') +VMID=$(curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" --data '{"name": "'${VMNAME}'", "cluster": '${CLUSTERID}', "role": 2, "disk": 20}' "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/virtual-machines/" | jq --raw-output '.id') info "Create interface" INTERFACEID=$(curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" --data '{"virtual_machine": '${VMID}',"name": "eth0", "mtu": 1500, "enabled": "true"}' "${NETBOX_URL}${NETBOX_API_PATH}/virtualization/interfaces/" | jq --raw-output ".id" ) @@ -202,6 +148,9 @@ INTERFACEID=$(curl -s -X POST -H "Content-Type: application/json" -H "Authorizat info "Add ip on netbox for this interface ${INTERFACEID}" curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Token ${NETBOX_TOKEN}" --data '{"address": "'${ADDRESS}'","vrf": '${VRF}', "status": "active", "interface": '${INTERFACEID}'}' "${NETBOX_URL}${NETBOX_API_PATH}/ipam/ip-addresses/" &> /dev/null +${UPGRADERAM} ${VMNAME} ${RAM} +${UPGRADECPU} ${VMNAME} ${CPU} + info "Starting ${VMNAME}" curl --insecure -H "Content-Type: application/x-www-form-urlencoded" -H "CSRFPreventionToken: ${PROXMOX_CSRF}" -b "PVEAuthCookie=${PROXMOX_TOKEN}" -X POST "${PROXMOX_HOST}/api2/json/nodes/${HYPERVISOR}/qemu/${NEWID}/status/start" &> /dev/null @@ -225,12 +174,11 @@ sleep 300 info "Run ansible playbook" cd ${ANSIBLE_PATH} -ansible-playbook -i hosts postint.yml --limit=${VMNAME} -ansible-playbook -i hosts ferm.yml --limit=${VMNAME} +ansible-playbook -i hosts ${POSTINSTALL} --limit=${VMNAME} info "Check if ${VMNAME} is pending" RESULT=$(curl -s -X GET -H 'Content-Type: application/json' -H "X-API-Token: ${RUDDER_API_TOKEN}" -H "X-API-Version: 12" ${RUDDER_SRV}/rudder/api/nodes/pending | jq --raw-output '.data.nodes | length') - +I=0 while [ "${RESULT}" -le "1" ]; do sleep 1 I=$((${I}+1)) diff --git a/facts.sh b/facts.sh index 6838d11..f13f497 100755 --- a/facts.sh +++ b/facts.sh @@ -4,28 +4,10 @@ ## description : A Nextcloud Update ## usage : ./nextcloud.sh -## Bash strict mode #################################### -set -o errexit # abort on nonzero exitstatus -set -o nounset # abort on unbound variable -set -o pipefail # don't hide errors within pipes - -## Logs ################################################ -readonly SCRIPTNAME="$(basename "$0")" -info() { echo -e "[INFO] $* " | logger --tag "${SCRIPTNAME}" --stderr ; } -warning() { echo -e "[WARNING] $* " | logger --tag "${SCRIPTNAME}" --stderr ; } -error() { echo -e "[ERROR] $* " | logger --tag "${SCRIPTNAME}" --stderr ; } -fatal() { echo -e "[FATAL] $* " | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } -######################################################## - -## Define variables #################################### -NETBOX_URL="https://netbox.example" -NETBOX_API_PATH="/api" -NETBOX_TOKEN="" -FACTS_FOLDER="PAHT/TO/FACT/STORE/facts" - -PROXMOX_HOST="https://proxmox.example" -PROXMOX_USER="user" -PROXMOX_PASSWORD="" +## Import require config ############################## +source utils/config +source utils/color +source utils/logger ####################################################### info "Get token for Proxmox" @@ -36,7 +18,6 @@ for nodes in $(curl -s --insecure -b "PVEAuthCookie=${PROXMOX_TOKEN}" "${PROXMOX do nodename=$(echo ${nodes} | base64 --decode | jq --raw-output '.node') clusterid=$(curl -s -X GET -H "Authorization: Token ${NETBOX_TOKEN}" -H "Accept: application/json; indent=4" "${NETBOX_URL}${NETBOX_API_PATH}/dcim/devices/?name=${nodename}" | jq --raw-output '.results[0].cluster.id') - #for nodes in $(curl -s --insecure -b "PVEAuthCookie=${PROXMOX_TOKEN}" "${PROXMOX_HOST}/api2/json/nodes/" | jq --raw-output '.data[] | @base64') info "Get VM" for qemus in $(curl -s --insecure -b "PVEAuthCookie=${PROXMOX_TOKEN}" "${PROXMOX_HOST}/api2/json/nodes/${nodename}/qemu/" | jq --raw-output '.data[] | @base64') do diff --git a/facts/.gitkeep b/facts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/resize.sh b/resize.sh index 79a9ef1..8036223 100755 --- a/resize.sh +++ b/resize.sh @@ -5,48 +5,10 @@ ## description : A vm deployment ## usage : ./deployvm VMName resize -## Bash strict mode #################################### -set -o errexit # abort on nonzero exitstatus -set -o nounset # abort on unbound variable -set -o pipefail # don't hide errors within pipes - -## Bash color ########################################## -# Set colors -RED='\033[0;31m' -GREEN='\033[00;32m' -YELLOW='\033[00;33m' -BLUE='\033[00;34m' -PURPLE='\033[00;35m' -CYAN='\033[00;36m' -LIGHTGRAY='\033[00;37m' -LRED='\033[01;31m' -LGREEN='\033[01;32m' -LYELLOW='\033[01;33m' -LBLUE='\033[01;34m' -LPURPLE='\033[01;35m' -LCYAN='\033[01;36m' -WHITE='\033[01;37m' -NC='\033[0m' # No Color - -## Logs ################################################ -readonly SCRIPTNAME="$(basename "$0")" -info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } -######################################################## - -## Define variables #################################### -NETBOX_URL="https://netbox.example" -NETBOX_API_PATH="/api" -NETBOX_TOKEN="" - -PROXMOX_HOST="https://proxmox.exemple" -PROXMOX_USER="user" -PROXMOX_PASSWORD="" -# Var to run postinstall -ANSIBLE_PATH="" - +## Import require config ############################## +source utils/config +source utils/color +source utils/logger ####################################################### if [ $# -eq 0 ] diff --git a/templates/host_vars.tpl b/templates/host_vars.tpl new file mode 100644 index 0000000..29fb05f --- /dev/null +++ b/templates/host_vars.tpl @@ -0,0 +1,25 @@ +--- +hostname: +ip_address: +prometheus_exporter_listen_address: + +ansible_ssh_common_args: '-o StrictHostKeyChecking=no' + +description: Serveur d'application + +# NTP +ntp_servers: + - 0.pool.ntp.org + - 1.pool.ntp.org + - 2.pool.ntp.org + +rudder_server: 10.10.11.15 + +ferm_rules: + z_98_prometheus: + - chain: INPUT + domains: + - ip + rules: + - rule: "proto tcp saddr 10.0.2.3 dport (9113) ACCEPT;" + comment: "Allow Prometheus server access to Prometheus exporter" diff --git a/upgradecpu.sh b/upgradecpu.sh index c4fc61d..32efae0 100755 --- a/upgradecpu.sh +++ b/upgradecpu.sh @@ -4,46 +4,10 @@ ## description : A vm deployment ## usage : ./upgradecpu.sh vmname cpu restart -## Bash strict mode #################################### -set -o errexit # abort on nonzero exitstatus -set -o nounset # abort on unbound variable -set -o pipefail # don't hide errors within pipes - -## Bash color ########################################## -# Set colors -RED='\033[0;31m' -GREEN='\033[00;32m' -YELLOW='\033[00;33m' -BLUE='\033[00;34m' -PURPLE='\033[00;35m' -CYAN='\033[00;36m' -LIGHTGRAY='\033[00;37m' -LRED='\033[01;31m' -LGREEN='\033[01;32m' -LYELLOW='\033[01;33m' -LBLUE='\033[01;34m' -LPURPLE='\033[01;35m' -LCYAN='\033[01;36m' -WHITE='\033[01;37m' -NC='\033[0m' # No Color - -## Logs ################################################ -readonly SCRIPTNAME="$(basename "$0")" -info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } -######################################################## - -## Define variables #################################### -NETBOX_URL="https://netbox.example" -NETBOX_API_PATH="/api" -NETBOX_TOKEN="" - -PROXMOX_HOST="https://proxmox.example" -PROXMOX_USER="user" -PROXMOX_PASSWORD="" - +## Import require config ############################## +source utils/config +source utils/color +source utils/logger ####################################################### if [ $# -eq 0 ] diff --git a/upgraderam.sh b/upgraderam.sh index dbb8f68..1257144 100755 --- a/upgraderam.sh +++ b/upgraderam.sh @@ -4,46 +4,10 @@ ## description : A vm deployment ## usage : ./upgradevm.sh vmname ram restart -## Bash strict mode #################################### -set -o errexit # abort on nonzero exitstatus -set -o nounset # abort on unbound variable -set -o pipefail # don't hide errors within pipes - -## Bash color ########################################## -# Set colors -RED='\033[0;31m' -GREEN='\033[00;32m' -YELLOW='\033[00;33m' -BLUE='\033[00;34m' -PURPLE='\033[00;35m' -CYAN='\033[00;36m' -LIGHTGRAY='\033[00;37m' -LRED='\033[01;31m' -LGREEN='\033[01;32m' -LYELLOW='\033[01;33m' -LBLUE='\033[01;34m' -LPURPLE='\033[01;35m' -LCYAN='\033[01;36m' -WHITE='\033[01;37m' -NC='\033[0m' # No Color - -## Logs ################################################ -readonly SCRIPTNAME="$(basename "$0")" -info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } -fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; } -######################################################## - -## Define variables #################################### -NETBOX_URL="https://netbox.example" -NETBOX_API_PATH="/api" -NETBOX_TOKEN="" - -PROXMOX_HOST="https://proxmox.example" -PROXMOX_USER="user" -PROXMOX_PASSWORD="" - +## Import require config ############################## +source utils/config +source utils/color +source utils/logger ####################################################### if [ $# -eq 0 ] diff --git a/utils/color b/utils/color new file mode 100644 index 0000000..82c57c9 --- /dev/null +++ b/utils/color @@ -0,0 +1,18 @@ +## Bash color ########################################## +# Set colors +RED='\033[0;31m' +GREEN='\033[00;32m' +YELLOW='\033[00;33m' +BLUE='\033[00;34m' +PURPLE='\033[00;35m' +CYAN='\033[00;36m' +LIGHTGRAY='\033[00;37m' +LRED='\033[01;31m' +LGREEN='\033[01;32m' +LYELLOW='\033[01;33m' +LBLUE='\033[01;34m' +LPURPLE='\033[01;35m' +LCYAN='\033[01;36m' +WHITE='\033[01;37m' +NC='\033[0m' # No Color + diff --git a/utils/config.template b/utils/config.template new file mode 100644 index 0000000..e3fc716 --- /dev/null +++ b/utils/config.template @@ -0,0 +1,34 @@ +## Bash strict mode #################################### +# Theses setting are usefull for keep in safe you're infrastructure +set -o errexit # abort on nonzero exitstatus +set -o nounset # abort on unbound variable +set -o pipefail # don't hide errors within pipes + +## Define variables #################################### +# For each token, give all right of you're account (read, write, put, patch, delete, clone (proxmox) etc...) +NETBOX_URL="https://netbox.exemple" +NETBOX_API_PATH="/api" +NETBOX_TOKEN="" + +PROXMOX_HOST="https://proxmox.example:8006" +PROXMOX_USER="user" +PROXMOX_PASSWORD="" + +ZABBIX_USER="user" +ZABBIX_PASS="" +ZABBIX_SERVER="zabbix.example" +ZABBIX_API="https://${ZABBIX_SERVER}/api_jsonrpc.php" +ZABBIX_HOSTGROUPID1=2 +ZABBIX_HOSTGROUPID2=15 +ZABBIX_TEMPLATEID=10001 + +# This variable is usefull to run postinstall playbook +ANSIBLE_PATH="/home/ansible/Ansible" +POSTINSTALL="postint.yml ferm.yml" + +RUDDER_API_TOKEN="" +RUDDER_SRV="https://rudder.example" + +UPGRADERAM="/your/git/path/management-script/upgraderam.sh" +UPGRADECPU="/your/git/path/management-script/upgradecpu.sh" + diff --git a/utils/logger b/utils/logger new file mode 100644 index 0000000..62129a0 --- /dev/null +++ b/utils/logger @@ -0,0 +1,6 @@ +## Logs ################################################ +readonly SCRIPTNAME="$(basename "$0")" +info() { echo -e "${LBLUE}[INFO] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +warning() { echo -e "${YELLOW}[WARNING] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +error() { echo -e "${LRED}[ERROR] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; } +fatal() { echo -e "${RED}[FATAL] $* ${NC}" | logger --tag "${SCRIPTNAME}" --stderr ; exit 1 ; }