bpt22 pushed to branch main at Root / DBRoot / PostgreSQL

Commits:

3 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -41,13 +41,21 @@ sync:
    41 41
             exit 1
    
    42 42
           fi
    
    43 43
     
    
    44
    -    - cd ansible
    
    45
    -    - ansible-playbook main.yml -i inv.ini --private-key ../key
    
    44
    +    - |
    
    45
    +      cd ansible
    
    46
    +      if ./verify-hostnames.sh ../pg_hba.conf; then
    
    47
    +        ansible-playbook main.yml -i inv.ini --private-key ../key
    
    48
    +      else
    
    49
    +        exit 1
    
    50
    +      fi
    
    46 51
     
    
    47 52
       rules:
    
    48
    -    - changes:
    
    49
    -      - "pg_hba.conf"
    
    50
    -      - "postgresql.conf"
    
    53
    +    - if: '$CI_COMMIT_BRANCH == "main"'
    
    54
    +      changes:
    
    55
    +        - "pg_hba.conf"
    
    56
    +        - "postgresql.conf"
    
    57
    +      when: always
    
    58
    +    - when: never
    
    51 59
     
    
    52 60
     
    
    53 61
     variables:
    

  • ansible/verify-hostnames.sh
    1
    +#!/bin/sh
    
    2
    +
    
    3
    +pg_hba="$1"
    
    4
    +
    
    5
    +# Extrair hostnames não-IP e não-localhost
    
    6
    +hostnames=$(
    
    7
    +awk '
    
    8
    +  $1 == "hostssl" &&
    
    9
    +  $4 != "" &&
    
    10
    +  $4 != "localhost" &&
    
    11
    +  $4 !~ /^([0-9]{1,3}\.){3}[0-9]{1,3}(\/[0-9]+)?$/ &&
    
    12
    +  $4 !~ /:/ { print $4 }
    
    13
    +' "$pg_hba"
    
    14
    +)
    
    15
    +
    
    16
    +
    
    17
    +#
    
    18
    +# verify_reverse_lookup
    
    19
    +#
    
    20
    +verify_reverse_lookup() {
    
    21
    +
    
    22
    +    local host="$1"
    
    23
    +    local ip_addr="$2"
    
    24
    +
    
    25
    +    reverse=$(nslookup "$ip_addr" 2>/dev/null | awk '$2 == "name" { print $4 }')
    
    26
    +    if [ -z "$reverse" ]; then
    
    27
    +        echo "    ! No reverse DNS found for $ip_addr"
    
    28
    +        return 1
    
    29
    +    fi
    
    30
    +
    
    31
    +    echo "      Reverse: $reverse"
    
    32
    +    if expr "$reverse" : ".*$host" > /dev/null; then
    
    33
    +        echo "    ✔ Reverse DNS matches hostname"
    
    34
    +        return 0
    
    35
    +    else
    
    36
    +        echo "    ✘ Reverse DNS does NOT match hostname"
    
    37
    +        return 1
    
    38
    +    fi
    
    39
    +}
    
    40
    +
    
    41
    +
    
    42
    +#
    
    43
    +# verify_hostname
    
    44
    +#
    
    45
    +verify_hostname() {
    
    46
    +
    
    47
    +    echo "Checking $host"
    
    48
    +
    
    49
    +    local host=$1
    
    50
    +    local ip_addrs=$(nslookup "$host" 2> /dev/null | awk '/^Address: / { print $2 }')
    
    51
    +
    
    52
    +    if [ -n "$ip_addrs" ]; then
    
    53
    +        for ip_addr in $ip_addrs; do
    
    54
    +            echo "  > Resolved IP: $ip_addr"
    
    55
    +            if ! verify_reverse_lookup "$host" "$ip_addr"; then
    
    56
    +                return 1
    
    57
    +            fi
    
    58
    +        done
    
    59
    +    else
    
    60
    +        echo "  > Could not resolve any IP addresses"
    
    61
    +        return 1
    
    62
    +    fi
    
    63
    +}
    
    64
    +
    
    65
    +
    
    66
    +for host in $hostnames; do
    
    67
    +    if ! verify_hostname "$host"; then
    
    68
    +        echo "Verification failed"
    
    69
    +        exit 1
    
    70
    +    fi
    
    71
    +done
    
    72
    +

  • pg_hba.conf
    ... ... @@ -71,9 +71,9 @@ hostssl pnld_administrativo painelpnld pnldprod.c3sl.ufpr.br s
    71 71
     # Ademir
    
    72 72
     hostssl   ademir               ademir          10.254.221.0/24                 scram-sha-256
    
    73 73
     hostssl   ademir_dev           ademir          10.254.221.0/24                 scram-sha-256
    
    74
    -hostssl   ademir               ademir          ademir.c3sl.ufpr.br             scram-sha-256
    
    75
    -hostssl   ademir_dev           ademir          ademir.c3sl.ufpr.br             scram-sha-256
    
    76
    -hostssl   ademir_dev           ademir          gitlabrunner.c3sl.ufpr.br       scram-sha-256
    
    74
    +#hostssl   ademir               ademir          ademir.c3sl.ufpr.br             scram-sha-256
    
    75
    +#hostssl   ademir_dev           ademir          ademir.c3sl.ufpr.br             scram-sha-256
    
    76
    +#hostssl   ademir_dev           ademir          gitlabrunner.c3sl.ufpr.br       scram-sha-256
    
    77 77
     hostssl   ademir_dev           ademir          wrk1-k8stest.c3sl.ufpr.br       scram-sha-256
    
    78 78
     hostssl   ademir_dev           ademir          wrk2-k8stest.c3sl.ufpr.br       scram-sha-256
    
    79 79
     hostssl   ademir_dev           ademir          wrk3-k8stest.c3sl.ufpr.br       scram-sha-256