Merge pull request 'db-deploy' (#1) from db-deploy into master
Reviewed-on: #1
This commit is contained in:
commit
29a040751a
30
db/files/docker-compose-server.yml
Normal file
30
db/files/docker-compose-server.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
version: "3.3"
|
||||||
|
services:
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres
|
||||||
|
volumes:
|
||||||
|
- app-db-data:/var/lib/postgresql/data/pgdata
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- PGDATA=/var/lib/postgresql/data/pgdata
|
||||||
|
ports:
|
||||||
|
- "54321:5432"
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis/redis-stack-server:latest
|
||||||
|
ports:
|
||||||
|
- "63791:6379"
|
||||||
|
|
||||||
|
liquibase:
|
||||||
|
build:
|
||||||
|
context: ./covas-liquibase
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
command:
|
||||||
|
- "update"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
app-db-data:
|
34
db/tasks/deploy-db.yml
Normal file
34
db/tasks/deploy-db.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# deploy db postgresql, liquibase and redis
|
||||||
|
|
||||||
|
- name: git archive local
|
||||||
|
local_action:
|
||||||
|
module: git
|
||||||
|
repo: "https://{{ git_username | urlencode }}:{{ git_password | urlencode }}@git.valczeryba.ovh/v4l3n71n/covas-liquibase.git"
|
||||||
|
dest: "/home/valentin/src/"
|
||||||
|
archive: "/tmp/covas-liquibase.tar.gz"
|
||||||
|
force: yes
|
||||||
|
update: yes
|
||||||
|
run_once: True
|
||||||
|
|
||||||
|
- name: Create directory
|
||||||
|
file:
|
||||||
|
path: "/home/valentin/{{ item }}"
|
||||||
|
state: directory
|
||||||
|
with_items:
|
||||||
|
- db
|
||||||
|
- db/covas-liquibase
|
||||||
|
|
||||||
|
- name: Extract covas liquibase
|
||||||
|
unarchive:
|
||||||
|
src: "/tmp/covas-liquibase.tar.gz"
|
||||||
|
dest: "/home/valentin/db/covas-liquibase"
|
||||||
|
|
||||||
|
- name: Template env file
|
||||||
|
template:
|
||||||
|
src: env.j2
|
||||||
|
dest: /home/valentin/db/.env
|
||||||
|
|
||||||
|
- name: Copy docker compose server file
|
||||||
|
copy:
|
||||||
|
src: docker-compose-server.yml
|
||||||
|
dest: /home/valentin/db/docker-compose.yml
|
23
db/tasks/main.yml
Normal file
23
db/tasks/main.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
# tasks file for server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# include task db
|
||||||
|
|
||||||
|
- name: Deploy database postgresql and redis
|
||||||
|
ansible.builtin.import_tasks: deploy-db.yml
|
||||||
|
tags: ["start-with-deploy", "deploy"]
|
||||||
|
|
||||||
|
- name: Start db postgresql and redis
|
||||||
|
ansible.builtin.import_tasks: start-db.yml
|
||||||
|
tags: ["start-with-deploy", "start"]
|
||||||
|
|
||||||
|
|
||||||
|
- name: stop db postgresql and redis
|
||||||
|
ansible.builtin.import_tasks: stop-db.yml
|
||||||
|
tags: ["destroy", "stop"]
|
||||||
|
|
||||||
|
- name: Remove db
|
||||||
|
ansible.builtin.import_tasks: remove-db.yml
|
||||||
|
tags: ["destroy"]
|
18
db/tasks/remove-db.yml
Normal file
18
db/tasks/remove-db.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# remove db
|
||||||
|
|
||||||
|
- name: Stopping existing service
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: /home/valentin/db
|
||||||
|
state: absent
|
||||||
|
remove_volumes: yes
|
||||||
|
remove_images: local
|
||||||
|
register: output
|
||||||
|
|
||||||
|
- name: Debug output
|
||||||
|
debug:
|
||||||
|
var: output
|
||||||
|
|
||||||
|
- name: Remove project covas db
|
||||||
|
file:
|
||||||
|
path: /home/valentin/db
|
||||||
|
state: absent
|
34
db/tasks/start-db.yml
Normal file
34
db/tasks/start-db.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# start services db
|
||||||
|
|
||||||
|
- name: Stopping existing service
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: /home/valentin/db
|
||||||
|
|
||||||
|
- name: Starting service
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: /home/valentin/db
|
||||||
|
register: output
|
||||||
|
|
||||||
|
- name: debug output
|
||||||
|
debug:
|
||||||
|
var: output
|
||||||
|
|
||||||
|
- name: Allow port postgresql
|
||||||
|
ansible.builtin.iptables:
|
||||||
|
chain: INPUT
|
||||||
|
protocol: tcp
|
||||||
|
destination_port: 54321
|
||||||
|
jump: ACCEPT
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
||||||
|
|
||||||
|
- name: Allow port redis
|
||||||
|
ansible.builtin.iptables:
|
||||||
|
chain: INPUT
|
||||||
|
protocol: tcp
|
||||||
|
destination_port: 63791
|
||||||
|
jump: ACCEPT
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
34
db/tasks/stop-db.yml
Normal file
34
db/tasks/stop-db.yml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# stop services db and redis
|
||||||
|
|
||||||
|
- name: Disallow port postgresql
|
||||||
|
ansible.builtin.iptables:
|
||||||
|
chain: INPUT
|
||||||
|
protocol: tcp
|
||||||
|
destination_port: 54321
|
||||||
|
jump: ACCEPT
|
||||||
|
state: absent
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
||||||
|
|
||||||
|
|
||||||
|
- name: Disallow port redis
|
||||||
|
ansible.builtin.iptables:
|
||||||
|
chain: INPUT
|
||||||
|
protocol: tcp
|
||||||
|
destination_port: 63791
|
||||||
|
jump: ACCEPT
|
||||||
|
state: absent
|
||||||
|
become: yes
|
||||||
|
become_method: sudo
|
||||||
|
|
||||||
|
- name: Stopping existing service
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: /home/valentin/db
|
||||||
|
state: present
|
||||||
|
stopped: yes
|
||||||
|
register: output
|
||||||
|
|
||||||
|
|
||||||
|
- name: Debug output
|
||||||
|
debug:
|
||||||
|
var: output
|
3
db/templates/env.j2
Normal file
3
db/templates/env.j2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
POSTGRES_PASSWORD={{ postgres_password }}
|
||||||
|
POSTGRES_USER={{ postgres_user }}
|
||||||
|
POSTGRES_DB={{ postgres_db }}
|
1
inventory/group_vars/db
Normal file
1
inventory/group_vars/db
Normal file
@ -0,0 +1 @@
|
|||||||
|
postgres_db: toto
|
10
inventory/group_vars/db_vault
Normal file
10
inventory/group_vars/db_vault
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
35323139356565316333376432336436666566666631363635366235316435313536373765383234
|
||||||
|
6664623264396635643636663865626130616135326230610a373064656264323233663563623930
|
||||||
|
38373762363331663632343036336139663833616638653361363535643239643166363435613764
|
||||||
|
3864363664303836380a363739653638623639663262356532656262393862323164656531393531
|
||||||
|
35663166376632663734356666306433383363386236613330663536326432306561653665356533
|
||||||
|
64396538376432336532343366393938363963656432353638346165313836373136343433623435
|
||||||
|
65626138633637653631386663386462623633656434363761623366626565396362663864613166
|
||||||
|
33346136386532636132613532626133376534326339646161356461346434626335376661656534
|
||||||
|
32343936616335376563363131643938333833376231663862333961383566666137
|
7
inventory/hosts
Normal file
7
inventory/hosts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
vps ansible_connection=ssh ansible_host=51.222.107.37 ansible_port=2424 ansible_user=valentin
|
||||||
|
|
||||||
|
[db]
|
||||||
|
vps
|
||||||
|
|
||||||
|
[db_vault:children]
|
||||||
|
db
|
43
main.tf
Normal file
43
main.tf
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
terraform {
|
||||||
|
required_providers {
|
||||||
|
scaleway = {
|
||||||
|
source = "scaleway/scaleway"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
required_version = ">= 0.13"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "scaleway_k8s_cluster" "terraform-test" {
|
||||||
|
name = "terraform-test"
|
||||||
|
version = "1.24.3"
|
||||||
|
cni = "cilium"
|
||||||
|
project_id = "81af2696-6120-4f45-baf3-d17fb0525824"
|
||||||
|
region = "fr-par"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "scaleway_k8s_pool" "john" {
|
||||||
|
cluster_id = scaleway_k8s_cluster.terraform-test.id
|
||||||
|
name = "john"
|
||||||
|
node_type = "DEV1-M"
|
||||||
|
size = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "null_resource" "kubeconfig" {
|
||||||
|
depends_on = [scaleway_k8s_pool.john] # at least one pool here
|
||||||
|
triggers = {
|
||||||
|
host = scaleway_k8s_cluster.terraform-test.kubeconfig[0].host
|
||||||
|
token = scaleway_k8s_cluster.terraform-test.kubeconfig[0].token
|
||||||
|
cluster_ca_certificate = scaleway_k8s_cluster.terraform-test.kubeconfig[0].cluster_ca_certificate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
provider "kubernetes" {
|
||||||
|
load_config_file = "false"
|
||||||
|
|
||||||
|
host = null_resource.kubeconfig.triggers.host
|
||||||
|
token = null_resource.kubeconfig.triggers.token
|
||||||
|
cluster_ca_certificate = base64decode(
|
||||||
|
null_resource.kubeconfig.triggers.cluster_ca_certificate
|
||||||
|
)
|
||||||
|
}
|
5
playbook.yml
Normal file
5
playbook.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- hosts: db
|
||||||
|
remote_user: valentin
|
||||||
|
roles:
|
||||||
|
- db
|
@ -1,2 +0,0 @@
|
|||||||
---
|
|
||||||
# tasks file for server
|
|
Loading…
x
Reference in New Issue
Block a user