feat: Add ghost and dawarich
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
ansible_user: root
|
||||||
|
ansible_host: 10.0.2.48
|
||||||
|
ansible_ssh_pass: "{{ proxmox_api_password }}"
|
||||||
|
vmid: 648
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
ansible_user: root
|
||||||
|
ansible_host: 10.0.2.47
|
||||||
|
ansible_ssh_pass: "{{ proxmox_api_password }}"
|
||||||
|
vmid: 647
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
ansible_user: root
|
||||||
|
ansible_host: 10.0.3.3
|
||||||
|
ansible_ssh_pass: "{{ proxmox_api_password }}"
|
||||||
|
ip_addr: 10.0.3.3
|
||||||
|
|
||||||
|
# interface which will be used for flannel
|
||||||
|
|
||||||
|
flannel_iface: "vmbr0"
|
||||||
@@ -27,14 +27,18 @@ convertx
|
|||||||
nocodb
|
nocodb
|
||||||
super-productivity
|
super-productivity
|
||||||
droposs
|
droposs
|
||||||
|
ghost
|
||||||
|
dawarich
|
||||||
|
|
||||||
[baremetal]
|
[baremetal]
|
||||||
mipha
|
mipha
|
||||||
purah
|
purah
|
||||||
revali
|
; revali
|
||||||
yuga
|
yuga
|
||||||
impa
|
; impa
|
||||||
sidon
|
sidon
|
||||||
|
yunobo
|
||||||
|
|
||||||
|
|
||||||
[pihole]
|
[pihole]
|
||||||
epona-pihole
|
epona-pihole
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- role: 47-ghost/provision/delete
|
||||||
|
vars:
|
||||||
|
vmid: 647
|
||||||
|
- role: 47-ghost/provision/create
|
||||||
|
vars:
|
||||||
|
vmid: 647
|
||||||
|
- role: 47-ghost/provision/start
|
||||||
|
vars:
|
||||||
|
vmid: 647
|
||||||
|
|
||||||
|
- hosts: purah
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- role: 47-ghost/enable-ssh
|
||||||
|
vars:
|
||||||
|
vmid: 647
|
||||||
|
|
||||||
|
- hosts: ghost
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- role: 47-ghost/update
|
||||||
|
- role: 47-ghost/install-docker
|
||||||
|
- role: 47-ghost/install-app
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
# - hosts: localhost
|
||||||
|
# become: yes
|
||||||
|
# roles:
|
||||||
|
# - role: 48-dawarich/provision/delete
|
||||||
|
# vars:
|
||||||
|
# vmid: 648
|
||||||
|
# - role: 48-dawarich/provision/create
|
||||||
|
# vars:
|
||||||
|
# vmid: 648
|
||||||
|
# - role: 48-dawarich/provision/start
|
||||||
|
# vars:
|
||||||
|
# vmid: 648
|
||||||
|
|
||||||
|
# - hosts: yunobo
|
||||||
|
# become: yes
|
||||||
|
# roles:
|
||||||
|
# - role: 48-dawarich/enable-ssh
|
||||||
|
# vars:
|
||||||
|
# vmid: 648
|
||||||
|
|
||||||
|
- hosts: dawarich
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- role: 48-dawarich/update
|
||||||
|
- role: 48-dawarich/install-docker
|
||||||
|
- role: 48-dawarich/install-app
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
# Unable to use ansible.builtin.lineinfile, because we need to run this through the proxmox host (because SSH is not enabled duh)
|
||||||
|
|
||||||
|
- name: Pause for 10 seconds to wait for SSH server
|
||||||
|
ansible.builtin.pause:
|
||||||
|
seconds: 10
|
||||||
|
|
||||||
|
- name: Allow SSH into LXC
|
||||||
|
ansible.builtin.command: lxc-attach -n 647 -- sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
- name: Restart SSH Service
|
||||||
|
ansible.builtin.command: lxc-attach -n 647 service ssh restart
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- name: Create directory for docker-compose
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /root/docker/
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Copy docker-compose file
|
||||||
|
template:
|
||||||
|
src: "docker-compose.yml"
|
||||||
|
dest: /root/docker/docker-compose.yml
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Run docker-compose
|
||||||
|
ansible.builtin.shell:
|
||||||
|
args:
|
||||||
|
cmd: docker compose up -d
|
||||||
|
chdir: /root/docker/
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# Use the below flags to enable the Analytics or ActivityPub containers as well
|
||||||
|
# COMPOSE_PROFILES=analytics,activitypub
|
||||||
|
|
||||||
|
# Ghost domain
|
||||||
|
# Custom public domain Ghost will run on
|
||||||
|
DOMAIN=example.com
|
||||||
|
|
||||||
|
# Ghost Admin domain
|
||||||
|
# If you have Ghost Admin setup on a separate domain uncomment the line below and add the domain
|
||||||
|
# You also need to uncomment the corresponding block in your Caddyfile
|
||||||
|
# ADMIN_DOMAIN=
|
||||||
|
|
||||||
|
# Database settings
|
||||||
|
# All database settings must not be changed once the database is initialised
|
||||||
|
DATABASE_ROOT_PASSWORD=reallysecurerootpassword
|
||||||
|
# DATABASE_USER=optionalusername
|
||||||
|
DATABASE_PASSWORD=ghostpassword
|
||||||
|
|
||||||
|
# Ghost configuration (https://ghost.org/docs/config/)
|
||||||
|
|
||||||
|
# SMTP Email (https://ghost.org/docs/config/#mail)
|
||||||
|
# Transactional email is required for logins, account creation (staff invites), password resets and other features
|
||||||
|
# This is not related to bulk mail / newsletter sending
|
||||||
|
mail__transport=SMTP
|
||||||
|
mail__options__host=smtp.example.com
|
||||||
|
mail__options__port=465
|
||||||
|
mail__options__secure=true
|
||||||
|
mail__options__auth__user=postmaster@example.com
|
||||||
|
mail__options__auth__pass=1234567890
|
||||||
|
|
||||||
|
# Advanced customizations
|
||||||
|
|
||||||
|
# Force Ghost version
|
||||||
|
# You should only do this if you need to pin a specific version
|
||||||
|
# The update commands won't work
|
||||||
|
# GHOST_VERSION=6-alpine
|
||||||
|
|
||||||
|
# Port Ghost should listen on
|
||||||
|
# You should only need to edit this if you want to host
|
||||||
|
# multiple sites on the same server
|
||||||
|
# GHOST_PORT=2368
|
||||||
|
|
||||||
|
# Data locations
|
||||||
|
# Location to store uploaded data
|
||||||
|
UPLOAD_LOCATION=./data/ghost
|
||||||
|
|
||||||
|
# Location for database data
|
||||||
|
MYSQL_DATA_LOCATION=./data/mysql
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/main/schema/compose-spec.json
|
||||||
|
services:
|
||||||
|
ghost:
|
||||||
|
# Do not alter this without updating the Tinybird Sync container as well
|
||||||
|
image: ghost:${GHOST_VERSION:-6-alpine}
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "127.0.0.1:${GHOST_PORT:-2368}:2368"
|
||||||
|
# This is required to import current config when migrating
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
NODE_ENV: production
|
||||||
|
url: https://${DOMAIN:?DOMAIN environment variable is required}
|
||||||
|
admin__url: ${ADMIN_DOMAIN:+https://${ADMIN_DOMAIN}}
|
||||||
|
database__client: mysql
|
||||||
|
database__connection__host: db
|
||||||
|
database__connection__user: ${DATABASE_USER:-ghost}
|
||||||
|
database__connection__password: ${DATABASE_PASSWORD:?DATABASE_PASSWORD environment variable is required}
|
||||||
|
database__connection__database: ghost
|
||||||
|
tinybird__tracker__endpoint: https://${DOMAIN:?DOMAIN environment variable is required}/.ghost/analytics/api/v1/page_hit
|
||||||
|
tinybird__adminToken: ${TINYBIRD_ADMIN_TOKEN:-}
|
||||||
|
tinybird__workspaceId: ${TINYBIRD_WORKSPACE_ID:-}
|
||||||
|
tinybird__tracker__datasource: analytics_events
|
||||||
|
tinybird__stats__endpoint: ${TINYBIRD_API_URL:-https://api.tinybird.co}
|
||||||
|
volumes:
|
||||||
|
- ${UPLOAD_LOCATION:-./data/ghost}:/var/lib/ghost/content
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
tinybird-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
required: false
|
||||||
|
tinybird-deploy:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
required: false
|
||||||
|
activitypub:
|
||||||
|
condition: service_started
|
||||||
|
required: false
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: mysql:8.0.42@sha256:4445b2668d41143cb50e471ee207f8822006249b6859b24f7e12479684def5d9
|
||||||
|
restart: always
|
||||||
|
expose:
|
||||||
|
- "3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD:?DATABASE_ROOT_PASSWORD environment variable is required}
|
||||||
|
MYSQL_USER: ${DATABASE_USER:-ghost}
|
||||||
|
MYSQL_PASSWORD: ${DATABASE_PASSWORD:?DATABASE_PASSWORD environment variable is required}
|
||||||
|
MYSQL_DATABASE: ghost
|
||||||
|
MYSQL_MULTIPLE_DATABASES: activitypub
|
||||||
|
volumes:
|
||||||
|
- ${MYSQL_DATA_LOCATION:-./data/mysql}:/var/lib/mysql
|
||||||
|
- ./mysql-init:/docker-entrypoint-initdb.d
|
||||||
|
healthcheck:
|
||||||
|
test: mysqladmin ping -p$$MYSQL_ROOT_PASSWORD -h 127.0.0.1
|
||||||
|
interval: 1s
|
||||||
|
start_period: 30s
|
||||||
|
start_interval: 10s
|
||||||
|
retries: 120
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Get convenience script
|
||||||
|
uri:
|
||||||
|
url: "https://get.docker.com"
|
||||||
|
method: GET
|
||||||
|
dest: /tmp/get-docker.sh
|
||||||
|
mode: a+x
|
||||||
|
creates: /tmp/get-docker.sh
|
||||||
|
|
||||||
|
- name: Execute script
|
||||||
|
ansible.builtin.shell: /tmp/get-docker.sh
|
||||||
|
|
||||||
|
- name: Ensure group "docker" exists
|
||||||
|
ansible.builtin.group:
|
||||||
|
name: docker
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add root user to docker group
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: root
|
||||||
|
groups: docker
|
||||||
|
append: yes
|
||||||
|
|
||||||
|
- name: Enable docker on startup
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
systemctl enable docker.service
|
||||||
|
systemctl enable containerd.service
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
- name: Create container
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: 647
|
||||||
|
node: purah
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
password: "{{ lxc_password }}"
|
||||||
|
hostname: ghost
|
||||||
|
ostemplate: "local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst"
|
||||||
|
netif: "{'net0':'name=eth0,\
|
||||||
|
gw=10.0.0.1,\
|
||||||
|
ip=10.0.2.47/21,\
|
||||||
|
hwaddr=cc:c6:cf:de:20:47,\
|
||||||
|
bridge=vmbr0'}"
|
||||||
|
cores: 2
|
||||||
|
memory: 4196
|
||||||
|
unprivileged: no
|
||||||
|
swap: 0
|
||||||
|
searchdomain: "home"
|
||||||
|
onboot: 1
|
||||||
|
features:
|
||||||
|
- nesting=1
|
||||||
|
- keyctl=1
|
||||||
|
disk: purah-mirror-860gb:20
|
||||||
|
mounts: '{
|
||||||
|
"mp0":"purah-mirror-860gb:10,mp=/data,backup=1"
|
||||||
|
}'
|
||||||
|
force: yes
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Stop container
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: "{{ vmid }}"
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
state: stopped
|
||||||
|
ignore_errors: true
|
||||||
|
timeout: 90
|
||||||
|
|
||||||
|
- name: Remove containers
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: "{{ vmid }}"
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
state: absent
|
||||||
|
ignore_errors: true
|
||||||
|
timeout: 90
|
||||||
|
|
||||||
|
- name: Remove .ssh/known_hosts lines
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /Users/lino.silva/.ssh/known_hosts
|
||||||
|
state: absent
|
||||||
|
regexp: "^10.0.2.47"
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: Start deployments
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: "{{ vmid }}"
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
state: started
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: Update all packages to their latest version
|
||||||
|
become: true
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: yes
|
||||||
|
upgrade: full
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
# Unable to use ansible.builtin.lineinfile, because we need to run this through the proxmox host (because SSH is not enabled duh)
|
||||||
|
|
||||||
|
- name: Pause for 10 seconds to wait for SSH server
|
||||||
|
ansible.builtin.pause:
|
||||||
|
seconds: 10
|
||||||
|
|
||||||
|
- name: Allow SSH into LXC
|
||||||
|
ansible.builtin.command: lxc-attach -n 648 -- sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
- name: Restart SSH Service
|
||||||
|
ansible.builtin.command: lxc-attach -n 648 service ssh restart
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- name: Create directory for docker-compose
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /root/docker/
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
|
||||||
|
- name: Copy docker-compose file
|
||||||
|
template:
|
||||||
|
src: "docker-compose.yml"
|
||||||
|
dest: /root/docker/docker-compose.yml
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: Run docker-compose
|
||||||
|
ansible.builtin.shell:
|
||||||
|
args:
|
||||||
|
cmd: docker compose up -d
|
||||||
|
chdir: /root/docker/
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
services:
|
||||||
|
dawarich_redis:
|
||||||
|
image: redis:7.4-alpine
|
||||||
|
container_name: dawarich_redis
|
||||||
|
command: redis-server
|
||||||
|
volumes:
|
||||||
|
- /data/shared:/data
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
dawarich_db:
|
||||||
|
image: postgis/postgis:17-3.5-alpine
|
||||||
|
shm_size: 1G
|
||||||
|
container_name: dawarich_db
|
||||||
|
volumes:
|
||||||
|
- /data/db:/var/lib/postgresql/data
|
||||||
|
- /data/shared:/var/shared
|
||||||
|
# - ./postgresql.conf:/etc/postgresql/postgresql.conf # Optional, uncomment if you want to use a custom config
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
POSTGRES_DB: dawarich_development
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "pg_isready -U postgres -d dawarich_development" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
# command: postgres -c config_file=/etc/postgresql/postgresql.conf # Use custom config, uncomment if you want to use a custom config
|
||||||
|
dawarich_app:
|
||||||
|
image: freikin/dawarich:latest
|
||||||
|
container_name: dawarich_app
|
||||||
|
volumes:
|
||||||
|
- /data/public:/var/app/public
|
||||||
|
- /data/watched:/var/app/tmp/imports/watched
|
||||||
|
- /data/storage:/var/app/storage
|
||||||
|
- /data/db:/dawarich_db_data
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
||||||
|
# - 9394:9394 # Prometheus exporter, uncomment if needed
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
entrypoint: web-entrypoint.sh
|
||||||
|
command: ['bin/rails', 'server', '-p', '3000', '-b', '::']
|
||||||
|
restart: on-failure
|
||||||
|
environment:
|
||||||
|
RAILS_ENV: development
|
||||||
|
REDIS_URL: redis://dawarich_redis:6379
|
||||||
|
DATABASE_HOST: dawarich_db
|
||||||
|
DATABASE_USERNAME: postgres
|
||||||
|
DATABASE_PASSWORD: password
|
||||||
|
DATABASE_NAME: dawarich_development
|
||||||
|
MIN_MINUTES_SPENT_IN_CITY: 60
|
||||||
|
APPLICATION_HOSTS: localhost
|
||||||
|
TIME_ZONE: Europe/London
|
||||||
|
APPLICATION_PROTOCOL: http
|
||||||
|
PROMETHEUS_EXPORTER_ENABLED: "false"
|
||||||
|
PROMETHEUS_EXPORTER_HOST: 0.0.0.0
|
||||||
|
PROMETHEUS_EXPORTER_PORT: 9394
|
||||||
|
SELF_HOSTED: "true"
|
||||||
|
STORE_GEODATA: "true"
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "100m"
|
||||||
|
max-file: "5"
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "wget -qO - http://127.0.0.1:3000/api/v1/health | grep -q '\"status\"\\s*:\\s*\"ok\"'" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 30
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
depends_on:
|
||||||
|
dawarich_db:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
dawarich_redis:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '0.50' # Limit CPU usage to 50% of one core
|
||||||
|
memory: '4G' # Limit memory usage to 4GB
|
||||||
|
dawarich_sidekiq:
|
||||||
|
image: freikin/dawarich:latest
|
||||||
|
container_name: dawarich_sidekiq
|
||||||
|
volumes:
|
||||||
|
- /data/public:/var/app/public
|
||||||
|
- /data/watched:/var/app/tmp/imports/watched
|
||||||
|
- /data/storage:/var/app/storage
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
|
entrypoint: sidekiq-entrypoint.sh
|
||||||
|
command: ['sidekiq']
|
||||||
|
restart: on-failure
|
||||||
|
environment:
|
||||||
|
RAILS_ENV: development
|
||||||
|
REDIS_URL: redis://dawarich_redis:6379
|
||||||
|
DATABASE_HOST: dawarich_db
|
||||||
|
DATABASE_USERNAME: postgres
|
||||||
|
DATABASE_PASSWORD: password
|
||||||
|
DATABASE_NAME: dawarich_development
|
||||||
|
APPLICATION_HOSTS: localhost
|
||||||
|
BACKGROUND_PROCESSING_CONCURRENCY: 10
|
||||||
|
APPLICATION_PROTOCOL: http
|
||||||
|
PROMETHEUS_EXPORTER_ENABLED: "false"
|
||||||
|
PROMETHEUS_EXPORTER_HOST: dawarich_app
|
||||||
|
PROMETHEUS_EXPORTER_PORT: 9394
|
||||||
|
SELF_HOSTED: "true"
|
||||||
|
STORE_GEODATA: "true"
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "100m"
|
||||||
|
max-file: "5"
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "pgrep -f sidekiq" ]
|
||||||
|
interval: 10s
|
||||||
|
retries: 30
|
||||||
|
start_period: 30s
|
||||||
|
timeout: 10s
|
||||||
|
depends_on:
|
||||||
|
dawarich_db:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
dawarich_redis:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
|
dawarich_app:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: true
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Get convenience script
|
||||||
|
uri:
|
||||||
|
url: "https://get.docker.com"
|
||||||
|
method: GET
|
||||||
|
dest: /tmp/get-docker.sh
|
||||||
|
mode: a+x
|
||||||
|
creates: /tmp/get-docker.sh
|
||||||
|
|
||||||
|
- name: Execute script
|
||||||
|
ansible.builtin.shell: /tmp/get-docker.sh
|
||||||
|
|
||||||
|
- name: Ensure group "docker" exists
|
||||||
|
ansible.builtin.group:
|
||||||
|
name: docker
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add root user to docker group
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: root
|
||||||
|
groups: docker
|
||||||
|
append: yes
|
||||||
|
|
||||||
|
- name: Enable docker on startup
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
systemctl enable docker.service
|
||||||
|
systemctl enable containerd.service
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
- name: Create container
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: 648
|
||||||
|
node: yunobo
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
password: "{{ lxc_password }}"
|
||||||
|
hostname: dawarich
|
||||||
|
ostemplate: "local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst"
|
||||||
|
netif: "{'net0':'name=eth0,\
|
||||||
|
gw=10.0.0.1,\
|
||||||
|
ip=10.0.2.48/21,\
|
||||||
|
hwaddr=cc:c6:cf:de:20:48,\
|
||||||
|
bridge=vmbr0'}"
|
||||||
|
cores: 2
|
||||||
|
memory: 4196
|
||||||
|
unprivileged: no
|
||||||
|
swap: 0
|
||||||
|
searchdomain: "home"
|
||||||
|
onboot: 1
|
||||||
|
features:
|
||||||
|
- nesting=1
|
||||||
|
- keyctl=1
|
||||||
|
disk: nvme-2tb:20
|
||||||
|
mounts: '{
|
||||||
|
"mp0":"nvme-2tb:10,mp=/data,backup=1"
|
||||||
|
}'
|
||||||
|
force: yes
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: Stop container
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: "{{ vmid }}"
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
state: stopped
|
||||||
|
ignore_errors: true
|
||||||
|
timeout: 90
|
||||||
|
|
||||||
|
- name: Remove containers
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: "{{ vmid }}"
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
state: absent
|
||||||
|
ignore_errors: true
|
||||||
|
timeout: 90
|
||||||
|
|
||||||
|
- name: Remove .ssh/known_hosts lines
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /Users/lino.silva/.ssh/known_hosts
|
||||||
|
state: absent
|
||||||
|
regexp: "^10.0.2.48"
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- name: Start deployments
|
||||||
|
community.general.proxmox:
|
||||||
|
vmid: "{{ vmid }}"
|
||||||
|
api_user: root@pam
|
||||||
|
api_password: "{{ proxmox_api_password }}"
|
||||||
|
api_host: 10.0.2.2
|
||||||
|
state: started
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: Update all packages to their latest version
|
||||||
|
become: true
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: yes
|
||||||
|
upgrade: full
|
||||||
Reference in New Issue
Block a user