# STDOUT:
---v---v---v---v---v---
Using /etc/ansible/ansible.cfg as config file

PLAY [Issue simple self-signed certificate] ************************************

TASK [Gathering Facts] *********************************************************
Thursday 18 August 2022  22:26:03 +0000 (0:00:00.020)       0:00:00.020 ******* 
ok: [sut]

TASK [linux-system-roles.certificate : Set version specific variables] *********
Thursday 18 August 2022  22:26:04 +0000 (0:00:01.217)       0:00:01.237 ******* 
included: /WORKDIR/dist-git-certificate-use_distro_python_cryptography-GEkvSr/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml for sut

TASK [linux-system-roles.certificate : Ensure ansible_facts used by role] ******
Thursday 18 August 2022  22:26:04 +0000 (0:00:00.038)       0:00:01.276 ******* 
ok: [sut]

TASK [linux-system-roles.certificate : Set platform/version specific variables] ***
Thursday 18 August 2022  22:26:04 +0000 (0:00:00.444)       0:00:01.720 ******* 
skipping: [sut] => (item=RedHat.yml)  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": "RedHat.yml",
    "skip_reason": "Conditional result was False"
}
skipping: [sut] => (item=RedHat.yml)  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": "RedHat.yml",
    "skip_reason": "Conditional result was False"
}
skipping: [sut] => (item=RedHat_9.yml)  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": "RedHat_9.yml",
    "skip_reason": "Conditional result was False"
}
skipping: [sut] => (item=RedHat_9.1.yml)  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": "RedHat_9.1.yml",
    "skip_reason": "Conditional result was False"
}

TASK [linux-system-roles.certificate : Ensure certificate role dependencies are installed] ***
Thursday 18 August 2022  22:26:05 +0000 (0:00:00.058)       0:00:01.778 ******* 
changed: [sut] => {
    "changed": true,
    "rc": 0,
    "results": [
        "Installed: python3-ply-3.11-14.el9.noarch",
        "Installed: python3-pyasn1-0.4.8-6.el9.noarch",
        "Installed: python3-cffi-1.14.5-5.el9.x86_64",
        "Installed: python3-pycparser-2.20-6.el9.noarch",
        "Installed: python3-cryptography-36.0.1-2.el9.x86_64"
    ]
}

TASK [linux-system-roles.certificate : Ensure provider packages are installed] ***
Thursday 18 August 2022  22:26:08 +0000 (0:00:03.252)       0:00:05.031 ******* 
changed: [sut] => (item=certmonger) => {
    "__certificate_provider": "certmonger",
    "ansible_loop_var": "__certificate_provider",
    "changed": true,
    "rc": 0,
    "results": [
        "Installed: nss-softokn-3.79.0-11.el9_0.x86_64",
        "Installed: certmonger-0.79.14-7.el9.x86_64",
        "Installed: nss-softokn-freebl-3.79.0-11.el9_0.x86_64",
        "Installed: nss-sysinit-3.79.0-11.el9_0.x86_64",
        "Installed: nss-util-3.79.0-11.el9_0.x86_64",
        "Installed: nspr-4.34.0-11.el9_0.x86_64",
        "Installed: nss-3.79.0-11.el9_0.x86_64"
    ]
}

TASK [linux-system-roles.certificate : Ensure pre-scripts hooks directory exists] ***
Thursday 18 August 2022  22:26:12 +0000 (0:00:03.761)       0:00:08.793 ******* 
changed: [sut] => (item=certmonger) => {
    "__certificate_provider": "certmonger",
    "ansible_loop_var": "__certificate_provider",
    "changed": true,
    "gid": 0,
    "group": "root",
    "mode": "0700",
    "owner": "root",
    "path": "/etc/certmonger//pre-scripts",
    "secontext": "unconfined_u:object_r:etc_t:s0",
    "size": 6,
    "state": "directory",
    "uid": 0
}

TASK [linux-system-roles.certificate : Ensure post-scripts hooks directory exists] ***
Thursday 18 August 2022  22:26:12 +0000 (0:00:00.456)       0:00:09.250 ******* 
changed: [sut] => (item=certmonger) => {
    "__certificate_provider": "certmonger",
    "ansible_loop_var": "__certificate_provider",
    "changed": true,
    "gid": 0,
    "group": "root",
    "mode": "0700",
    "owner": "root",
    "path": "/etc/certmonger//post-scripts",
    "secontext": "unconfined_u:object_r:etc_t:s0",
    "size": 6,
    "state": "directory",
    "uid": 0
}

