Merge branch 'main' into 8414_Fix_Permission_Denied_bacula_after_sh

This commit is contained in:
Xavi Lleó 2025-02-07 15:25:15 +01:00
commit c7d89c0043
12 changed files with 101 additions and 51 deletions

35
playbooks/debug.yml Normal file
View File

@ -0,0 +1,35 @@
- name: Gather facts from host and debug
hosts: all
gather_facts: yes
tasks:
- name: Print ansible facts
tags: facts
debug:
var: ansible_facts
- name: Print all variables
tags: vars
debug:
var: vars
- name: Print variable value
tags: var
when: var_name is defined
debug:
msg: "{{ var_name }}: {{ lookup('vars', var_name, default='undefined') }}"
- name: Check whether host is alive and reachable
tags: ping
ping:
- name: Fetch or create passbolt password
tags: passbolt
debug:
msg: "{{ lookup(passbolt, 'test', password=passbolt_password) }}"
vars:
passbolt_password: 'S3cR3tP4$$w0rd'
environment:
PASSBOLT_CREATE_NEW_RESOURCE: true
PASSBOLT_NEW_RESOURCE_PASSWORD_LENGTH: 18
PASSBOLT_NEW_RESOURCE_PASSWORD_SPECIAL_CHARS: false

View File

@ -1,10 +0,0 @@
- name: Gather facts from host
hosts: all
gather_facts: yes
tasks:
- name: Print all available facts
debug:
var: ansible_facts
- name: Print variable value
debug:
msg: "Variable: {{ ansible_fqdn }}"

View File

@ -1,12 +0,0 @@
- name: Fetch or create passbolt password
hosts: all
gather_facts: no
tasks:
- debug:
msg: "{{ lookup(passbolt, 'test', password=passbolt_password) }}"
vars:
passbolt_password: 'S3cR3tP4$$w0rd'
environment:
PASSBOLT_CREATE_NEW_RESOURCE: true
PASSBOLT_NEW_RESOURCE_PASSWORD_LENGTH: 18
PASSBOLT_NEW_RESOURCE_PASSWORD_SPECIAL_CHARS: false

View File

@ -1,6 +0,0 @@
- name: Check whether host is alive and reachable
hosts: all
gather_facts: no
become: no
tasks:
- ping:

View File

@ -6,6 +6,9 @@ myDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
. "$myDir/config.sh" . "$myDir/config.sh"
backupFile=$1 backupFile=$1
formatted_date() {
date '+%Y-%m-%d %H:%M:%S'
}
if [ -z "$backupFile" ]; then if [ -z "$backupFile" ]; then
echo "Backup file not defined." echo "Backup file not defined."
@ -22,6 +25,7 @@ echo "Restoring MySQL data from backup."
rm -rf "$restoreDir" rm -rf "$restoreDir"
mkdir -p "$restoreDir" mkdir -p "$restoreDir"
echo "$(formatted_date)"
echo "Decompresing backup." echo "Decompresing backup."
gzip --decompress --stdout "$backupFile" \ gzip --decompress --stdout "$backupFile" \
| mbstream -x --directory="$restoreDir" | mbstream -x --directory="$restoreDir"
@ -32,6 +36,7 @@ mariabackup \
--prepare \ --prepare \
--target-dir="$restoreDir" --target-dir="$restoreDir"
echo "$(formatted_date)"
echo "Stopping service." echo "Stopping service."
service mariadb stop service mariadb stop
if pgrep mariadbd; then pkill -9 mariadbd; fi if pgrep mariadbd; then pkill -9 mariadbd; fi

View File

@ -0,0 +1 @@
*/30 * * * * root /root/scripts/scheduler-log.sh

View File

