created major large-scale changes
This commit is contained in:
@@ -4,23 +4,180 @@
|
||||
ansible.builtin.shell:
|
||||
cmd: "echo ~{{ ansible_user }}"
|
||||
register: ansible_user_home
|
||||
- name: Acquiring home of current user
|
||||
when: ansible_facts["system"] == "Linux"
|
||||
ansible.builtin.shell:
|
||||
cmd: "echo {{ ansible_user }}"
|
||||
register: current_user
|
||||
- name: Informing user of requirement of two main domains
|
||||
when: (certbot.domains | length) < 2 or (certbot.domains | length) > 2
|
||||
ansible.builtin.fail:
|
||||
msg: Only two domains allowed and required
|
||||
- name: Informing user of requirement at least one wildcard
|
||||
when: (certbot.domains | select("regex", "^\\*\\.") | list | length) == 0
|
||||
ansible.builtin.fail:
|
||||
msg: At least one of the FQDNs must have a wildcard
|
||||
# - name: Setting the FQDN for development
|
||||
# when: compose.mode == "dev"
|
||||
# ansible.builtin.set_fact:
|
||||
# web_fqdn: "{{ (certbot.domains | map('regex_replace', '\\.([^\\.]*)$', '.test') | reject('regex', '^\\*\\.') | list)[0] }}"
|
||||
- name: Setting the FQDN for production
|
||||
# when: compose.mode == "prod"
|
||||
ansible.builtin.set_fact:
|
||||
web_fqdn: "{{ (certbot.domains | reject('regex', '^\\*\\.') | list)[0] }}"
|
||||
- name: Linking repository to another path
|
||||
ignore_errors: true
|
||||
ansible.builtin.file:
|
||||
src: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz"
|
||||
dest: "{{ ansible_user_home.stdout }}/repos/skato-quartz"
|
||||
state: link
|
||||
- name: Installing NodeJS dependencies of quartz software
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
community.general.npm:
|
||||
path: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz"
|
||||
state: latest
|
||||
- name: Configuring quartz software
|
||||
block:
|
||||
- name: Creating path for Quartz content files (path for Obsidian vaults)
|
||||
ansible.builtin.file:
|
||||
path: "{{ ansible_user_home.stdout }}/journal/notes"
|
||||
recurse: true
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
mode: "755"
|
||||
state: directory
|
||||
- name: Creating some initial text content for Quartz
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
ansible.builtin.template:
|
||||
src: "user/journal/notes/index.md.j2"
|
||||
dest: "{{ ansible_user_home.stdout }}/journal/notes/index.md"
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
mode: "644"
|
||||
backup: true
|
||||
- name: Creating some initial image content for Quartz
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
ansible.builtin.copy:
|
||||
src: user/journal/mythe-sisyphus-klein.png
|
||||
dest: "{{ ansible_user_home.stdout }}/journal/notes/mythe-sisyphus-klein.png"
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
mode: "644"
|
||||
backup: true
|
||||
- name: Initializing quartz website
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- npx
|
||||
- "-y"
|
||||
- quartz
|
||||
- create
|
||||
- "-b"
|
||||
- notes.{{ web_fqdn }}"
|
||||
- "-t"
|
||||
- obsidian
|
||||
- "-s"
|
||||
- "{{ ansible_user_home.stdout }}/journal/notes"
|
||||
- "-X"
|
||||
- symlink
|
||||
chdir: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz"
|
||||
cmd: npx quartz create
|
||||
creates: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz/content/index.md"
|
||||
- name: Installing quartz plugins referenced in website template
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- npx
|
||||
- "-y"
|
||||
- quartz
|
||||
- plugin
|
||||
- install
|
||||
chdir: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz"
|
||||
cmd: npx quartz plugin install --from-config
|
||||
# - name: Starting quartz site web server
|
||||
# ansible.builtin.command:
|
||||
# chdir: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz"
|
||||
# cmd: npx quartz build --serve
|
||||
# register: stdout
|
||||
# changed_when: stdout
|
||||
- name: Starting quartz site web server
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- npx
|
||||
- "-y"
|
||||
- quartz
|
||||
- build
|
||||
- "-o"
|
||||
- "{{ ansible_user_home.stdout }}/srv/notes.{{ web_fqdn }}"
|
||||
- "--concurrency"
|
||||
- "3"
|
||||
chdir: "{{ ansible_user_home.stdout }}/repos/.foreign/quartz"
|
||||
creates: "{{ ansible_user_home.stdout }}/srv/notes.{{ web_fqdn }}/index.html"
|
||||
- name: Creating directory for caddy configuration
|
||||
ansible.builtin.file:
|
||||
path: "{{ ansible_user_home.stdout }}/.config/caddy"
|
||||
recurse: true
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
state: directory
|
||||
- name: Adding Caddyfile subdomain entry
|
||||
when: "(caddy is defined and caddy != None) and caddy.containerized and mode == 'prod'"
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ ansible_user_home.stdout }}/.config/caddy/Caddyfile"
|
||||
block: |
|
||||
notes.{{ web_fqdn }} {
|
||||
respond 503
|
||||
# root /srv/notes.{{ web_fqdn }}
|
||||
file_server
|
||||
encode gzip
|
||||
|
||||
handle_errors {
|
||||
root /srv/{{ web_fqdn }}
|
||||
rewrite /error/{err.status_code}.html
|
||||
templates
|
||||
}
|
||||
}
|
||||
prepend_newline: true
|
||||
marker: "# <-- {mark} ANSIBLE MANAGED NOTES DOMAIN -->"
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
mode: "644"
|
||||
create: true
|
||||
state: present
|
||||
- name: Adding Caddyfile subdomain entry
|
||||
when: "(caddy is defined and caddy != None) and caddy.containerized and (mode == 'dev' or caddy.scheme == 'http')"
|
||||
ansible.builtin.blockinfile:
|
||||
path: "{{ ansible_user_home.stdout }}/.config/caddy/Caddyfile"
|
||||
block: |
|
||||
http://notes.{{ web_fqdn }} {
|
||||
respond 503
|
||||
# root /srv/notes.{{ web_fqdn }}
|
||||
file_server
|
||||
encode gzip
|
||||
|
||||
handle_errors {
|
||||
root /srv/{{ web_fqdn }}
|
||||
rewrite /error/{err.status_code}.html
|
||||
templates
|
||||
}
|
||||
}
|
||||
prepend_newline: true
|
||||
marker: "# <-- {mark} ANSIBLE MANAGED NOTES DOMAIN -->"
|
||||
owner: "{{ ansible_user }}"
|
||||
group: "{{ ansible_user }}"
|
||||
mode: "644"
|
||||
create: true
|
||||
state: present
|
||||
- name: Checking the status of podman containers
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- podman
|
||||
- ps
|
||||
register: podman_status
|
||||
- name: Restarting webserver / reverse proxy container
|
||||
become: true
|
||||
become_user: "{{ current_user.stdout }}"
|
||||
when: "'revproxy0' in podman_status.stdout and (caddy is defined and caddy != None) and caddy.containerized"
|
||||
containers.podman.podman_container:
|
||||
name: "{{ compose.containers.webserver.name }}"
|
||||
state: started
|
||||
force_restart: true
|
||||
Reference in New Issue
Block a user