TASK [linux-system-roles.certificate : Ensure provider service is running] *****
Thursday 18 August 2022  22:26:12 +0000 (0:00:00.295)       0:00:09.546 ******* 
changed: [sut] => (item=certmonger) => {
    "__certificate_provider": "certmonger",
    "ansible_loop_var": "__certificate_provider",
    "changed": true,
    "enabled": true,
    "name": "certmonger",
    "state": "started",
    "status": {
        "ActiveEnterTimestampMonotonic": "0",
        "ActiveExitTimestampMonotonic": "0",
        "ActiveState": "inactive",
        "After": "sysinit.target dbus-broker.service systemd-journald.socket dbus.socket system.slice network.target basic.target syslog.target",
        "AllowIsolate": "no",
        "AssertResult": "no",
        "AssertTimestampMonotonic": "0",
        "Before": "shutdown.target",
        "BlockIOAccounting": "no",
        "BlockIOWeight": "[not set]",
        "BusName": "org.fedorahosted.certmonger",
        "CPUAccounting": "yes",
        "CPUAffinityFromNUMA": "no",
        "CPUQuotaPerSecUSec": "infinity",
        "CPUQuotaPeriodUSec": "infinity",
        "CPUSchedulingPolicy": "0",
        "CPUSchedulingPriority": "0",
        "CPUSchedulingResetOnFork": "no",
        "CPUShares": "[not set]",
        "CPUUsageNSec": "[not set]",
        "CPUWeight": "[not set]",
        "CacheDirectoryMode": "0755",
        "CanFreeze": "yes",
        "CanIsolate": "no",
        "CanReload": "no",
        "CanStart": "yes",
        "CanStop": "yes",
        "CapabilityBoundingSet": "cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_kill cap_setgid cap_setuid cap_setpcap cap_linux_immutable cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_module cap_sys_rawio cap_sys_chroot cap_sys_ptrace cap_sys_pacct cap_sys_admin cap_sys_boot cap_sys_nice cap_sys_resource cap_sys_time cap_sys_tty_config cap_mknod cap_lease cap_audit_write cap_audit_control cap_setfcap cap_mac_override cap_mac_admin cap_syslog cap_wake_alarm cap_block_suspend cap_audit_read cap_perfmon cap_bpf cap_checkpoint_restore",
        "CleanResult": "success",
        "CollectMode": "inactive",
        "ConditionResult": "no",
        "ConditionTimestampMonotonic": "0",
        "ConfigurationDirectoryMode": "0755",
        "Conflicts": "shutdown.target",
        "ControlPID": "0",
        "CoredumpFilter": "0x33",
        "DefaultDependencies": "yes",
        "DefaultMemoryLow": "0",
        "DefaultMemoryMin": "0",
        "Delegate": "no",
        "Description": "Certificate monitoring and PKI enrollment",
        "DevicePolicy": "auto",
        "DynamicUser": "no",
        "EnvironmentFiles": "/etc/sysconfig/certmonger (ignore_errors=yes)",
        "ExecMainCode": "0",
        "ExecMainExitTimestampMonotonic": "0",
        "ExecMainPID": "0",
        "ExecMainStartTimestampMonotonic": "0",
        "ExecMainStatus": "0",
        "ExecStart": "{ path=/usr/sbin/certmonger ; argv[]=/usr/sbin/certmonger -S -p /run/certmonger.pid -n $OPTS ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }",
        "ExecStartEx": "{ path=/usr/sbin/certmonger ; argv[]=/usr/sbin/certmonger -S -p /run/certmonger.pid -n $OPTS ; flags= ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }",
        "ExitType": "main",
        "FailureAction": "none",
        "FileDescriptorStoreMax": "0",
        "FinalKillSignal": "9",
        "FragmentPath": "/usr/lib/systemd/system/certmonger.service",
        "FreezerState": "running",
        "GID": "[not set]",
        "GuessMainPID": "yes",
        "IOAccounting": "no",
        "IOReadBytes": "18446744073709551615",
        "IOReadOperations": "18446744073709551615",
        "IOSchedulingClass": "2",
        "IOSchedulingPriority": "4",
        "IOWeight": "[not set]",
        "IOWriteBytes": "18446744073709551615",
        "IOWriteOperations": "18446744073709551615",
        "IPAccounting": "no",
        "IPEgressBytes": "[no data]",
        "IPEgressPackets": "[no data]",
        "IPIngressBytes": "[no data]",
        "IPIngressPackets": "[no data]",
        "Id": "certmonger.service",
        "IgnoreOnIsolate": "no",
        "IgnoreSIGPIPE": "yes",
        "InactiveEnterTimestampMonotonic": "0",
        "InactiveExitTimestampMonotonic": "0",
        "JobRunningTimeoutUSec": "infinity",
        "JobTimeoutAction": "none",
        "JobTimeoutUSec": "infinity",
        "KeyringMode": "private",
        "KillMode": "control-group",
        "KillSignal": "15",
        "LimitAS": "infinity",
        "LimitASSoft": "infinity",
        "LimitCORE": "infinity",
        "LimitCORESoft": "0",
        "LimitCPU": "infinity",
        "LimitCPUSoft": "infinity",
        "LimitDATA": "infinity",
        "LimitDATASoft": "infinity",
        "LimitFSIZE": "infinity",
        "LimitFSIZESoft": "infinity",
        "LimitLOCKS": "infinity",
        "LimitLOCKSSoft": "infinity",
        "LimitMEMLOCK": "65536",
        "LimitMEMLOCKSoft": "65536",
        "LimitMSGQUEUE": "819200",
        "LimitMSGQUEUESoft": "819200",
        "LimitNICE": "0",
        "LimitNICESoft": "0",
        "LimitNOFILE": "524288",
        "LimitNOFILESoft": "1024",
        "LimitNPROC": "13959",
        "LimitNPROCSoft": "13959",
        "LimitRSS": "infinity",
        "LimitRSSSoft": "infinity",
        "LimitRTPRIO": "0",
        "LimitRTPRIOSoft": "0",
        "LimitRTTIME": "infinity",
        "LimitRTTIMESoft": "infinity",
        "LimitSIGPENDING": "13959",
        "LimitSIGPENDINGSoft": "13959",
        "LimitSTACK": "infinity",
        "LimitSTACKSoft": "8388608",
        "LoadState": "loaded",
        "LockPersonality": "no",
        "LogLevelMax": "-1",
        "LogRateLimitBurst": "0",
        "LogRateLimitIntervalUSec": "0",
        "LogsDirectoryMode": "0755",
        "MainPID": "0",
        "ManagedOOMMemoryPressure": "auto",
        "ManagedOOMMemoryPressureLimit": "0",
        "ManagedOOMPreference": "none",
        "ManagedOOMSwap": "auto",
        "MemoryAccounting": "yes",
        "MemoryAvailable": "infinity",
        "MemoryCurrent": "[not set]",
        "MemoryDenyWriteExecute": "no",
        "MemoryHigh": "infinity",
        "MemoryLimit": "infinity",
        "MemoryLow": "0",
        "MemoryMax": "infinity",
        "MemoryMin": "0",
        "MemorySwapMax": "infinity",
        "MountAPIVFS": "no",
        "NFileDescriptorStore": "0",
        "NRestarts": "0",
        "NUMAPolicy": "n/a",
        "Names": "certmonger.service",
        "NeedDaemonReload": "no",
        "Nice": "0",
        "NoNewPrivileges": "no",
        "NonBlocking": "no",
        "NotifyAccess": "none",
        "OOMPolicy": "stop",
        "OOMScoreAdjust": "0",
        "OnFailureJobMode": "replace",
        "OnSuccessJobMode": "fail",
        "PIDFile": "/run/certmonger.pid",
        "PartOf": "dbus-broker.service",
        "Perpetual": "no",
        "PrivateDevices": "no",
        "PrivateIPC": "no",
        "PrivateMounts": "no",
        "PrivateNetwork": "no",
        "PrivateTmp": "no",
        "PrivateUsers": "no",
        "ProcSubset": "all",
        "ProtectClock": "no",
        "ProtectControlGroups": "no",
        "ProtectHome": "no",
        "ProtectHostname": "no",
        "ProtectKernelLogs": "no",
        "ProtectKernelModules": "no",
        "ProtectKernelTunables": "no",
        "ProtectProc": "default",
        "ProtectSystem": "no",
        "RefuseManualStart": "no",
        "RefuseManualStop": "no",
        "ReloadResult": "success",
        "RemainAfterExit": "no",
        "RemoveIPC": "no",
        "Requires": "system.slice sysinit.target dbus.socket",
        "Restart": "no",
        "RestartKillSignal": "15",
        "RestartUSec": "100ms",
        "RestrictNamespaces": "no",
        "RestrictRealtime": "no",
        "RestrictSUIDSGID": "no",
        "Result": "success",
        "RootDirectoryStartOnly": "no",
        "RuntimeDirectoryMode": "0755",
        "RuntimeDirectoryPreserve": "no",
        "RuntimeMaxUSec": "infinity",
        "RuntimeRandomizedExtraUSec": "0",
        "SameProcessGroup": "no",
        "SecureBits": "0",
        "SendSIGHUP": "no",
        "SendSIGKILL": "yes",
        "Slice": "system.slice",
        "StandardError": "inherit",
        "StandardInput": "null",
        "StandardOutput": "journal",
        "StartLimitAction": "none",
        "StartLimitBurst": "5",
        "StartLimitIntervalUSec": "10s",
        "StartupBlockIOWeight": "[not set]",
        "StartupCPUShares": "[not set]",
        "StartupCPUWeight": "[not set]",
        "StartupIOWeight": "[not set]",
        "StateChangeTimestampMonotonic": "0",
        "StateDirectoryMode": "0755",
        "StatusErrno": "0",
        "StopWhenUnneeded": "no",
        "SubState": "dead",
        "SuccessAction": "none",
        "SyslogFacility": "3",
        "SyslogLevel": "6",
        "SyslogLevelPrefix": "yes",
        "SyslogPriority": "30",
        "SystemCallErrorNumber": "2147483646",
        "TTYReset": "no",
        "TTYVHangup": "no",
        "TTYVTDisallocate": "no",
        "TasksAccounting": "yes",
        "TasksCurrent": "[not set]",
        "TasksMax": "22334",
        "TimeoutAbortUSec": "1min 30s",
        "TimeoutCleanUSec": "infinity",
        "TimeoutStartFailureMode": "terminate",
        "TimeoutStartUSec": "1min 30s",
        "TimeoutStopFailureMode": "terminate",
        "TimeoutStopUSec": "1min 30s",
        "TimerSlackNSec": "50000",
        "Transient": "no",
        "Type": "dbus",
        "UID": "[not set]",
        "UMask": "0022",
        "UnitFilePreset": "disabled",
        "UnitFileState": "disabled",
        "UtmpMode": "init",
        "WatchdogSignal": "6",
        "WatchdogTimestampMonotonic": "0",
        "WatchdogUSec": "infinity"
    }
}