@ -3,7 +3,9 @@ set -e
logFile="/var/log/mysql/error.log" logFile="/var/log/mysql/error.log"
dateFile="/tmp/mysql_scheduler_log-lastdate" dateFile="/tmp/mysql_scheduler_log-lastdate"
logTable="util.eventLog" logSchema="util"
logTable="eventLog"
pattern='^\d{4}-\d{2}-\d{2}\s+\d{1,2}:\d{2}:\d{2}\s+\d+\s+\[ERROR\] Event Scheduler:'
purgeDays=30 purgeDays=30
quote() { quote() {
@ -17,33 +19,55 @@ if [ "$?" -ne "0" ]; then
exit exit
fi fi
if [ -f "$dateFile" ]; then tableExists=$(mysql -Ns -e "SHOW TABLES FROM $logSchema LIKE '$logTable'")
fromDate=$(cat "$dateFile")
else if [ -z "$tableExists" ]; then
fromDate=0 mysql <<-EOF
CREATE SCHEMA IF NOT EXISTS $logSchema;
CREATE TABLE $logSchema.$logTable (
id int(11) NOT NULL AUTO_INCREMENT,
date datetime NOT NULL,
event varchar(512) NOT NULL,
error varchar(1024) NOT NULL,
PRIMARY KEY (id),
KEY date (date)
) ENGINE=InnoDB COMMENT='Event scheduler error log';
EOF
fi fi
lastDate=$(tail -n1 "$logFile" | awk '{print $1" "$2}') if [ -f "$dateFile" ]; then
toDate=$(date +%s -d "$lastDate") read -r fromDate < "$dateFile"
else
fromDate=$(date -d "-$purgeDays days" +%s)
fi
awk -v fromDate="$fromDate" -v toDate="$toDate" '{ toDate=$(date +%s)
grep -P "$pattern" "$logFile" | awk -v fromDate="$fromDate" -v toDate="$toDate" '{
split($1, date, "-"); split($1, date, "-");
split($2, time, ":"); split($2, time, ":");
timestamp = mktime(date[1]" "date[2]" "date[3]" "time[1]" "time[2]" "time[3]) timestamp = mktime(date[1]" "date[2]" "date[3]" "time[1]" "time[2]" "time[3])
if (timestamp >= fromDate && timestamp < toDate && $4" "$5" "$6 == "[ERROR] Event Scheduler:") { if (timestamp >= fromDate && timestamp < toDate) {
printf $1" "$2" "$7; printf $1" "$2" "$7;
for (i=8; i<=NF; i++) printf FS $i ; for (i=8; i<=NF; i++) printf FS $i ;
print ""; print "";
} }
}' "$logFile" | \ }' | \
\
while read line; do while read line; do
date="$(echo "$line" | cut -d' ' -f1,2)" date="$(echo "$line" | cut -d' ' -f1,2)"
event="$(echo "$line" | cut -d' ' -f3)" event="$(echo "$line" | cut -d' ' -f3)"
error="$(echo "$line" | cut -d' ' -f4-)" error="$(echo "$line" | cut -d' ' -f4-)"
echo "INSERT INTO $logTable (date, event, error)" \
"VALUES ($(quote "$date"), $(quote "$event"), $(quote "$error"))" | mysql mysql <<-EOF
INSERT INTO $logSchema.$logTable SET
date = $(quote "$date"),
event = $(quote "$event"),
error = $(quote "$error")
EOF
done done
echo -n "$toDate" > "$dateFile" echo "$toDate" > "$dateFile"
echo "DELETE FROM $logTable WHERE date < TIMESTAMPADD(DAY, -$purgeDays, NOW())" | mysql mysql <<-EOF
DELETE FROM $logSchema.$logTable
WHERE date < TIMESTAMPADD(DAY, -$purgeDays, NOW())
EOF

View File

@ -45,8 +45,16 @@
- name: Set MariaDB Cron to /etc/cron.d - name: Set MariaDB Cron to /etc/cron.d
template: template:
src: templates/cron_mariadb src: check-memory.cron
dest: /etc/cron.d/vn dest: /etc/cron.d/vn-check-memory
owner: root
group: root
mode: u=rw,g=r,o=r
- name: Configure MariaDB scheduler log CRON
copy:
src: scheduler-log.cron
dest: /etc/cron.d/vn-scheduler-log
owner: root owner: root
group: root group: root
mode: u=rw,g=r,o=r mode: u=rw,g=r,o=r

View File

@ -1,4 +1,3 @@
MAILTO="{{ sysadmin_mail }}" MAILTO="{{ sysadmin_mail }}"
*/15 * * * * root /root/scripts/check-memory.sh */15 * * * * root /root/scripts/check-memory.sh
*/30 * * * * root /root/scripts/scheduler-log.sh

View File

@ -1,6 +1,7 @@
vn_env: lab vn_env: lab
vn_first_time: false vn_first_time: false
vn_witness_checked: false vn_witness_checked: false
send_test_email: true
deb_packages: deb_packages:
- https://apt.verdnatura.es/pool/main/v/vn-host/vn-apt-source_3.0.1_all.deb - https://apt.verdnatura.es/pool/main/v/vn-host/vn-apt-source_3.0.1_all.deb
- https://apt.verdnatura.es/pool/main/v/vn-host/vn-host_3.0.1_all.deb - https://apt.verdnatura.es/pool/main/v/vn-host/vn-host_3.0.1_all.deb

View File

@ -11,6 +11,8 @@ if [ -f "/etc/vn/env" ]; then
fi fi
read -r VN_ENV < /etc/vn/env read -r VN_ENV < /etc/vn/env
ENV_TEXT="$VN_ENV"
case "$VN_ENV" in case "$VN_ENV" in
lab) lab)
ENV_COLOR="\033[01;32m" ENV_COLOR="\033[01;32m"
@ -26,17 +28,16 @@ if [ -f "/etc/vn/env" ]; then
;; ;;
*) *)
ENV_COLOR="\033[01;36m" ENV_COLOR="\033[01;36m"
ENV_TEXT="${VN_ENV:0:3}"
;; ;;
esac esac
ENV_TEXT=${VN_ENV^^}
if [ -z "$ENV_TEXT" ]; then if [ -z "$ENV_TEXT" ]; then
ENV_TEXT="???" ENV_TEXT="???"
ENV_COLOR="\033[01;37m" ENV_COLOR="\033[01;37m"
fi fi
ENV_TEXT="\[${ENV_COLOR}\]${ENV_TEXT}\[\033[00m\]" ENV_TEXT="\[${ENV_COLOR}\]${ENV_TEXT^^}\[\033[00m\]"
PS1="\u@$SHORT_HOST[$ENV_TEXT]:\w" PS1="\u@$SHORT_HOST[$ENV_TEXT]:\w"
if [ "$(id -u)" -eq 0 ]; then if [ "$(id -u)" -eq 0 ]; then

View File

@ -27,7 +27,11 @@
- name: Force execution of handlers immediately - name: Force execution of handlers immediately
meta: flush_handlers meta: flush_handlers
- name: Sending mail to verify relay host configuration works - name: Sending mail to verify relay host configuration works
when: >
exim_config.changed
and send_test_email
and awx_user_email is defined
and awx_user_email | length > 0
shell: > shell: >
sleep 2; echo "If you see this message, relayhost on {{ ansible_fqdn }} has been configured correctly." \ sleep 2; echo "If you see this message, relayhost on {{ ansible_fqdn }} has been configured correctly." \
| mailx -s "Relayhost test for {{ ansible_fqdn }}" "{{ sysadmin_mail }}" | mailx -s "Relayhost test for {{ ansible_fqdn }}" "{{ awx_user_email }}"
when: exim_config.changed