1
0
Fork 0

feat: add ansible playbook to deploy caddy to valhalla.vxm.cz

This commit is contained in:
Vojtěch Mareš 2024-12-28 12:34:00 +01:00
parent 722dd43330
commit dfb7075138
Signed by: vojtech.mares
GPG key ID: C6827B976F17240D
3 changed files with 61 additions and 0 deletions

View file

@ -16,3 +16,17 @@ build:
artifacts:
paths:
- /build/caddy
deploy:
stage: deploy
image: alpine/ansible:latest
before_script:
- "command -v ssh-agent >/dev/null || ( apk update && apk add --no-cache openssh-client )"
- eval $(ssh-agent -s)
- chmod 400 "$SSH_PRIVATE_KEY"
- ssh-add "$SSH_PRIVATE_KEY"
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan -H valhalla.vxm.cz >> ~/.ssh/known_hosts
script:
- ansible-playbook -i inventory.ini playbook.yml

1
inventory.ini Normal file
View file

@ -0,0 +1 @@
valhalla.vxm.cz

46
playbook.yml Normal file
View file

@ -0,0 +1,46 @@
---
- name: Deploy Caddy
hosts: all
become: yes
tasks:
- name: Create caddy user
user:
name: caddy
system: yes
shell: /usr/sbin/nologin
- name: Copy Caddy binary
copy:
src: /build/caddy
dest: /usr/local/bin/caddy
mode: "0755"
- name: Create systemd unit file for Caddy
copy:
dest: /etc/systemd/system/caddy.service
content: |
[Unit]
Description=Caddy web server
After=network.target
[Service]
ExecStart=/usr/local/bin/caddy run --config /etc/caddy/Caddyfile
Restart=always
User=caddy
Group=caddy
EnvironmentFile=/etc/caddy/.env
[Install]
WantedBy=multi-user.target
when: not ansible_facts['systemd']['units']['caddy.service']
- name: Enable and start Caddy service
systemd:
name: caddy
enabled: yes
state: started
- name: Restart Caddy service
systemd:
name: caddy
state: restarted