TASK [linux-system-roles.certificate : Ensure certificate requests] ************
Thursday 18 August 2022  22:26:13 +0000 (0:00:01.097)       0:00:10.644 ******* 
changed: [sut] => (item={'name': 'mycert_run_hooks', 'dns': 'www.example.com', 'ca': 'self-sign', 'run_before': 'touch /etc/pki/before_cert.tmp\n', 'run_after': 'touch /etc/pki/after_cert.tmp\n'}) => {
    "ansible_loop_var": "item",
    "changed": true,
    "item": {
        "ca": "self-sign",
        "dns": "www.example.com",
        "name": "mycert_run_hooks",
        "run_after": "touch /etc/pki/after_cert.tmp\n",
        "run_before": "touch /etc/pki/before_cert.tmp\n"
    }
}

MSG:

Certificate requested (new). Pre/Post run hooks updated.

PLAY [Verify certificate] ******************************************************

TASK [Gathering Facts] *********************************************************
Thursday 18 August 2022  22:26:15 +0000 (0:00:01.229)       0:00:11.873 ******* 
ok: [sut]

TASK [Verify each certificate] *************************************************
Thursday 18 August 2022  22:26:15 +0000 (0:00:00.716)       0:00:12.590 ******* 
included: /WORKDIR/dist-git-certificate-use_distro_python_cryptography-GEkvSr/tests/tasks/assert_certificate_parameters.yml for sut => (item={'path': '/etc/pki/tls/certs/mycert_run_hooks.crt', 'key_path': '/etc/pki/tls/private/mycert_run_hooks.key', 'subject': [{'name': 'commonName', 'oid': '2.5.4.3', 'value': 'www.example.com'}], 'subject_alt_name': [{'name': 'DNS', 'value': 'www.example.com'}]})

