{"id":15517581,"url":"https://github.com/bodgit/puppet-certbot","last_synced_at":"2025-03-28T19:48:15.886Z","repository":{"id":141243023,"uuid":"105395132","full_name":"bodgit/puppet-certbot","owner":"bodgit","description":"Puppet Module for managing Certbot","archived":false,"fork":false,"pushed_at":"2018-08-11T18:45:40.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T23:15:01.779Z","etag":null,"topics":["certbot","puppet","ssl","tls"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bodgit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-30T19:25:23.000Z","updated_at":"2018-08-11T18:45:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4bd3fc4-2efd-459a-8291-aef9668fe364","html_url":"https://github.com/bodgit/puppet-certbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-certbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-certbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-certbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodgit%2Fpuppet-certbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bodgit","download_url":"https://codeload.github.com/bodgit/puppet-certbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246093105,"owners_count":20722395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["certbot","puppet","ssl","tls"],"created_at":"2024-10-02T10:13:50.005Z","updated_at":"2025-03-28T19:48:15.867Z","avatar_url":"https://github.com/bodgit.png","language":"Ruby","readme":"# certbot\n\nTested with Travis CI\n\n[![Build Status](https://travis-ci.com/bodgit/puppet-certbot.svg?branch=master)](https://travis-ci.com/bodgit/puppet-certbot)\n[![Coverage Status](https://coveralls.io/repos/bodgit/puppet-certbot/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/bodgit/puppet-certbot?branch=master)\n[![Puppet Forge](http://img.shields.io/puppetforge/v/bodgit/certbot.svg)](https://forge.puppetlabs.com/bodgit/certbot)\n\n#### Table of Contents\n\n1. [Description](#description)\n2. [Setup - The basics of getting started with certbot](#setup)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with certbot](#beginning-with-certbot)\n3. [Usage - Configuration options and additional functionality](#usage)\n4. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n5. [Limitations - OS compatibility, etc.](#limitations)\n6. [Development - Guide for contributing to the module](#development)\n\n## Description\n\nThis module installs and manages Certbot which is used to request certificates\nfrom Let's Encrypt.\n\nRHEL/CentOS is supported using Puppet 4.6.0 or later.\n\n## Setup\n\n### Setup Requirements\n\nOn RHEL/CentOS platforms you will need to have access to the EPEL repository by\nusing [stahnma/epel](https://forge.puppet.com/stahnma/epel) or by other means.\n\n### Beginning with certbot\n\nYou will need to instantiate the class and create at least one certificate for\nthe module to be useful:\n\n```puppet\nclass { '::certbot':\n  email =\u003e 'user@example.com',\n}\n\n::certbot::cert::webroot { 'example':\n  domains =\u003e {\n    '/var/www/html' =\u003e [\n      'example.com',\n      'www.example.com',\n    ],\n  },\n}\n```\n\n## Usage\n\nIf you want to have a post-renew hook script to restart the webserver:\n\n```puppet\nclass { '::certbot':\n  email =\u003e 'user@example.com',\n}\n\n::certbot::cert::webroot { 'example':\n  domains =\u003e {\n    '/var/www/html' =\u003e [\n      'example.com',\n      'www.example.com',\n    ],\n  },\n}\n\n::certbot::hook::deploy { 'restart':\n  content =\u003e @(EOS/L),\n    #!/bin/sh\n    service nginx restart\n    | EOS\n}\n```\n\nYou can also copy the certificates and get Puppet to restart the service when\nthey change:\n\n```puppet\nclass { '::certbot':\n  email =\u003e 'user@example.com',\n}\n\n::certbot::cert::webroot { 'example':\n  domains =\u003e {\n    '/var/www/html' =\u003e [\n      'example.com',\n      'www.example.com',\n    ],\n  },\n}\n\nfile { '/etc/pki/tls/certs/example.crt':\n  ensure =\u003e file,\n  owner  =\u003e 0,\n  group  =\u003e 0,\n  mode   =\u003e '0644',\n  source =\u003e '/etc/letsencrypt/live/example.com/cert.pem',\n  notify =\u003e Service['httpd'],\n}\n\nfile { '/etc/pki/tls/private/example.key':\n  ensure =\u003e file,\n  owner  =\u003e 0,\n  group  =\u003e 0,\n  mode   =\u003e '0600',\n  source =\u003e '/etc/letsencrypt/live/example.com/privkey.pem',\n  notify =\u003e Service['httpd'],\n}\n```\n\nThis relies on Puppet running periodically.\n\n## Reference\n\nThe reference documentation is generated with\n[puppet-strings](https://github.com/puppetlabs/puppet-strings) and the latest\nversion of the documentation is hosted at\n[https://bodgit.github.io/puppet-certbot/](https://bodgit.github.io/puppet-certbot/).\n\n## Limitations\n\nThis module has been built on and tested against Puppet 4.6.0 and higher.\n\nThe module has been tested on:\n\n* CentOS/Red Hat Enterprise Linux 7\n\nCurrently only the `webroot` and `dns-rfc2136` authenticators are implemented.\nThe other `dns-01` plugins should be straightforward to add; I personally\ndon't have a use for them. I also don't feel like the `apache` and `nginx`\nauthenticators are a good fit as they directly edit the existing configuration\nwhich is something that you are likely already managing with Puppet.\n\nThe module doesn't currently handle the scenario of changing the domains\nassociated with a certificate. To do this will likely require creating a\ncustom resource type that can parse the existing domains associated with a\ncertificate and trigger an immediate renew should they be changed.\n\n## Development\n\nThe module has both [rspec-puppet](http://rspec-puppet.com) and\n[beaker-rspec](https://github.com/puppetlabs/beaker-rspec) tests. Run them\nwith:\n\n```\n$ bundle exec rake test\n$ PUPPET_INSTALL_TYPE=agent PUPPET_INSTALL_VERSION=x.y.z bundle exec rake beaker:\u003cnodeset\u003e\n```\n\nPlease log issues or pull requests at\n[github](https://github.com/bodgit/puppet-certbot).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodgit%2Fpuppet-certbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbodgit%2Fpuppet-certbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodgit%2Fpuppet-certbot/lists"}