Refaz o saucy
Em vez de usar o comminuty module cenas para docker, usa systemd para gerir os jobs e env files normais. Aproveita e renomeia um dos yaml para yml.
This commit is contained in:
parent
f4f3ce8f27
commit
4c05a03f93
@ -1,80 +0,0 @@
|
|||||||
---
|
|
||||||
- name: SAUCY
|
|
||||||
hosts: saucy@lxd.ansol.org
|
|
||||||
become: true
|
|
||||||
tasks:
|
|
||||||
- name: SAUCY -- install needed packages
|
|
||||||
become: true
|
|
||||||
package:
|
|
||||||
state: present
|
|
||||||
name: '{{ item }}'
|
|
||||||
with_items:
|
|
||||||
- ca-certificates
|
|
||||||
- curl
|
|
||||||
- gnupg
|
|
||||||
- lsb-release
|
|
||||||
- name: SAUCY -- add Docker GPG key
|
|
||||||
become: true
|
|
||||||
apt_key:
|
|
||||||
url: https://download.docker.com/linux/ubuntu/gpg
|
|
||||||
state: present
|
|
||||||
- name: SAUCY -- add Docker repository to apt
|
|
||||||
become: true
|
|
||||||
apt_repository:
|
|
||||||
repo: deb https://download.docker.com/linux/ubuntu focal stable
|
|
||||||
state: present
|
|
||||||
- name: SAUCY -- install docker
|
|
||||||
become: true
|
|
||||||
apt:
|
|
||||||
name: '{{item}}'
|
|
||||||
state: latest
|
|
||||||
loop:
|
|
||||||
- docker-ce
|
|
||||||
- docker-ce-cli
|
|
||||||
- containerd.io
|
|
||||||
- python3-docker
|
|
||||||
- name: SAUCY -- start, and enable, docker service
|
|
||||||
become: true
|
|
||||||
service:
|
|
||||||
name: docker
|
|
||||||
state: started
|
|
||||||
enabled: yes
|
|
||||||
# postgres server and db, account
|
|
||||||
- name: SAUCY -- install postgresql
|
|
||||||
become: true
|
|
||||||
community.docker.docker_container:
|
|
||||||
name: postgresql
|
|
||||||
image: postgres:latest
|
|
||||||
state: started
|
|
||||||
container_default_behavior: no_defaults
|
|
||||||
volumes:
|
|
||||||
- /data:/var/lib/postgresql/data
|
|
||||||
ports:
|
|
||||||
- '5432:5432'
|
|
||||||
env:
|
|
||||||
POSTGRES_USER: '{{ db_user }}'
|
|
||||||
POSTGRES_PASSWORD: '{{ db_password }}'
|
|
||||||
POSTGRES_DB: '{{ db_name }}'
|
|
||||||
- name: SAUCY -- add Saucy container
|
|
||||||
community.docker.docker_container:
|
|
||||||
name: saucy
|
|
||||||
image: git.ansol.org/ansol/saucy:latest
|
|
||||||
state: started
|
|
||||||
container_default_behavior: no_defaults
|
|
||||||
ports:
|
|
||||||
- '80:3000'
|
|
||||||
env:
|
|
||||||
DATABASE_URL: 'postgres://{{ db_user }}:{{ db_password }}@{{ db_host }}/{{ db_name }}'
|
|
||||||
SMTP_ADDRESS: smtp.netureza.pt
|
|
||||||
SMTP_DOMAIN: ansol.org
|
|
||||||
SMTP_USERNAME: '{{ smtp_username }}'
|
|
||||||
SMTP_PASSWORD: '{{ smtp_password }}'
|
|
||||||
SMTP_FROM_ADDRESS: direccao@ansol.org
|
|
||||||
SMTP_FROM_NAME: ANSOL
|
|
||||||
|
|
||||||
IFTHENPAY_KEY: '{{ ifthenpay_key }}'
|
|
||||||
IFTHENPAY_ACCOUNTS: '{{ ifthenpay_accounts }}'
|
|
||||||
|
|
||||||
BASE_HOST: saucy.ansol.org
|
|
||||||
RAILS_LOG_TO_STDOUT: 'true'
|
|
||||||
RAILS_ENV: production
|
|
6
05_container_saucy.yml
Normal file
6
05_container_saucy.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: SAUCY
|
||||||
|
hosts: saucy@lxd.ansol.org
|
||||||
|
roles:
|
||||||
|
- container-postgres
|
||||||
|
- container-saucy
|
@ -1,18 +1,25 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
37323635663062383436383061366461326133386235313733653466313565346562373131333031
|
64616462303033383065373838613534653461376264633632343134636264613037623166376636
|
||||||
3235306530653634333733326430616632393064356330350a363864653566653763383664663061
|
3635363331383233326364376335353039323635343062360a313738626439343832646230373631
|
||||||
30656266383834303464366266366435636438343663313436393764353537326163366434313131
|
61663463333163663031663464373737393932623561363833633563376132373235653065326330
|
||||||
3565323935396330310a613631623530333365643530313531373039336434366166663338613261
|
3230353834323866300a363733326332666639616164373965643532613238326463336661346332
|
||||||
37316462393330663263636464343865313962343738323537623239316533643831303764623132
|
66656261666433356138376338313533623433326230333761663934373766356538366630613261
|
||||||
39636337646538386336393366656336333066316337336634356564303533626263313435376435
|
39323036653465343332373031316433303662343232333665303565313230663730316238646262
|
||||||
36376539383434376430666263316639376337376636616337356161653234393666636461356466
|
37656432323236653262353231316461313731393336383463643231326637313135343262663164
|
||||||
36366665376632643964386535316538326235666266396631363064613235623639666235396434
|
39306139633234633137626461653364373830383034373235316663623230323730323261326139
|
||||||
39316636623264366561393032346666343465333565316136636234323962333339313832303634
|
33663965376639393864653465646263653861353733613936393065326165666131316662666339
|
||||||
37623230313538366666656338666332386431616230343533616234633065356337633766633330
|
39323238323061636536343463643437373735656362626366663266313235363531323632346630
|
||||||
65626566386632303130393336343736303464326130383964333133656632653236626366376166
|
63306365396235663831656137376638313765333333386162353963666637386465396462626261
|
||||||
63383363653830346364373966393036316363393863643833386630633535366332343932643639
|
38316439353562376630386466646531373661633737353133333363663633373564396230616561
|
||||||
38366630326235363033346636316631343532386236613430616165643632636331313832633463
|
36613465636633656432306330356330626238663836306339306132383932626436616338386364
|
||||||
65336664343336663064383866323635663561306637613439626364366435656131646664353138
|
39656135613339613138383464663863613063323334663861613338396464366331623664616232
|
||||||
63356631623562633735303636343232333232646439623764303239643730653431626465616363
|
38393761326230316539373466636435646562306535323830633333656465306532343661396135
|
||||||
35663633303234613064353433646632343436643130336337336361326664336239326135323161
|
62623361656336633532643864383163616163643336366665316535656332333537303062373630
|
||||||
3738
|
36643738653161653731346130643435613235333339623030396161613935316465343266306461
|
||||||
|
36386634323962343731613034366538613663363133393039356661306132623964656430646562
|
||||||
|
64356264643361326566616533323364353535653664353538613362313937376261396632616232
|
||||||
|
36653164353365653162646161396361376434313533616664366461326538306261323139633862
|
||||||
|
62343737623362393533326163353333313032313861366638356338313930346631373430326164
|
||||||
|
64636639623430356433643537323363636537623030353635376632623731376439336461663738
|
||||||
|
35363038303737616561376663373631386633376430643661393665333465373138346131323932
|
||||||
|
34326133316464323138
|
||||||
|
@ -11,3 +11,4 @@
|
|||||||
- import_playbook: 03_container_haproxy.yaml
|
- import_playbook: 03_container_haproxy.yaml
|
||||||
# Container Gitea
|
# Container Gitea
|
||||||
- import_playbook: 04_container_gitea.yaml
|
- import_playbook: 04_container_gitea.yaml
|
||||||
|
- import_playbook: 05_container_saucy.yml
|
||||||
|
11
requirements.txt
Normal file
11
requirements.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
ansible==6.2.0
|
||||||
|
ansible-core==2.13.2
|
||||||
|
cffi==1.15.1
|
||||||
|
cryptography==37.0.4
|
||||||
|
Jinja2==3.1.2
|
||||||
|
MarkupSafe==2.1.1
|
||||||
|
packaging==21.3
|
||||||
|
pycparser==2.21
|
||||||
|
pyparsing==3.0.9
|
||||||
|
PyYAML==6.0
|
||||||
|
resolvelib==0.8.1
|
3
roles/container-postgres/files/env
Normal file
3
roles/container-postgres/files/env
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
POSTGRES_USER={{ db_user }}
|
||||||
|
POSTGRES_PASSWORD={{ db_password }}
|
||||||
|
POSTGRES_DB={{ db_name }}
|
12
roles/container-postgres/files/unit.service
Normal file
12
roles/container-postgres/files/unit.service
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Container running postgres
|
||||||
|
Wants=network.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-failure
|
||||||
|
TimeoutStopSec=70
|
||||||
|
ExecStart=/usr/bin/docker run --rm -it --name postgres --env-file /srv/postgres/env -v /srv/postgres/data:/var/lib/postgresql/data -p5432:5432 postgres:latest
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target default.target
|
3
roles/container-postgres/handlers/main.yml
Normal file
3
roles/container-postgres/handlers/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- name: reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
24
roles/container-postgres/tasks/main.yml
Normal file
24
roles/container-postgres/tasks/main.yml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
- name: container pg -- srv directory
|
||||||
|
become: true
|
||||||
|
file:
|
||||||
|
path: '/srv/postgres'
|
||||||
|
mode: 0700
|
||||||
|
state: directory
|
||||||
|
- name: container pg -- env file
|
||||||
|
become: true
|
||||||
|
template:
|
||||||
|
src: 'files/env'
|
||||||
|
dest: '/srv/postgres/env'
|
||||||
|
mode: 0600
|
||||||
|
- name: container pg -- systemd unit file
|
||||||
|
become: true
|
||||||
|
template:
|
||||||
|
src: 'files/unit.service'
|
||||||
|
dest: '/etc/systemd/system/container-postgres.service'
|
||||||
|
mode: 0644
|
||||||
|
notify: reload systemd
|
||||||
|
- name: container pg -- start
|
||||||
|
become: true
|
||||||
|
systemd:
|
||||||
|
name: container-postgres
|
||||||
|
state: started
|
16
roles/container-saucy/files/env
Normal file
16
roles/container-saucy/files/env
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
DATABASE_URL=postgres://{{ db_user }}:{{ db_password }}@{{ db_host }}/{{ db_name }}
|
||||||
|
SMTP_ADDRESS=smtp.netureza.pt
|
||||||
|
SMTP_DOMAIN=ansol.org
|
||||||
|
SMTP_USERNAME={{ smtp_username }}
|
||||||
|
SMTP_PASSWORD={{ smtp_password }}
|
||||||
|
SMTP_FROM_ADDRESS=direccao@ansol.org
|
||||||
|
SMTP_FROM_NAME=ANSOL
|
||||||
|
|
||||||
|
IFTHENPAY_KEY={{ ifthenpay_key }}
|
||||||
|
IFTHENPAY_ACCOUNTS={{ ifthenpay_accounts }}
|
||||||
|
|
||||||
|
BASE_HOST=saucy.ansol.org
|
||||||
|
RAILS_ENV=production
|
||||||
|
RAILS_LOG_TO_STDOUT=true
|
||||||
|
RAILS_SERVE_STATIC_FILES=true
|
||||||
|
SECRET_KEY_BASE={{ secret_key_base }}
|
12
roles/container-saucy/files/unit.service
Normal file
12
roles/container-saucy/files/unit.service
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Container running saucy
|
||||||
|
Wants=network.target
|
||||||
|
After=network-online.target container-postgres.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-failure
|
||||||
|
TimeoutStopSec=70
|
||||||
|
ExecStart=/usr/bin/docker run --pull=always --rm -it --name saucy --env-file /srv/saucy/env -v /srv/saucy/data:/data -p80:3000 git.ansol.org/ansol/saucy:latest
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target default.target
|
3
roles/container-saucy/handlers/main.yml
Normal file
3
roles/container-saucy/handlers/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- name: reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: yes
|
36
roles/container-saucy/tasks/main.yml
Normal file
36
roles/container-saucy/tasks/main.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
- name: container saucy -- srv directory
|
||||||
|
become: true
|
||||||
|
file:
|
||||||
|
path: '/srv/saucy'
|
||||||
|
mode: 0700
|
||||||
|
state: directory
|
||||||
|
- name: container saucy -- env file
|
||||||
|
become: true
|
||||||
|
template:
|
||||||
|
src: 'files/env'
|
||||||
|
dest: '/srv/saucy/env'
|
||||||
|
mode: 0600
|
||||||
|
- name: container saucy -- systemd unit file
|
||||||
|
become: true
|
||||||
|
template:
|
||||||
|
src: 'files/unit.service'
|
||||||
|
dest: '/etc/systemd/system/container-saucy.service'
|
||||||
|
mode: 0644
|
||||||
|
notify: reload systemd
|
||||||
|
- name: container saucy -- start
|
||||||
|
become: true
|
||||||
|
systemd:
|
||||||
|
name: container-saucy
|
||||||
|
state: started
|
||||||
|
- name: container saucy -- sync cron
|
||||||
|
become: true
|
||||||
|
cron:
|
||||||
|
name: "saucy-sync"
|
||||||
|
minute: "*/5"
|
||||||
|
job: "/usr/bin/docker exec -it saucy bin/rails saucy:sync"
|
||||||
|
#- name: container saucy -- sync cron
|
||||||
|
# become: true
|
||||||
|
# cron:
|
||||||
|
# name: "saucy-sync"
|
||||||
|
# hour: "8"
|
||||||
|
# job: "/usr/bin/docker exec -it saucy bin/rails saucy:notify"
|
Loading…
Reference in New Issue
Block a user