TASK [Set virtualenv_path] *****************************************************
Thursday 18 August 2022  22:26:15 +0000 (0:00:00.056)       0:00:12.647 ******* 
ok: [sut] => {
    "ansible_facts": {
        "__virtualenv_path": "/tmp/certificate-tests-venv"
    },
    "changed": false
}

TASK [Ensure python3 is installed] *********************************************
Thursday 18 August 2022  22:26:15 +0000 (0:00:00.043)       0:00:12.690 ******* 
ok: [sut] => {
    "changed": false,
    "rc": 0,
    "results": []
}

MSG:

Nothing to do

TASK [Install the package, force upgrade] **************************************
Thursday 18 August 2022  22:26:16 +0000 (0:00:01.022)       0:00:13.713 ******* 
changed: [sut] => {
    "changed": true,
    "cmd": [
        "/tmp/certificate-tests-venv/bin/pip3",
        "install",
        "-U",
        "pip"
    ],
    "name": [
        "pip"
    ],
    "requirements": null,
    "state": "latest",
    "version": null,
    "virtualenv": "/tmp/certificate-tests-venv"
}

STDOUT:

Requirement already satisfied: pip in ./certificate-tests-venv/lib/python3.9/site-packages (21.2.3)
Collecting pip
  Downloading pip-22.2.2-py3-none-any.whl (2.0 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.2.3
    Uninstalling pip-21.2.3:
      Successfully uninstalled pip-21.2.3
Successfully installed pip-22.2.2


TASK [Ensure Python's cryptography is installed] *******************************
Thursday 18 August 2022  22:26:23 +0000 (0:00:06.643)       0:00:20.356 ******* 
ok: [sut] => {
    "changed": false,
    "rc": 0,
    "results": []
}

MSG:

Nothing to do

TASK [Install certreader] ******************************************************
Thursday 18 August 2022  22:26:24 +0000 (0:00:01.005)       0:00:21.362 ******* 
changed: [sut] => {
    "changed": true,
    "cmd": [
        "/tmp/certificate-tests-venv/bin/pip3",
        "install",
        "certreader>=0.1.1"
    ],
    "name": [
        "certreader>=0.1.1"
    ],
    "requirements": null,
    "state": "present",
    "version": null,
    "virtualenv": "/tmp/certificate-tests-venv"
}

STDOUT:

Collecting certreader>=0.1.1
  Downloading certreader-0.1.1.tar.gz (4.4 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting cryptography
  Downloading cryptography-37.0.4-cp36-abi3-manylinux_2_24_x86_64.whl (4.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.1/4.1 MB 24.2 MB/s eta 0:00:00
Collecting pyasn1
  Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.1/77.1 kB 15.7 MB/s eta 0:00:00
Collecting pyyaml
  Downloading PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (661 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 661.8/661.8 kB 38.6 MB/s eta 0:00:00
Collecting cffi>=1.12
  Downloading cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (441 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 441.2/441.2 kB 39.0 MB/s eta 0:00:00
Collecting pycparser
  Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.7/118.7 kB 21.8 MB/s eta 0:00:00
Using legacy 'setup.py install' for certreader, since package 'wheel' is not installed.
Installing collected packages: pyasn1, pyyaml, pycparser, cffi, cryptography, certreader
  Running setup.py install for certreader: started
  Running setup.py install for certreader: finished with status 'done'
Successfully installed certreader-0.1.1 cffi-1.15.1 cryptography-37.0.4 pyasn1-0.4.8 pycparser-2.21 pyyaml-6.0


TASK [Retrieve certificate file stats] *****************************************
Thursday 18 August 2022  22:26:28 +0000 (0:00:03.555)       0:00:24.917 ******* 
ok: [sut] => {
    "changed": false,
    "stat": {
        "atime": 1660861574.9091997,
        "attr_flags": "",
        "attributes": [],
        "block_size": 4096,
        "blocks": 8,
        "charset": "us-ascii",
        "checksum": "d4cac8b44f5d883b73e999b69539b6b2d42e219d",
        "ctime": 1660861574.9071996,
        "dev": 51716,
        "device_type": 0,
        "executable": false,
        "exists": true,
        "gid": 0,
        "gr_name": "root",
        "inode": 16812843,
        "isblk": false,
        "ischr": false,
        "isdir": false,
        "isfifo": false,
        "isgid": false,
        "islnk": false,
        "isreg": true,
        "issock": false,
        "isuid": false,
        "mimetype": "text/plain",
        "mode": "0600",
        "mtime": 1660861574.9071996,
        "nlink": 1,
        "path": "/etc/pki/tls/certs/mycert_run_hooks.crt",
        "pw_name": "root",
        "readable": true,
        "rgrp": false,
        "roth": false,
        "rusr": true,
        "size": 1294,
        "uid": 0,
        "version": "3040225234",
        "wgrp": false,
        "woth": false,
        "writeable": true,
        "wusr": true,
        "xgrp": false,
        "xoth": false,
        "xusr": false
    }
}

TASK [Verify if certificate file exists] ***************************************
Thursday 18 August 2022  22:26:28 +0000 (0:00:00.425)       0:00:25.343 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify certificate file owner and group] *********************************
Thursday 18 August 2022  22:26:28 +0000 (0:00:00.050)       0:00:25.393 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify certificate permissions] ******************************************
Thursday 18 August 2022  22:26:28 +0000 (0:00:00.072)       0:00:25.466 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Retrieve key file stats] *************************************************
Thursday 18 August 2022  22:26:28 +0000 (0:00:00.069)       0:00:25.536 ******* 
ok: [sut] => {
    "changed": false,
    "stat": {
        "atime": 1660861574.7922018,
        "attr_flags": "",
        "attributes": [],
        "block_size": 4096,
        "blocks": 8,
        "charset": "us-ascii",
        "checksum": "234476ea6d91c9433dafbfeefcd747954b35cef6",
        "ctime": 1660861574.9071996,
        "dev": 51716,
        "device_type": 0,
        "executable": false,
        "exists": true,
        "gid": 0,
        "gr_name": "root",
        "inode": 8401275,
        "isblk": false,
        "ischr": false,
        "isdir": false,
        "isfifo": false,
        "isgid": false,
        "islnk": false,
        "isreg": true,
        "issock": false,
        "isuid": false,
        "mimetype": "text/plain",
        "mode": "0600",
        "mtime": 1660861574.9071996,
        "nlink": 1,
        "path": "/etc/pki/tls/private/mycert_run_hooks.key",
        "pw_name": "root",
        "readable": true,
        "rgrp": false,
        "roth": false,
        "rusr": true,
        "size": 1704,
        "uid": 0,
        "version": "2337559740",
        "wgrp": false,
        "woth": false,
        "writeable": true,
        "wusr": true,
        "xgrp": false,
        "xoth": false,
        "xusr": false
    }
}

TASK [Verify if key file exists] ***********************************************
Thursday 18 August 2022  22:26:29 +0000 (0:00:00.267)       0:00:25.803 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify key file owner and group] *****************************************
Thursday 18 August 2022  22:26:29 +0000 (0:00:00.081)       0:00:25.884 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Parse certificate] *******************************************************
Thursday 18 August 2022  22:26:29 +0000 (0:00:00.071)       0:00:25.956 ******* 
ok: [sut] => {
    "changed": false,
    "cmd": [
        "/tmp/certificate-tests-venv/bin/certreader2json",
        "/etc/pki/tls/certs/mycert_run_hooks.crt"
    ],
    "delta": "0:00:00.270702",
    "end": "2022-08-18 22:26:29.845590",
    "rc": 0,
    "start": "2022-08-18 22:26:29.574888"
}

STDOUT:

{
  "subject": [
    {
      "name": "commonName",
      "oid": "2.5.4.3",
      "value": "www.example.com"
    }
  ],
  "extensions": {
    "keyUsage": {
      "value": [
        "digital_signature",
        "key_encipherment"
      ],
      "critical": false
    },
    "subjectAltName": {
      "value": [
        {
          "name": "DNS",
          "value": "www.example.com"
        }
      ],
      "critical": false
    },
    "extendedKeyUsage": {
      "value": [
        {
          "name": "id-kp-serverAuth",
          "oid": "1.3.6.1.5.5.7.3.1"
        },
        {
          "name": "id-kp-clientAuth",
          "oid": "1.3.6.1.5.5.7.3.2"
        }
      ],
      "critical": false
    },
    "basicConstraints": {
      "value": {
        "ca": false
      },
      "critical": true
    },
    "subjectKeyIdentifier": {
      "value": "67:8F:9E:89:96:6A:A9:65:CB:31:A3:CA:E7:59:D4:65:13:9B:6B:C6",
      "critical": false
    },
    "authorityKeyIdentifier": {
      "value": "00:01:2B:11:14:57:77:69:C8:05:08:35:A8:82:0D:2F:C4:9D:CD:A0",
      "critical": false
    }
  },
  "signature_algorithm": {
    "algorithm": "sha256WithRSAEncryption",
    "signature": "45:59:D2:BF:42:BE:B4:48:E5:33:75:59:C4:9E:C0:94:79:B9:1F:62:F3:33:95:20:30:C8:9C:0C:65:6B:15:3C:2C:A8:55:52:67:32:82:87:06:62:B3:4F:14:E5:7C:66:65:BE:89:A4:FB:9C:07:77:08:1A:C9:8A:26:38:6A:7B:83:FB:39:D5:D6:F6:78:94:E2:79:3B:5B:25:5E:F7:6B:71:3B:C3:C0:BE:91:CE:3C:93:F7:35:10:51:7A:77:7E:3A:93:40:BC:B8:19:F8:EC:ED:E6:67:A2:90:6A:B4:CD:D3:BE:F0:0D:E5:C9:EA:E8:00:36:FD:FF:15:A7:6D:46:93:79:F9:D7:E4:76:B8:03:BD:FA:EE:25:40:3F:2C:90:9E:E3:9B:AD:D6:32:E8:35:CC:EB:50:6B:F1:6C:87:C3:84:0D:FE:B1:90:2A:EA:0C:BF:71:B5:BD:00:F6:0A:BE:D5:C8:A2:D0:92:5A:63:79:FF:5A:38:12:29:3C:53:42:FB:E6:71:0D:50:F0:E3:0D:7E:94:F5:69:6A:69:1A:A6:84:00:E7:F5:E3:EB:D1:41:9F:78:77:0B:FC:63:40:B8:37:C5:BC:89:29:1D:A2:2C:AE:2B:24:A3:98:DC:6F:F2:19:D7:47:E6:B8:F5:05:A0:E2:B6:27:14:2B:76:9B:F7"
  },
  "key_size": 2048,
  "validity": {
    "not_valid_after": "2023-08-18 22:26:14",
    "not_valid_before": "2022-08-18 22:26:14"
  }
}

TASK [Load certificate YAML to cert_issued variable] ***************************
Thursday 18 August 2022  22:26:29 +0000 (0:00:00.679)       0:00:26.635 ******* 
ok: [sut] => {
    "ansible_facts": {
        "cert_issued": {
            "extensions": {
                "authorityKeyIdentifier": {
                    "critical": false,
                    "value": "00:01:2B:11:14:57:77:69:C8:05:08:35:A8:82:0D:2F:C4:9D:CD:A0"
                },
                "basicConstraints": {
                    "critical": true,
                    "value": {
                        "ca": false
                    }
                },
                "extendedKeyUsage": {
                    "critical": false,
                    "value": [
                        {
                            "name": "id-kp-serverAuth",
                            "oid": "1.3.6.1.5.5.7.3.1"
                        },
                        {
                            "name": "id-kp-clientAuth",
                            "oid": "1.3.6.1.5.5.7.3.2"
                        }
                    ]
                },
                "keyUsage": {
                    "critical": false,
                    "value": [
                        "digital_signature",
                        "key_encipherment"
                    ]
                },
                "subjectAltName": {
                    "critical": false,
                    "value": [
                        {
                            "name": "DNS",
                            "value": "www.example.com"
                        }
                    ]
                },
                "subjectKeyIdentifier": {
                    "critical": false,
                    "value": "67:8F:9E:89:96:6A:A9:65:CB:31:A3:CA:E7:59:D4:65:13:9B:6B:C6"
                }
            },
            "key_size": 2048,
            "signature_algorithm": {
                "algorithm": "sha256WithRSAEncryption",
                "signature": "45:59:D2:BF:42:BE:B4:48:E5:33:75:59:C4:9E:C0:94:79:B9:1F:62:F3:33:95:20:30:C8:9C:0C:65:6B:15:3C:2C:A8:55:52:67:32:82:87:06:62:B3:4F:14:E5:7C:66:65:BE:89:A4:FB:9C:07:77:08:1A:C9:8A:26:38:6A:7B:83:FB:39:D5:D6:F6:78:94:E2:79:3B:5B:25:5E:F7:6B:71:3B:C3:C0:BE:91:CE:3C:93:F7:35:10:51:7A:77:7E:3A:93:40:BC:B8:19:F8:EC:ED:E6:67:A2:90:6A:B4:CD:D3:BE:F0:0D:E5:C9:EA:E8:00:36:FD:FF:15:A7:6D:46:93:79:F9:D7:E4:76:B8:03:BD:FA:EE:25:40:3F:2C:90:9E:E3:9B:AD:D6:32:E8:35:CC:EB:50:6B:F1:6C:87:C3:84:0D:FE:B1:90:2A:EA:0C:BF:71:B5:BD:00:F6:0A:BE:D5:C8:A2:D0:92:5A:63:79:FF:5A:38:12:29:3C:53:42:FB:E6:71:0D:50:F0:E3:0D:7E:94:F5:69:6A:69:1A:A6:84:00:E7:F5:E3:EB:D1:41:9F:78:77:0B:FC:63:40:B8:37:C5:BC:89:29:1D:A2:2C:AE:2B:24:A3:98:DC:6F:F2:19:D7:47:E6:B8:F5:05:A0:E2:B6:27:14:2B:76:9B:F7"
            },
            "subject": [
                {
                    "name": "commonName",
                    "oid": "2.5.4.3",
                    "value": "www.example.com"
                }
            ],
            "validity": {
                "not_valid_after": "2023-08-18 22:26:14",
                "not_valid_before": "2022-08-18 22:26:14"
            }
        }
    },
    "changed": false
}

TASK [Verify certificate subject] **********************************************
Thursday 18 August 2022  22:26:29 +0000 (0:00:00.093)       0:00:26.728 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify certificate SAN] **************************************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.096)       0:00:26.825 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify key size] *********************************************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.079)       0:00:26.905 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify certificate Key Usage] ********************************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.066)       0:00:26.971 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Verify certificate Extended Key Usage] ***********************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.068)       0:00:27.040 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Retrieve auto-renew flag] ************************************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.099)       0:00:27.140 ******* 
ok: [sut] => {
    "changed": false,
    "cmd": "set -euo pipefail; getcert list -f /etc/pki/tls/certs/mycert_run_hooks.crt | grep 'auto-renew' | sed 's/^\\s\\+auto-renew: //g'",
    "delta": "0:00:00.052708",
    "end": "2022-08-18 22:26:30.691841",
    "rc": 0,
    "start": "2022-08-18 22:26:30.639133"
}

