|
3 | 3 | # strategy = restrict |
4 | 4 | # complexity = medium |
5 | 5 | # disruption = medium |
6 | | -- name: "Read permission of GPG key directory" |
| 6 | +- name: "{{{ rule_title }}}: Read permission of GPG key directory" |
7 | 7 | ansible.builtin.stat: |
8 | 8 | path: /etc/pki/rpm-gpg/ |
9 | 9 | register: gpg_key_directory_permission |
10 | 10 | check_mode: no |
11 | 11 |
|
12 | 12 | # It should fail if it doesn't find any fingerprints in file - maybe file was not parsed well. |
13 | 13 |
|
14 | | -- name: Read signatures in GPG key |
| 14 | +{{% if "rhel" in families and major_version_ordinal >= 10 %}} |
| 15 | +# RHEL >= 10: Use sq command from sequoia-sq package |
| 16 | +- name: "{{{ rule_title }}}: Read signatures in GPG key using sq" |
| 17 | + ansible.builtin.command: sq inspect /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release |
| 18 | + changed_when: false |
| 19 | + failed_when: False |
| 20 | + check_mode: no |
| 21 | + register: gpg_fingerprints |
| 22 | + |
| 23 | +- name: "{{{ rule_title }}}: Set Fact - Installed GPG Fingerprints (sq format)" |
| 24 | + ansible.builtin.set_fact: |
| 25 | + gpg_installed_fingerprints: "{{ gpg_fingerprints.stdout | regex_findall('Fingerprint:\\s*([0-9A-Fa-f]+)', '\\1') | list }}" |
| 26 | +{{% else %}} |
| 27 | +# RHEL 8, 9 and other versions: Use gpg command |
| 28 | + |
| 29 | +- name: "{{{ rule_title }}}: Read signatures in GPG key" |
15 | 30 | # According to /usr/share/doc/gnupg2/DETAILS fingerprints are in "fpr" record in field 10 |
16 | 31 | ansible.builtin.command: gpg --show-keys --with-fingerprint --with-colons "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release" |
17 | 32 | changed_when: False |
18 | 33 | register: gpg_fingerprints |
19 | 34 | failed_when: False |
20 | 35 | check_mode: no |
21 | 36 |
|
22 | | -- name: Set Fact - Installed GPG Fingerprints |
| 37 | +- name: "{{{ rule_title }}}: Set Fact - Installed GPG Fingerprints" |
23 | 38 | ansible.builtin.set_fact: |
24 | | - gpg_installed_fingerprints: "{{ gpg_fingerprints.stdout | regex_findall('^pub.*\n(?:^fpr[:]*)([0-9A-Fa-f]*)', '\\1') | list }}" |
| 39 | + gpg_installed_fingerprints: "{{ gpg_fingerprints.stdout | regex_findall('^pub.*\\n(?:^fpr[:]*)([0-9A-Fa-f]*)', '\\1') | list }}" |
| 40 | + |
| 41 | +{{% endif %}} |
25 | 42 |
|
26 | | -- name: Set Fact - Valid fingerprints |
| 43 | +- name: "{{{ rule_title }}}: Set Fact - Valid fingerprints" |
27 | 44 | ansible.builtin.set_fact: |
28 | 45 | gpg_valid_fingerprints: |
29 | 46 | - "{{{ release_key_fingerprint }}}" |
30 | 47 | - "{{{ auxiliary_key_fingerprint }}}" |
| 48 | +{{% if "rhel" in families and major_version_ordinal >= 10 %}} |
| 49 | + - "{{{ pqc_key_fingerprint }}}" |
| 50 | +{{% endif %}} |
31 | 51 |
|
32 | | -- name: Import RedHat GPG key |
| 52 | +- name: "{{{ rule_title }}}: Import RedHat GPG key" |
33 | 53 | ansible.builtin.rpm_key: |
34 | 54 | state: present |
35 | 55 | key: /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release |
|
0 commit comments