Updates
This commit is contained in:
parent
f8aa45e2fb
commit
fe940fe107
12
docker/kan/docker-compose.yml
Normal file
12
docker/kan/docker-compose.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: ghcr.io/kanbn/kan:latest
|
||||||
|
container_name: kan-web
|
||||||
|
ports:
|
||||||
|
- "7070:3000"
|
||||||
|
environment:
|
||||||
|
NEXT_PUBLIC_BASE_URL: http://localhost:3000
|
||||||
|
BETTER_AUTH_SECRET: your_auth_secret
|
||||||
|
POSTGRES_URL: postgresql://kan:password@10.89.0.102:5432/kan
|
||||||
|
NEXT_PUBLIC_ALLOW_CREDENTIALS: true
|
||||||
|
restart: unless-stopped
|
@ -21,3 +21,5 @@ all:
|
|||||||
ansible_host: 10.89.0.106
|
ansible_host: 10.89.0.106
|
||||||
streaming:
|
streaming:
|
||||||
ansible_host: 10.89.0.107
|
ansible_host: 10.89.0.107
|
||||||
|
apps:
|
||||||
|
ansible_host: 10.89.0.108
|
||||||
|
23
playbooks/apps/kan.yml
Normal file
23
playbooks/apps/kan.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
- name: Deploy Kan.bn app
|
||||||
|
hosts: apps
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- role: app/database
|
||||||
|
vars:
|
||||||
|
app_name: kan
|
||||||
|
tasks:
|
||||||
|
- name: Create kan-web container with correct ports
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: kan-web
|
||||||
|
image: ghcr.io/kanbn/kan:latest
|
||||||
|
pull: true
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "7070:3000"
|
||||||
|
env:
|
||||||
|
NEXT_PUBLIC_BASE_URL: "https://tasks.thegrind.dev"
|
||||||
|
BETTER_AUTH_SECRET: "your_auth_secret"
|
||||||
|
POSTGRES_URL: "postgresql://kan:password@10.89.0.102:5432/kan"
|
||||||
|
NEXT_PUBLIC_ALLOW_CREDENTIALS: "true"
|
@ -6,4 +6,4 @@
|
|||||||
- role: docker/install
|
- role: docker/install
|
||||||
- role: docker/portainer
|
- role: docker/portainer
|
||||||
- role: server/setup/sshkey
|
- role: server/setup/sshkey
|
||||||
- role: server/setup/webmin
|
# - role: server/setup/webmin # Currently not working but fix eventually
|
||||||
|
0
databases.yml → roles/app/docker-compose/defaults/main.yml
Executable file → Normal file
0
databases.yml → roles/app/docker-compose/defaults/main.yml
Executable file → Normal file
0
roles/app/docker-compose/tasks/main.yml
Normal file
0
roles/app/docker-compose/tasks/main.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
- name: Update apt cache
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Install prerequisite packages
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create apt keyrings directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/apt/keyrings
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Download Docker GPG key
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "https://download.docker.com/linux/ubuntu/gpg"
|
||||||
|
dest: /etc/apt/keyrings/docker.asc
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: Add Docker apt repository
|
||||||
|
ansible.builtin.apt_repository:
|
||||||
|
repo: "deb [arch={{ docker_arch }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable"
|
||||||
|
filename: docker
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
docker_arch: "{{ ansible_architecture | regex_replace('x86_64', 'amd64') }}"
|
||||||
|
|
||||||
|
- name: Update apt cache after adding Docker repository
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Install Docker packages
|
||||||
|
ansible.builtin.apt:
|
||||||
|
name:
|
||||||
|
- docker-ce
|
||||||
|
- docker-ce-cli
|
||||||
|
- containerd.io
|
||||||
|
- docker-buildx-plugin
|
||||||
|
- docker-compose-plugin
|
||||||
|
state: present
|
@ -0,0 +1,22 @@
|
|||||||
|
- name: Pull Portainer Agent image
|
||||||
|
become: true
|
||||||
|
community.docker.docker_image:
|
||||||
|
name: portainer/agent
|
||||||
|
tag: latest
|
||||||
|
source: pull
|
||||||
|
|
||||||
|
- name: Deploy Portainer Agent container
|
||||||
|
become: true
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: portainer_agent
|
||||||
|
image: portainer/agent
|
||||||
|
pull: false # we already pulled above
|
||||||
|
state: started
|
||||||
|
restart_policy: always
|
||||||
|
ports:
|
||||||
|
- "9001:9001"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- /var/lib/docker/volumes:/var/lib/docker/volumes
|
||||||
|
- /:/host
|
||||||
|
timeout: 120 # wait up to 2m for it to come up
|
@ -1,4 +1,18 @@
|
|||||||
---
|
---
|
||||||
|
- name: Grant database-level privileges on "{{ database }}"
|
||||||
|
delegate_to: localhost
|
||||||
|
community.postgresql.postgresql_privs:
|
||||||
|
db: "{{ database }}"
|
||||||
|
type: database
|
||||||
|
objs: "{{ database }}"
|
||||||
|
privs: "CREATE"
|
||||||
|
role: "{{ user }}"
|
||||||
|
state: present
|
||||||
|
login_host: "{{ pg_host }}"
|
||||||
|
login_port: "{{ pg_port }}"
|
||||||
|
login_user: "{{ pg_user }}"
|
||||||
|
login_password: "{{ pg_password }}"
|
||||||
|
|
||||||
- name: Give user full priviledges on database
|
- name: Give user full priviledges on database
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
community.postgresql.postgresql_privs:
|
community.postgresql.postgresql_privs:
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
# roles/webmin/defaults/main.yml
|
||||||
|
webmin_repo_url: https://download.webmin.com
|
||||||
|
webmin_dist: stable
|
||||||
|
webmin_section: contrib
|
||||||
|
|
||||||
|
# Optional HTTP auth
|
||||||
|
webmin_auth_user: javi
|
||||||
|
webmin_auth_pass: password
|
@ -1,40 +1,66 @@
|
|||||||
---
|
---
|
||||||
- name: Install required dependencies
|
- name: Remove any old/malformed Webmin sources list
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /etc/apt/sources.list.d/webmin.list
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Remove any old Webmin keyring
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /usr/share/keyrings/webmin-archive-keyring.gpg
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Install Webmin GPG key into its own keyring
|
||||||
|
ansible.builtin.apt_key:
|
||||||
|
url: https://download.webmin.com/developers-key.asc
|
||||||
|
keyring: /usr/share/keyrings/webmin-archive-keyring.gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add Webmin APT repository
|
||||||
|
ansible.builtin.apt_repository:
|
||||||
|
filename: webmin
|
||||||
|
repo: >-
|
||||||
|
deb [signed-by=/usr/share/keyrings/webmin-archive-keyring.gpg]
|
||||||
|
https://download.webmin.com/download/repository
|
||||||
|
sarge contrib
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Ensure apt prerequisites are installed
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- wget
|
- curl
|
||||||
|
- gnupg
|
||||||
- apt-transport-https
|
- apt-transport-https
|
||||||
- software-properties-common
|
- ca-certificates
|
||||||
state: present
|
state: present
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Add Webmin repository
|
- name: Configure APT HTTP auth for Webmin
|
||||||
|
when: webmin_auth_user is defined and webmin_auth_pass is defined
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/apt/sources.list.d/webmin.list
|
dest: /etc/apt/auth.conf.d/webmin.conf
|
||||||
content: "deb http://download.webmin.com/download/repository sarge contrib"
|
mode: '0600'
|
||||||
owner: javi
|
content: |
|
||||||
group: javi
|
machine {{ webmin_repo_url | regex_replace('^https?://','') }}
|
||||||
mode: '0777'
|
login {{ webmin_auth_user }}
|
||||||
|
password {{ webmin_auth_pass }}
|
||||||
|
|
||||||
- name: Add Webmin GPG key
|
- name: Remove old Webmin preference file
|
||||||
ansible.builtin.apt_key:
|
ansible.builtin.file:
|
||||||
url: https://www.webmin.com/jcameron-key.asc
|
path: /etc/apt/preferences.d/webmin-stable-package-priority
|
||||||
state: present
|
state: absent
|
||||||
|
|
||||||
- name: Update apt cache
|
- name: Refresh apt cache
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
- name: Install Webmin with recommended packages
|
- name: Install Webmin
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
name:
|
name:
|
||||||
- webmin
|
- webmin
|
||||||
state: present
|
state: present
|
||||||
update_cache: true
|
|
||||||
install_recommends: true
|
|
||||||
|
|
||||||
- name: Ensure Webmin service is enabled and running
|
- name: Ensure Webmin service is enabled & started
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.service:
|
||||||
name: webmin
|
name: webmin
|
||||||
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
state: started
|
|
Loading…
x
Reference in New Issue
Block a user