{"id":13766486,"url":"https://github.com/talaniz/ansible-pelican","last_synced_at":"2026-01-28T11:48:51.875Z","repository":{"id":80469115,"uuid":"85026097","full_name":"talaniz/ansible-pelican","owner":"talaniz","description":"Ansible playbooks for deploying and updating a pelican blog","archived":false,"fork":false,"pushed_at":"2017-03-15T16:21:02.000Z","size":12,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-17T02:34:05.627Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/talaniz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-15T03:42:22.000Z","updated_at":"2018-10-05T23:54:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"86aaf15f-d2ff-4520-a34d-30121dffe117","html_url":"https://github.com/talaniz/ansible-pelican","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/talaniz%2Fansible-pelican","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talaniz%2Fansible-pelican/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talaniz%2Fansible-pelican/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talaniz%2Fansible-pelican/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/talaniz","download_url":"https://codeload.github.com/talaniz/ansible-pelican/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253492529,"owners_count":21916959,"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":[],"created_at":"2024-08-03T16:00:56.007Z","updated_at":"2026-01-28T11:48:51.868Z","avatar_url":"https://github.com/talaniz.png","language":"HTML","funding_links":[],"categories":["Automation"],"sub_categories":["Ansible"],"readme":"# Ansible-DigitalOcean Playbooks\n\n  This is an Ansible playbook used for managing my website www.antonioalaniz.com. This was tested against Ubuntu 16.04 (Xenial) using Vagrant and pushed live to DigitalOcean.\n\n## Playbooks\n\n* `provision.yml`: Updates the `apt` repo and installs Python2\n* `setup-vagrant.yml`: Creates a non-root user and group, elevates sudo permissions, allows passwordless sudo. These tasks are also available in the `common-vagrant` role listed below\n* `dev-deploy.yml` and `live-deploy.yml`: installs pelican, nginx, sets up firewall rules for live and development machines\n* `dev-update-blog.yml` and `live-update-blog.yml`: deletes and re-installs the blogs to update new entries. This playbook does not perform the the `common-vagrant`, `pelican-nginx`, `ansible-nginx` and `wtanaka.certbot` roles.\n\n## Roles\n\n  These playbooks utilize the following roles:\n\n  * [`ansible-ufw`](https://github.com/talaniz/ansible-ufw): closes the firewall and allows only the `access_ports` listed in the variables below\n  * [`common-vagrant`](https://github.com/talaniz/common-vagrant): a series of common tasks to set up the Vagrant environment for testing\n  * [`pelican-nginx`](https://github.com/talaniz/pelican-nginx): a role for setting up Pelican to work with nginx\n  * [`pelican-vagrant`](https://github.com/talaniz/pelican-vagrant): adds Pelican to a Vagrant or live Digitalocean droplet\n  * [`wtanaka.certbot`](https://github.com/wtanaka/ansible-role-certbot): a role by Wesley Tanaka that automates letsencrypt certificate generation\n\n\n## Variables\n\n* `home_dir`: home directory for the non-root user\n* `pelican_env`: directory where virtualenv is installed\n* `pelican_themes`: location of pelican themes to be installed\n* `web_root`: /var/www/antonioalaniz.com\n* `blog_repo`: https://github.com/talaniz/antonioalaniz.com.git\n* `nginx`: location of nginx\n* `blog_template_dir`: location of the blog template in `{{pelican_themes}}``\n* `files_dir`: directory containing all files to be copied to the remote machine\n* `templates_dir`: directory containing all templates to be copied\n* `domain`: website domain (ex. antonioalaniz.com)\n* `www_domain`: domain with www added (ex. www.antonioalaniz.com)\n* `access_ports`: ports to be opened on the firewall\n* `ssh_port`: port to connect to the remote machine via ssh\n* `email`: an email address to be used to generate certifications (dev only)\n* `ssl_cert`: location letsencrypt generates the ssl certificate--/etc/letsencrypt/live/{{www_domain}}/fullchain.pem\n* `ssl_cert_key`: location letsencrypt generates the ssl certificate /etc/letsencrypt/live/{{domain}}/privkey.pem\n* `letsencrypt_email`: an email address to be used to generate certifications (live only)\n* `letsencrypt_webroot`: location of web root for letsencrypt to generate cert\n* `letsencrypt_fake_key`: If set to true (dev only), the letsencrypt role will copy fake pem files instead of generating a certificate\n* `letsencrypt_renew_by_default`: option to renew letsencrypt certificates\n* `letsencrypt_domains`: domains letsencrypt will use to generate certificates\n* `google_analytics`: Google Analytics ID to use for tracking\n\n## Installation\n\n1. Clone the repository: git clone https://github.com/talaniz/ansible-pelican.git\n2. Install requirements: pip install -r requirements.txt\n3. Create a variables file and populate the variables above\n4. Install roles: mkdir roles \u0026\u0026 cd roles, then clone/install roles--\n    * git clone https://github.com/talaniz/common-vagrant.git\n    * git clone https://github.com/talaniz/ansible-ufw.git\n    * git clone https://github.com/talaniz/pelican-nginx.git\n    * ansible-galaxy install wtanaka.certbot\n5. Use the `Vagrantfile` to create the virtual environment: vagrant up\n6. Run the `dev-deploy.yml` file: ansible-playbook playbooks/dev-deploy.yml\n\n## To Do:\n\n* Clean up `files` and `templates` to only include used files (some included for development)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalaniz%2Fansible-pelican","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftalaniz%2Fansible-pelican","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalaniz%2Fansible-pelican/lists"}