Moved bitwarden to role based playbook.

Restricted it to gondor host.
This commit is contained in:
tanshu committed 2024-01-23 21:15:54 +05:30
1 parent 790ee8b37b
commit 18fafbb2f1
5 files changed
+67 -53

No files matched your search

+5 -53
View File
@@ -1,60 +1,12 @@
#################################################
# DO Community Playbooks: Docker
# Bitwarden Playbook
#################################################
---
- hosts: all
- hosts: gondor
become: true
vars_files:
- vars/default.yml
tasks:
- name: Pull Bitwarden Vault Warden image
docker_image:
name: "{{ container_image }}"
source: pull
force_source: yes
- name: Create bitwarden container
docker_container:
name: "{{ container_name }}"
image: "{{ container_image }}"
state: started
restart_policy: "unless-stopped"
env:
DATABASE_URL: "{{ db_url }}"
DOMAIN: "https://{{ http_host }}"
links:
- "postgres:db"
published_ports:
- 127.0.0.1:8080:80
- 127.0.0.1:3012:3012
volumes:
- /var/lib/bitwarden/data:/data/
- name: Check if Nginx conf file exists
stat: path="/etc/nginx/sites-available/{{ http_conf }}"
register: status
- name: No need to reload Nginx
debug: msg= {{ "No need to reload Nginx as sites-available entries have already been created" }}
- name: Set Nginx conf file
when: status.stat.exists == false
template:
src: "files/nginx.conf.j2"
dest: "/etc/nginx/sites-available/{{ http_conf }}"
- name: Enable new site
when: status.stat.exists == false
file:
src: "/etc/nginx/sites-available/{{ http_conf }}"
dest: "/etc/nginx/sites-enabled/{{ http_conf }}"
state: link
notify: Reload Nginx
handlers:
- name: Reload Nginx
service:
name: nginx
state: reloaded
roles:
- bitwarden
- nginx
+30
View File
@@ -0,0 +1,30 @@
---
# Tasks for Bitwarden role
- name: Pull Bitwarden Vault Warden image
docker_image:
name: "{{ container_image }}"
source: pull
force_source: yes
- name: Ensure Bitwarden Directory exists
file:
path: "/var/lib/{{ host_directory }}"
state: directory
mode: 0755
- name: Create bitwarden container
docker_container:
name: "{{ container_name }}"
image: "{{ container_image }}"
state: started
restart_policy: "unless-stopped"
env:
DATABASE_URL: "{{ db_url }}"
DOMAIN: "https://{{ http_host }}"
links:
- "postgres:db"
published_ports:
- 127.0.0.1:8080:80
- 127.0.0.1:3012:3012
volumes:
- "/var/lib/{{ host_directory }}/data:/data/"
+6
View File
@@ -0,0 +1,6 @@
---
# Handlers for Nginx role
- name: Reload Nginx
service:
name: nginx
state: reloaded
+24
View File
@@ -0,0 +1,24 @@
---
# Tasks for Nginx role
- name: Check if Nginx conf file exists
stat:
path: "/etc/nginx/sites-available/{{ http_conf }}"
register: status
- name: No need to reload Nginx
debug:
msg: "No need to reload Nginx as sites-available entries have already been created"
- name: Set Nginx conf file
when: status.stat.exists == false
template:
src: "files/nginx.conf.j2"
dest: "/etc/nginx/sites-available/{{ http_conf }}"
- name: Enable new site
when: status.stat.exists == false
file:
src: "/etc/nginx/sites-available/{{ http_conf }}"
dest: "/etc/nginx/sites-enabled/{{ http_conf }}"
state: link
notify: Reload Nginx
+2
View File
@@ -4,6 +4,8 @@ http_conf: "vault.tanshu.com.conf"
container_name: bitwarden
container_image: vaultwarden/server:latest
db_server: db
db_url: postgresql://postgres:123456@{{ db_server }}:5432/bitwarden
host_directory: bitwarden