add personal blog
This commit is contained in:
parent
21bb6f3b46
commit
bade56a1a8
4 changed files with 141 additions and 1 deletions
100
ansible/services/personal-blog/deploy_personal_blog_playbook.yml
Normal file
100
ansible/services/personal-blog/deploy_personal_blog_playbook.yml
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
- name: Deploy personal blog static site
|
||||
hosts: vipy
|
||||
become: yes
|
||||
vars_files:
|
||||
- ../../infra_vars.yml
|
||||
- ./personal_blog_vars.yml
|
||||
|
||||
tasks:
|
||||
- name: Install git
|
||||
apt:
|
||||
name: git
|
||||
state: present
|
||||
|
||||
- name: Create source directory for blog
|
||||
file:
|
||||
path: "{{ personal_blog_source_dir }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
|
||||
- name: Create webroot directory
|
||||
file:
|
||||
path: "{{ personal_blog_webroot }}"
|
||||
state: directory
|
||||
owner: www-data
|
||||
group: www-data
|
||||
mode: '0755'
|
||||
|
||||
- name: Clone blog repository with token authentication
|
||||
git:
|
||||
repo: "https://{{ personal_blog_git_username }}:{{ lookup('env', 'PERSONAL_BLOG_DEPLOY_TOKEN') }}@forgejo.contrapeso.xyz/counterweight/pablohere.git"
|
||||
dest: "{{ personal_blog_source_dir }}"
|
||||
version: master
|
||||
force: yes
|
||||
become_user: root
|
||||
|
||||
- name: Copy static files to webroot
|
||||
shell: |
|
||||
rsync -av --delete {{ personal_blog_source_dir }}/{{ personal_blog_source_folder }}/ {{ personal_blog_webroot }}/
|
||||
args:
|
||||
creates: "{{ personal_blog_webroot }}/index.html"
|
||||
|
||||
- name: Set ownership and permissions for webroot
|
||||
file:
|
||||
path: "{{ personal_blog_webroot }}"
|
||||
owner: www-data
|
||||
group: www-data
|
||||
recurse: yes
|
||||
state: directory
|
||||
|
||||
- name: Ensure Caddy sites-enabled directory exists
|
||||
file:
|
||||
path: "{{ caddy_sites_dir }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
|
||||
- name: Ensure Caddyfile includes import directive for sites-enabled
|
||||
lineinfile:
|
||||
path: /etc/caddy/Caddyfile
|
||||
line: 'import sites-enabled/*'
|
||||
insertafter: EOF
|
||||
state: present
|
||||
backup: yes
|
||||
|
||||
- name: Create Caddy static site configuration
|
||||
copy:
|
||||
dest: "{{ caddy_sites_dir }}/personal-blog.conf"
|
||||
content: |
|
||||
{{ personal_blog_domain }} {
|
||||
root * {{ personal_blog_webroot }}
|
||||
file_server
|
||||
}
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: Reload Caddy to apply new config
|
||||
command: systemctl reload caddy
|
||||
|
||||
- name: Create update script for blog
|
||||
copy:
|
||||
dest: /usr/local/bin/update-personal-blog.sh
|
||||
content: |
|
||||
#!/bin/bash
|
||||
cd {{ personal_blog_source_dir }}
|
||||
git pull https://{{ personal_blog_git_username }}:${PERSONAL_BLOG_DEPLOY_TOKEN}@forgejo.contrapeso.xyz/counterweight/pablohere.git master
|
||||
rsync -av --delete {{ personal_blog_source_dir }}/{{ personal_blog_source_folder }}/ {{ personal_blog_webroot }}/
|
||||
chown -R www-data:www-data {{ personal_blog_webroot }}
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
|
||||
- name: Add cron job to update blog every hour
|
||||
cron:
|
||||
name: "Update personal blog"
|
||||
job: "0 * * * * PERSONAL_BLOG_DEPLOY_TOKEN={{ lookup('env', 'PERSONAL_BLOG_DEPLOY_TOKEN') }} /usr/local/bin/update-personal-blog.sh"
|
||||
user: root
|
||||
Loading…
Add table
Add a link
Reference in a new issue