STDOUT:

yes

TASK [Verify certificate auto-renew flag] **************************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.340)       0:00:27.481 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Get certificate timestamp] ***********************************************
Thursday 18 August 2022  22:26:30 +0000 (0:00:00.068)       0:00:27.549 ******* 
ok: [sut] => {
    "changed": false,
    "stat": {
        "atime": 1660861574.9091997,
        "attr_flags": "",
        "attributes": [],
        "block_size": 4096,
        "blocks": 8,
        "charset": "us-ascii",
        "checksum": "d4cac8b44f5d883b73e999b69539b6b2d42e219d",
        "ctime": 1660861574.9071996,
        "dev": 51716,
        "device_type": 0,
        "executable": false,
        "exists": true,
        "gid": 0,
        "gr_name": "root",
        "inode": 16812843,
        "isblk": false,
        "ischr": false,
        "isdir": false,
        "isfifo": false,
        "isgid": false,
        "islnk": false,
        "isreg": true,
        "issock": false,
        "isuid": false,
        "mimetype": "text/plain",
        "mode": "0600",
        "mtime": 1660861574.9071996,
        "nlink": 1,
        "path": "/etc/pki/tls/certs/mycert_run_hooks.crt",
        "pw_name": "root",
        "readable": true,
        "rgrp": false,
        "roth": false,
        "rusr": true,
        "size": 1294,
        "uid": 0,
        "version": "3040225234",
        "wgrp": false,
        "woth": false,
        "writeable": true,
        "wusr": true,
        "xgrp": false,
        "xoth": false,
        "xusr": false
    }
}

