Blame README-dnsrecord.md

Packit Service 0f71a7
DNSRecord module
Packit Service 0f71a7
================
Packit Service 0f71a7
Packit Service 0f71a7
Description
Packit Service 0f71a7
-----------
Packit Service 0f71a7
Packit Service 0f71a7
The dnsrecord module allows management of DNS records and is as compatible as possible with the Ansible upstream `ipa_dnsrecord` module, but provide some other features like multiple record management in one execution and support for more DNS record types.
Packit Service 0f71a7
Packit Service 0f71a7
Packit Service 0f71a7
Features
Packit Service 0f71a7
--------
Packit Service 0f71a7
* DNS record management.
Packit Service 0f71a7
Packit Service 0f71a7
Packit Service 0f71a7
Supported FreeIPA Versions
Packit Service 0f71a7
--------------------------
Packit Service 0f71a7
Packit Service 0f71a7
FreeIPA versions 4.4.0 and up are supported by the ipadnsrecord module.
Packit Service 0f71a7
Packit Service 0f71a7
Packit Service 0f71a7
Requirements
Packit Service 0f71a7
------------
Packit Service 0f71a7
Packit Service 0f71a7
**Controller**
Packit Service 0f71a7
* Ansible version: 2.8+
Packit Service 0f71a7
Packit Service 0f71a7
**Node**
Packit Service 0f71a7
* Supported FreeIPA version (see above)
Packit Service 0f71a7
Packit Service 0f71a7
Packit Service 0f71a7
Usage
Packit Service 0f71a7
=====
Packit Service 0f71a7
Packit Service 0f71a7
Example inventory file
Packit Service 0f71a7
Packit Service 0f71a7
```ini
Packit Service 0f71a7
[ipaserver]
Packit Service 0f71a7
ipaserver.example.com
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure an AAAA record is present:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    name: host01
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    record_type: 'AAAA'
Packit Service 0f71a7
    record_value: '::1'
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure an AAAA record is present, with a TTL of 300:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    name: host01
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    record_type: 'AAAA'
Packit Service 0f71a7
    record_value: '::1'
Packit Service 0f71a7
    record_ttl: 300
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure an AAAA record is present, with a reverse PTR record:
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    name: host02
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    record_type: 'AAAA'
Packit Service 0f71a7
    record_value: 'fd00::0002'
Packit Service 0f71a7
    create_reverse: yes
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure a LOC record is present, given its individual attributes:
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    name: host03
Packit Service 0f71a7
    loc_lat_deg: 52
Packit Service 0f71a7
    loc_lat_min: 22
Packit Service 0f71a7
    loc_lat_sec: 23.000
Packit Service 0f71a7
    loc_lat_dir: N
Packit Service 0f71a7
    loc_lon_deg: 4
Packit Service 0f71a7
    loc_lon_min: 53
Packit Service 0f71a7
    loc_lon_sec: 32.00
Packit Service 0f71a7
    loc_lon_dir: E
Packit Service 0f71a7
    loc_altitude: -2.00
Packit Service 0f71a7
    loc_size: 1.00
Packit Service 0f71a7
    loc_h_precision: 10000
Packit Service 0f71a7
    loc_v_precision: 10
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure multiple DNS records are present:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
ipadnsrecord:
Packit Service 0f71a7
  ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
  records:
Packit Service 0f71a7
    - name: host02
Packit Service 0f71a7
      zone_name: example.com
Packit Service 0f71a7
      record_type: A
Packit Service 0f71a7
      record_value:
Packit Service 0f71a7
        - "{{ ipv4_prefix }}.112"
Packit Service 0f71a7
        - "{{ ipv4_prefix }}.122"
Packit Service 0f71a7
    - name: host02
Packit Service 0f71a7
      zone_name: example.com
Packit Service 0f71a7
      record_type: AAAA
Packit Service 0f71a7
      record_value: ::1
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure multiple CNAME records are present:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- name: Ensure that 'host03' and 'host04' have CNAME records.
Packit Service 0f71a7
  ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    records:
Packit Service 0f71a7
    - name: host03
Packit Service 0f71a7
      cname_hostname: host03.example.com
Packit Service 0f71a7
    - name: host04
Packit Service 0f71a7
      cname_hostname: host04.example.com
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure NS record is absent:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    name: host04
Packit Service 0f71a7
    ns_hostname: host04
Packit Service 0f71a7
    state: absent
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure LOC record is present, with fields:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    name: host04
Packit Service 0f71a7
    loc_lat_deg: 52
Packit Service 0f71a7
    loc_lat_min: 22
Packit Service 0f71a7
    loc_lat_sec: 23.000
Packit Service 0f71a7
    loc_lat_dir: N
Packit Service 0f71a7
    loc_lon_deg: 4
Packit Service 0f71a7
    loc_lon_min: 53
Packit Service 0f71a7
    loc_lon_sec: 32.000
Packit Service 0f71a7
    loc_lon_dir: E
Packit Service 0f71a7
    loc_altitude: -2.00
Packit Service 0f71a7
    loc_size: 0.00
Packit Service 0f71a7
    loc_h_precision: 10000
Packit Service 0f71a7
    loc_v_precision: 10
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Change value of an existing LOC record:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
  ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
  zone_name: example.com
Packit Service 0f71a7
  name: host04
Packit Service 0f71a7
  loc_size: 1.00
Packit Service 0f71a7
  loc_rec: 52 22 23 N 4 53 32 E -2 0 10000 10
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure multiple A records are present:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    name: host04
Packit Service 0f71a7
    a_rec:
Packit Service 0f71a7
      - 192.168.122.221
Packit Service 0f71a7
      - 192.168.122.222
Packit Service 0f71a7
      - 192.168.122.223
Packit Service 0f71a7
      - 192.168.122.224
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure A and AAAA records are present, with reverse records (PTR):
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    name: host01
Packit Service 0f71a7
    a_rec:
Packit Service 0f71a7
      - 192.168.122.221
Packit Service 0f71a7
      - 192.168.122.222
Packit Service 0f71a7
    aaaa_rec:
Packit Service 0f71a7
      - fd00:;0001
Packit Service 0f71a7
      - fd00::0002
Packit Service 0f71a7
    create_reverse: yes
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure multiple A and AAAA records are present, but only A records have reverse records:
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    name: host01
Packit Service 0f71a7
    a_ip_address: 192.168.122.221
Packit Service 0f71a7
    aaaa_ip_address: fd00::0001
Packit Service 0f71a7
    a_create_reverse: yes
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Example playbook to ensure multiple DNS records are absent:
Packit Service 0f71a7
Packit Service 0f71a7
```yaml
Packit Service 0f71a7
---
Packit Service 0f71a7
- ipadnsrecord:
Packit Service 0f71a7
    ipaadmin_password: SomeADMINpassword
