From f2b599e87c723762715e7e539a21f0f9090af351 Mon Sep 17 00:00:00 2001 From: Kris Lamoureux Date: Sat, 13 Jun 2020 01:12:23 -0400 Subject: [PATCH] Install Bitwarden in Vagrant --- Vagrantfile | 4 ++++ roles/bitwarden/tasks/main.yml | 31 +++++++++++++++++++++++++ roles/bitwarden/templates/bw_wrapper.j2 | 30 ++++++++++++++++++++++++ roles/docker/tasks/main.yml | 2 ++ 4 files changed, 67 insertions(+) create mode 100644 roles/bitwarden/tasks/main.yml create mode 100644 roles/bitwarden/templates/bw_wrapper.j2 diff --git a/Vagrantfile b/Vagrantfile index dbb47ca..b103bfa 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -15,6 +15,10 @@ Vagrant.configure("2") do |config| libvirt.default_prefix = "" end + config.vm.provider "virtualbox" do |vbox| + vbox.memory = 2048 + end + # Provision with Ansible config.vm.provision "ansible" do |ansible| ansible.compatibility_mode = "2.0" diff --git a/roles/bitwarden/tasks/main.yml b/roles/bitwarden/tasks/main.yml new file mode 100644 index 0000000..3f9d839 --- /dev/null +++ b/roles/bitwarden/tasks/main.yml @@ -0,0 +1,31 @@ +- name: Install expect + apt: + name: expect + state: present + +- name: Create Bitwarden directory + file: + path: "/home/{{ docker_user }}/bitwarden/" + state: directory + owner: "{{ docker_user }}" + group: "{{ docker_user }}" + +- name: Download Bitwarden script + get_url: + url: "https://raw.githubusercontent.com/\ + bitwarden/server/master/scripts/bitwarden.sh" + dest: "/home/{{ docker_user }}/bitwarden/" + owner: "{{ docker_user }}" + group: "{{ docker_user }}" + mode: u+x + +- name: Install Bitwarden script wrapper + template: + src: bw_wrapper.j2 + dest: "/home/{{ docker_user }}/bitwarden/bw_wrapper" + owner: "{{ docker_user }}" + group: "{{ docker_user }}" + mode: u+x + +- name: Run Bitwarden script + shell: /home/{{ docker_user }}/bitwarden/bw_wrapper diff --git a/roles/bitwarden/templates/bw_wrapper.j2 b/roles/bitwarden/templates/bw_wrapper.j2 new file mode 100644 index 0000000..0ce23f2 --- /dev/null +++ b/roles/bitwarden/templates/bw_wrapper.j2 @@ -0,0 +1,30 @@ +#!/usr/bin/expect -d + +set timeout -1 + +spawn /home/{{ docker_user }}/bitwarden/bitwarden.sh install + +expect "Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com):" +send "{{ bitwarden_domain }}\r" + +expect "Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n):" +send "n\r" + +expect "Enter your installation id (get at https://bitwarden.com/host):" +send "{{ bitwarden_install_id }}\r" + +expect "Enter your installation key:" +send "{{ bitwarden_install_key }}\r" + +expect "Do you have a SSL certificate to use? (y/n):" +send "n\r" + +expect "Do you want to generate a self-signed SSL certificate? (y/n):" +send "y\r" + +expect "Next steps, run:\r\n`./bitwarden.sh start`" +expect eof + +spawn /home/{{ docker_user }}/bitwarden/bitwarden.sh start +expect "Bitwarden is up and running!" +expect eof diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index c79f83f..d5a93a7 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -45,6 +45,8 @@ user: name: "{{ docker_user }}" groups: docker + skeleton: /etc/skel + shell: /bin/bash append: yes - name: Install docker-compose