TASK [Get pre-run file timestamp] **********************************************
Thursday 18 August 2022  22:26:31 +0000 (0:00:00.292)       0:00:27.841 ******* 
ok: [sut] => {
    "changed": false,
    "stat": {
        "atime": 1660861574.9021997,
        "attr_flags": "",
        "attributes": [],
        "block_size": 4096,
        "blocks": 0,
        "charset": "binary",
        "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
        "ctime": 1660861574.9021997,
        "dev": 51716,
        "device_type": 0,
        "executable": false,
        "exists": true,
        "gid": 0,
        "gr_name": "root",
        "inode": 11329,
        "isblk": false,
        "ischr": false,
        "isdir": false,
        "isfifo": false,
        "isgid": false,
        "islnk": false,
        "isreg": true,
        "issock": false,
        "isuid": false,
        "mimetype": "inode/x-empty",
        "mode": "0600",
        "mtime": 1660861574.9021997,
        "nlink": 1,
        "path": "/etc/pki/before_cert.tmp",
        "pw_name": "root",
        "readable": true,
        "rgrp": false,
        "roth": false,
        "rusr": true,
        "size": 0,
        "uid": 0,
        "version": "62711298",
        "wgrp": false,
        "woth": false,
        "writeable": true,
        "wusr": true,
        "xgrp": false,
        "xoth": false,
        "xusr": false
    }
}