Packit Service 0f71a7
    zone_name: example.com
Packit Service 0f71a7
    records:
Packit Service 0f71a7
    - name: host01
Packit Service 0f71a7
      del_all: yes
Packit Service 0f71a7
    - name: host02
Packit Service 0f71a7
      del_all: yes
Packit Service 0f71a7
    - name: host03
Packit Service 0f71a7
      del_all: yes
Packit Service 0f71a7
    - name: host04
Packit Service 0f71a7
      del_all: yes
Packit Service 0f71a7
    - name: _ftp._tcp
Packit Service 0f71a7
      del_all: yes
Packit Service 0f71a7
    - name: _sip._udp
Packit Service 0f71a7
      del_all: yes
Packit Service 0f71a7
    state: absent
Packit Service 0f71a7
```
Packit Service 0f71a7
Packit Service 0f71a7
Variables
Packit Service 0f71a7
=========
Packit Service 0f71a7
Packit Service 0f71a7
ipadnsrecord
Packit Service 0f71a7
------------
Packit Service 0f71a7
Packit Service 0f71a7
Variable | Description | Required
Packit Service 0f71a7
-------- | ----------- | --------
Packit Service 0f71a7
`ipaadmin_principal` | The admin principal is a string and defaults to `admin` | no
Packit Service 0f71a7
`ipaadmin_password` | The admin password is a string and is required if there is no admin ticket available on the node | no
Packit Service 0f71a7
`zone_name` \| `dnszone` | The DNS zone name to which DNS record needs to be managed. You can use one global zone name for multiple records. | no
Packit Service 0f71a7
  required: true
Packit Service 0f71a7
`records` | The list of dns records dicts. Each `records` dict entry can contain **record variables**. | no
Packit Service 0f71a7
  | **Record variables** | no
Packit Service 0f71a7
**Record variables** | Used when defining a single record. | no
Packit Service 0f71a7
`state` | The state to ensure. It can be one of `present` or `absent`, and defaults to `present`. | yes
Packit Service 0f71a7
Packit Service 0f71a7
Packit Service 0f71a7
**Record Variables:**
Packit Service 0f71a7
Packit Service 0f71a7
Variable | Description | Required
Packit Service 0f71a7
-------- | ----------- | --------
Packit Service 0f71a7
`zone_name` \| `dnszone` | The DNS zone name to which DNS record needs to be managed. You can use one global zone name for multiple records. When used on a `records` dict, overrides the global `zone_name`. | yes
Packit Service 0f71a7
`name` \| `record_name` | The DNS record name to manage. | yes
Packit Service 0f71a7
`record_type` | The type of DNS record. Supported values are  `A`, `AAAA`, `A6`, `AFSDB`, `CERT`, `CNAME`, `DLV`, `DNAME`, `DS`, `KX`, `LOC`, `MX`, `NAPTR`, `NS`, `PTR`, `SRV`, `SSHFP`, `TLSA`, `TXT`, `URI`, and defaults to `A`. | no
Packit Service 0f71a7
`record_value` | Manage DNS record name with this values. | no
Packit Service 0f71a7
`record_ttl` | Set the TTL for the record. (int) | no
Packit Service 0f71a7
`del_all` | Delete all associated records. (bool) | no
Packit Service 0f71a7
`a_rec` \| `a_record` | Raw A record. | no
Packit Service 0f71a7
`aaaa_rec` \| `aaaa_record` |  Raw AAAA record. | no
Packit Service 0f71a7
`a6_rec` \| `a6_record` | Raw A6 record data. | no
Packit Service 0f71a7
`afsdb_rec` \| `afsdb_record` | Raw AFSDB record. | no
Packit Service 0f71a7
`cert_rec` \| `cert_record` | Raw CERT record. | no
Packit Service 0f71a7
`cname_rec` \| `cname_record` | Raw CNAME record. | no
Packit Service 0f71a7
`dlv_rec` \| `dlv_record` |  Raw DLV record. | no
Packit Service 0f71a7
`dname_rec` \| `dname_record` | Raw DNAM record. | no
Packit Service 0f71a7
`ds_rec` \| `ds_record` | Raw DS record. | no
Packit Service 0f71a7
`kx_rec` \| `kx_record` |  Raw KX record. | no
Packit Service 0f71a7
`loc_rec` \| `loc_record` | Raw LOC record. | no
Packit Service 0f71a7
`mx_rec` \| `mx_record` | Raw MX record. | no
Packit Service 0f71a7
`naptr_rec` \| `naptr_record` | Raw NAPTR record. | no
Packit Service 0f71a7
`ns_rec` \| `ns_record` | Raw NS record. | no
Packit Service 0f71a7
`ptr_rec` \| `ptr_record` | Raw PTR record. | no
Packit Service 0f71a7
`srv_rec` \| `srv_record` | Raw SRV record. | no
Packit Service 0f71a7
`sshfp_rec` \| `sshfp_record` | Raw SSHFP record. | no
Packit Service 0f71a7
`tlsa_rec` \| `tlsa_record` | Raw TLSA record. | no
Packit Service 0f71a7
`txt_rec` \| `txt_record` | Raw TXT record. | no
Packit Service 0f71a7
`uri_rec` \| `uri_record` | Raw URI record. | no
Packit Service 0f71a7
`ip_address` | IP adress for A or AAAA records. Set `record_type` to `A` or `AAAA`. | no
Packit Service 0f71a7
`create_reverse` \| `reverse` | Create reverse records for `A` and `AAAA` record types. There is no equivalent to remove reverse records. (bool) | no
Packit Service 0f71a7
`a_ip_address` | IP adress for A records. Set `record_type` to `A`. | no
Packit Service 0f71a7
`a_create_reverse` | Create reverse records only for `A` records. There is no equivalent to remove reverse records. (bool) | no
Packit Service 0f71a7
`aaaa_ip_address` | IP adress for AAAA records. Set `record_type` `AAAA`. | no
Packit Service 0f71a7
`aaaa_create_reverse` | Create reverse records only for `AAAA` record types. There is no equivalent to remove reverse records. (bool) | no
Packit Service 0f71a7
`a6_data` | A6 record. Set `record_type` to `A6`. | no
Packit Service 0f71a7
`afsdb_subtype` | AFSDB Subtype. Set `record_type` to `AFSDB`. (int) | no
Packit Service 0f71a7
`afsdb_hostname` | AFSDB Hostname. Set `record_type` to `AFSDB`. | no
Packit Service 0f71a7
`cert_type` | CERT Certificate Type. Set `record_type` to `CERT`. (int) | no
Packit Service 0f71a7
`cert_key_tag` | CERT Key Tag. Set `record_type` to `CERT`. (int) | no
Packit Service 0f71a7
`cert_algorithm` | CERT Algorithm. Set `record_type` to `CERT`. (int) | no
Packit Service 0f71a7
`cert_certificate_or_crl` | CERT Certificate or  Certificate Revocation List (CRL). Set `record_type` to `CERT`. | no
Packit Service 0f71a7
`cname_hostname` | A hostname which this alias hostname points to. Set `record_type` to `CNAME`. | no
Packit Service 0f71a7
`dlv_key_tag` | DS Key Tag. Set `record_type` to `DLV`. (int) | no
Packit Service 0f71a7
`dlv_algorithm` | DLV Algorithm. Set `record_type` to `DLV`. (int) | no
Packit Service 0f71a7
`dlv_digest_type` | DLV Digest Type. Set `record_type` to `DLV`. (int) | no
Packit Service 0f71a7
`dlv_digest` | DLV Digest. Set `record_type` to `DLV`. | no
Packit Service 0f71a7
`dname_target` | DNAME Target. Set `record_type` to `DNAME`. | no
Packit Service 0f71a7
`ds_key_tag` | DS Key Tag. Set `record_type` to `DS`. (int) | no
Packit Service 0f71a7
`ds_algorithm` | DS Algorithm. Set `record_type` to `DS`. (int) | no
Packit Service 0f71a7
`ds_digest_type` | DS Digest Type. Set `record_type` to `DS`. (int) | no
Packit Service 0f71a7
`ds_digest` | DS Digest. Set `record_type` to `DS`. | no
Packit Service 0f71a7
`kx_preference` | Preference given to this exchanger. Lower values are more preferred. Set `record_type` to `KX`. (int) | no
Packit Service 0f71a7
`kx_exchanger` | A host willing to act as a key exchanger.  Set `record_type` to `KX`. | no
Packit Service 0f71a7
`loc_lat_deg` | LOC Degrees Latitude. Set `record_type` to `LOC`. (int) | no
Packit Service 0f71a7
`loc_lat_min` | LOC Minutes Latitude. Set `record_type` to `LOC`. (int) | no
Packit Service 0f71a7
`loc_lat_sec` | LOC Seconds Latitude. Set `record_type` to `LOC`. (float) | no
Packit Service 0f71a7
`loc_lat_dir` | LOC Direction Latitude. Valid values are `N` or `S`. Set `record_type` to `LOC`. (int) | no
Packit Service 0f71a7
`loc_lon_deg` | LOC Degrees Longitude. Set `record_type` to `LOC`. (int) | no
Packit Service 0f71a7
`loc_lon_min` | LOC Minutes Longitude. Set `record_type` to `LOC`. (int) | no
Packit Service 0f71a7
`loc_lon_sec` | LOC Seconds Longitude. Set `record_type` to `LOC`. (float) | no
Packit Service 0f71a7
`loc_lon_dir` | LOC Direction Longitude. Valid values are `E` or `W`. Set `record_type` to `LOC`. (int) | no
Packit Service 0f71a7
`loc_altitude` | LOC Altitude. Set `record_type` to `LOC`. (float) | no
Packit Service 0f71a7
`loc_size` | LOC Size. Set `record_type` to `LOC`. (float) | no
Packit Service 0f71a7
`loc_h_precision` | LOC Horizontal Precision. Set `record_type` to `LOC`. (float) | no
Packit Service 0f71a7
`loc_v_precision` | LOC Vertical Precision. Set `record_type` to `LOC`. (float) | no
Packit Service 0f71a7
`mx_preference` | Preference given to this exchanger. Lower values are more preferred. Set `record_type` to `MX`. (int) | no
Packit Service 0f71a7
`mx_exchanger` | A host willing to act as a mail exchanger.  Set `record_type` to `LOC`. | no
Packit Service 0f71a7
`naptr_order` | NAPTR Order. Set `record_type` to `NAPTR`. (int) | no
Packit Service 0f71a7
`naptr_preference` | NAPTR Preference. Set `record_type` to `NAPTR`. (int) | no
Packit Service 0f71a7
`naptr_flags` | NAPTR Flags. Set `record_type` to `NAPTR`. | no
Packit Service 0f71a7
`naptr_service` | NAPTR Service. Set `record_type` to `NAPTR`. | no
Packit Service 0f71a7
`naptr_regexp` | NAPTR Regular Expression. Set `record_type` to `NAPTR`. | no
Packit Service 0f71a7
`naptr_replacement` | NAPTR Replacement. Set `record_type` to `NAPTR`. | no
Packit Service 0f71a7
`ns_hostname` | NS Hostname. Set `record_type` to `NS`. | no
Packit Service 0f71a7
`ptr_hostname` | The hostname this reverse record points to. . Set `record_type` to `PTR`. | no
Packit Service 0f71a7
`srv_priority` | Lower number means higher priority. Clients will attempt to contact the server with the lowest-numbered priority they can reach. Set `record_type` to `SRV`. (int) | no
Packit Service 0f71a7
`srv_weight` | Relative weight for entries with the same priority. Set `record_type` to `SRV`. (int) | no
Packit Service 0f71a7
`srv_port` | SRV Port. Set `record_type` to `SRV`. (int) | no
Packit Service 0f71a7
`srv_target` | The domain name of the target host or '.' if the service is decidedly not available at this domain. Set `record_type` to `SRV`. | no
Packit Service 0f71a7
`sshfp_algorithm` | SSHFP Algorithm. Set `record_type` to `SSHFP`. (int) | no
Packit Service 0f71a7
`sshfp_fp_type` | SSHFP Fingerprint Type. Set `record_type` to `SSHFP`. (int) | no
Packit Service 0f71a7
`sshfp_fingerprint`| SSHFP Fingerprint. Set `record_type` to `SSHFP`. (int) | no
Packit Service 0f71a7
`txt_data` | TXT Text Data. Set `record_type` to `TXT`. | no
Packit Service 0f71a7
`tlsa_cert_usage` | TLSA Certificate Usage. Set `record_type` to `TLSA`. (int) | no
Packit Service 0f71a7
`tlsa_selector` | TLSA Selector. Set `record_type` to `TLSA`. (int) | no
Packit Service 0f71a7
`tlsa_matching_type` | TLSA Matching Type. Set `record_type` to `TLSA`. (int) | no
Packit Service 0f71a7
`tlsa_cert_association_data` | TLSA Certificate Association Data. Set `record_type` to `TLSA`. | no
Packit Service 0f71a7
`uri_target` | Target Uniform Resource Identifier according to RFC 3986. Set `record_type` to `URI`. | no
Packit Service 0f71a7
`uri_priority` | Lower number means higher priority. Clients will attempt to contact the URI with the lowest-numbered priority they can reach. Set `record_type` to `URI`. (int) | no
Packit Service 0f71a7
`uri_weight` | Relative weight for entries with the same priority. Set `record_type` to `URI`. (int) | no
Packit Service 0f71a7
Packit Service 0f71a7
Packit Service 0f71a7
Authors
Packit Service 0f71a7
=======
Packit Service 0f71a7
Packit Service 0f71a7
Rafael Guterres Jeffman