summaryrefslogtreecommitdiffci
path: root/deploy
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'deploy')
-rw-r--r--deploy/inventory.yml21
-rw-r--r--deploy/playbook.yml55
2 files changed, 76 insertions, 0 deletions
diff --git a/deploy/inventory.yml b/deploy/inventory.yml
new file mode 100644
index 0000000..0a63140
--- /dev/null
+++ b/deploy/inventory.yml
@@ -0,0 +1,21 @@
+all:
+ children:
+ prod:
+ hosts:
+ node_prod:
+ ansible_host: uz.saya.casa
+ saya_today_web_name: sayauz-prod
+ saya_today_web_hostname: sayauz-prod
+ saya_today_web_ipv4_address: 172.16.0.17
+ saya_today_web_listen_address: saya.uz
+ saya_today_web_unix_sockets_path: '/etc/sayauz'
+
+ stage:
+ hosts:
+ node_stage:
+ ansible_host: uz.saya.casa
+ saya_today_web_name: sayauz-stage
+ saya_today_web_hostname: sayauz-stage
+ saya_today_web_ipv4_address: 172.16.0.18
+ saya_today_web_listen_address: stage.saya.uz
+ saya_today_web_unix_sockets_path: '/etc/sayauz'
diff --git a/deploy/playbook.yml b/deploy/playbook.yml
new file mode 100644
index 0000000..057cc19
--- /dev/null
+++ b/deploy/playbook.yml
@@ -0,0 +1,55 @@
+---
+- name: Deploy saya-today-web Docker Container
+ hosts: all
+ remote_user: svc_github
+
+ vars:
+ docker_volumes:
+ - "{{ saya_today_web_name }}-volume:/data:rw"
+
+ tasks:
+ - name: Initialize Unix socket volume
+ when: >-
+ saya_today_web_unix_sockets_path is defined and
+ saya_today_web_unix_sockets_path is string and
+ saya_today_web_unix_sockets_path | length > 0
+ block:
+ - name: Ensure Unix socket volume exists
+ community.docker.docker_volume:
+ name: "sayana_sockets"
+ - name: Include Unix socket volume in docker volumes list
+ ansible.builtin.set_fact:
+ docker_volumes: >-
+ {{ docker_volumes + ["sayana_sockets:" ~ saya_today_web_unix_sockets_path ~ ":rw"] }}
+
+ - name: Create a data volume
+ community.docker.docker_volume:
+ name: "{{ saya_today_web_name }}-volume"
+
+ - name: Deploy sayauz/web Docker Container
+ community.docker.docker_container:
+ name: "{{ saya_today_web_name }}"
+ hostname: "{{ saya_today_web_hostname }}"
+ image: "registry.sayag.it/sayauz/web:{{ saya_today_web_tag }}"
+ env:
+ S3_ACCESS_KEY_ID: "{{ saya_today_web_s3_access_key_id }}"
+ S3_SECRET_ACCESS_KEY: "{{ saya_today_web_s3_secret_access_key }}"
+ ENVIRONMENT: "{{ saya_today_web_environment }}"
+ AUTH_SALT: "{{ saya_today_web_auth_salt }}"
+ MAIL_HOST: "{{ saya_today_web_mail_host }}"
+ MAIL_ADDRESS: "{{ saya_today_web_mail_address }}"
+ MAIL_USERNAME: "{{ saya_today_web_mail_username }}"
+ MAIL_PASSWORD: "{{ saya_today_web_mail_password }}"
+ MAIL_SALT: "{{ saya_today_web_mail_salt }}"
+ FQDN: "{{ saya_today_web_listen_address }}"
+ GOOGLE_VERIFICATION: "{{ saya_today_google_verification | default('') }}"
+ YANDEX_VERIFICATION: "{{ saya_today_yandex_verification | default('') }}"
+ BING_VERIFICATION: "{{ saya_today_bing_verification | default('') }}"
+ network_mode: caddy
+ networks:
+ - name: caddy
+ ipv4_address: "{{ saya_today_web_ipv4_address }}"
+ volumes: "{{ docker_volumes }}"
+ restart_policy: unless-stopped
+ no_log: true
+...