TASK [Get post-run file timestamp] *********************************************
Thursday 18 August 2022  22:26:31 +0000 (0:00:00.284)       0:00:28.126 ******* 
ok: [sut] => {
    "changed": false,
    "stat": {
        "atime": 1660861574.9471989,
        "attr_flags": "",
        "attributes": [],
        "block_size": 4096,
        "blocks": 0,
        "charset": "binary",
        "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
        "ctime": 1660861574.9471989,
        "dev": 51716,
        "device_type": 0,
        "executable": false,
        "exists": true,
        "gid": 0,
        "gr_name": "root",
        "inode": 11359,
        "isblk": false,
        "ischr": false,
        "isdir": false,
        "isfifo": false,
        "isgid": false,
        "islnk": false,
        "isreg": true,
        "issock": false,
        "isuid": false,
        "mimetype": "inode/x-empty",
        "mode": "0600",
        "mtime": 1660861574.9471989,
        "nlink": 1,
        "path": "/etc/pki/after_cert.tmp",
        "pw_name": "root",
        "readable": true,
        "rgrp": false,
        "roth": false,
        "rusr": true,
        "size": 0,
        "uid": 0,
        "version": "2706216946",
        "wgrp": false,
        "woth": false,
        "writeable": true,
        "wusr": true,
        "xgrp": false,
        "xoth": false,
        "xusr": false
    }
}

