Presentation

The web keys directory allows you to publish your GPG keys public key automatically, making the key easily reachable by anyone wanting to contact you.

Keys definition

At this time, keys are defined in the system.yml file, in a list called pgp_public_keys, using this syntax:

pgp_public_keys:
  - uid: frodo
    public_key: |-
      -----BEGIN PGP PUBLIC KEY BLOCK-----

      mDMEZhTZMRYJKwYBBAHaRw8BAQdAely8BVhXUC5uPtH7145/l35D04apfWqA2++J
      OuKOa7i0HkFuZHJlIFJvZGllciA8YW5kcmVAcm9kaWVyLm1lPoiOBBMWCgA2FiEE
      xSeHPHtvanl+EKmVAlmlnDArxCQFAmYU2TECGwEECwkIBwQVCgkIBRYCAwEAAh4B
      AheAAAoJEAJZpZwwK8QkcdMA/iGTyT+3tQuPuB1SfIU+arO/YNLrQyrVNKFLzeN9
      Lxr1AQD5iOuGqM13vePf/V1pdTqSviYYFiID1uZVqdZkEpMjCLgzBGYU2TQWCSsG
      AQQB2kcPAQEHQNjA5piZI3P+dA4G5BMKxoKoEXpMhL5MgTuDqyBZHBjpiPUEGBYK
      ACYWIQTFJ4c8e29qeX4QqZUCWaWcMCvEJAUCZhTZNAIbAgUJA8JnAACBCRACWaWc
      MCvEJHYgBBkWCgAdFiEEIMba+HbLgp0Udn5bw5FmH1r+7UIFAmYU2TQACgkQw5Fm
      H1r+7UJQ4wEA/uPEY0oleGcppxvcKOJYYUteuExfqlB5Lyb7h2RALiYBALH2t4Ug
      GFpPnGPCBEtg8TYfe2c34UoAXKdYsOKL004MELMBAKCD9pzQK9KdTAQ8HiaTpzax
      fIbIsGdYDAey/MgCnqg7AP0eWGAd3U5HdL+yztO0GrHpvYOxJksSKOhGahogBLuS
      A7g4BGYU2TUSCisGAQQBl1UBBQEBB0Bpjp/YcUenNUFX7oBAyUEtWDHk+NhDGs7K
      ektqg1YvVwMBCAeIfgQYFgoAJhYhBMUnhzx7b2p5fhCplQJZpZwwK8QkBQJmFNk1
      AhsMBQkDwmcAAAoJEAJZpZwwK8QkvcUA/3+g729BCu+emFdtIAyIUyLFGbJYF8Ho
      uWeRpsCXadakAQC55vyXskTuA0GsVqw1FOYjJubtm7gbge5fF91CmWxjBbgzBGYU
      2TYWCSsGAQQB2kcPAQEHQBY4WkZia6FBTSI/KCunUwhtWdX8ERWwyl/CHfPVxDYu
      iH4EGBYKACYWIQTFJ4c8e29qeX4QqZUCWaWcMCvEJAUCZhTZNgIbIAUJA8JnAAAK
      CRACWaWcMCvEJKV7AP4wwIvseCOiOmI6BA6sjpTUmMIX9xoOTh2Yr1m3wxmRQQEA
      9yyj+QWM6N+taXwrxl+YZeHC3XRH5hezX0gcIVMhZQo=
      =kXUs
      -----END PGP PUBLIC KEY BLOCK-----

  - uid: mariadoc
    public_key: |-
      […]

Running the playbook

Make sure you have the following line in your ansible.cfg configuration file:

filter_plugins = {{ playbook_dir }}/../../common/filter-plugins/
ROLE=openpgp-wkd ansible-playbook install.yml

The installation will do the following:

  • Create the certificates for the web site.
  • Configure the web site that will publish the keys.
  • Publish the GPG public keys, both using the advanced and the direct method.
  • Add additional configuration to AppArmor.

Checking the keys publication status

ROLE=openpgp-wkd ansible-playbook check.yml

Uninstalling

ROLE=openpgp-wkd ansible-playbook uninstall.yml