TASK [Assert file created before cert] *****************************************
Thursday 18 August 2022  22:26:31 +0000 (0:00:00.283)       0:00:28.410 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Assert file created after cert] ******************************************
Thursday 18 August 2022  22:26:31 +0000 (0:00:00.048)       0:00:28.459 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

TASK [Get the ansible_managed comment in pre/post-scripts] *********************
Thursday 18 August 2022  22:26:31 +0000 (0:00:00.050)       0:00:28.509 ******* 
changed: [sut] => {
    "changed": true,
    "cmd": [
        "find",
        "/etc/certmonger/pre-scripts",
        "/etc/certmonger/post-scripts",
        "-type",
        "f",
        "-exec",
        "grep",
        "^# Ansible managed",
        "{}",
        ";"
    ],
    "delta": "0:00:00.006714",
    "end": "2022-08-18 22:26:31.971229",
    "rc": 0,
    "start": "2022-08-18 22:26:31.964515"
}

STDOUT:

# Ansible managed
# Ansible managed

TASK [Verify the ansible_managed comment in pre/post-scripts] ******************
Thursday 18 August 2022  22:26:32 +0000 (0:00:00.250)       0:00:28.759 ******* 
ok: [sut] => {
    "changed": false
}

MSG:

All assertions passed

PLAY RECAP *********************************************************************
sut                        : ok=39   changed=9    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   

Thursday 18 August 2022  22:26:32 +0000 (0:00:00.106)       0:00:28.866 ******* 
=============================================================================== 
Install the package, force upgrade -------------------------------------- 6.64s
linux-system-roles.certificate : Ensure provider packages are installed --- 3.76s
Install certreader ------------------------------------------------------ 3.56s
linux-system-roles.certificate : Ensure certificate role dependencies are installed --- 3.25s
linux-system-roles.certificate : Ensure certificate requests ------------ 1.23s
Gathering Facts --------------------------------------------------------- 1.22s
linux-system-roles.certificate : Ensure provider service is running ----- 1.10s
Ensure python3 is installed --------------------------------------------- 1.02s
Ensure Python's cryptography is installed ------------------------------- 1.01s
Gathering Facts --------------------------------------------------------- 0.72s
Parse certificate ------------------------------------------------------- 0.68s
linux-system-roles.certificate : Ensure pre-scripts hooks directory exists --- 0.46s
linux-system-roles.certificate : Ensure ansible_facts used by role ------ 0.44s
Retrieve certificate file stats ----------------------------------------- 0.43s
Retrieve auto-renew flag ------------------------------------------------ 0.34s
linux-system-roles.certificate : Ensure post-scripts hooks directory exists --- 0.30s
Get certificate timestamp ----------------------------------------------- 0.29s
Get pre-run file timestamp ---------------------------------------------- 0.28s
Get post-run file timestamp --------------------------------------------- 0.28s
Retrieve key file stats ------------------------------------------------- 0.27s

---^---^---^---^---^---

# STDERR:
---v---v---v---v---v---
[DEPRECATION WARNING]: [defaults]callback_whitelist option, normalizing names 
to new standard, use callbacks_enabled instead. This feature will be removed 
from ansible-core in version 2.15. Deprecation warnings can be disabled by 
setting deprecation_warnings=False in ansible.cfg.

---^---^---^---^---^---