From 7d8e261f6d2ffd7ecca838df46c918714acc7624 Mon Sep 17 00:00:00 2001 From: Paul-Henri Froidmont Date: Fri, 8 Dec 2017 01:45:42 +0100 Subject: [PATCH] Split into roles and add parameters --- .gitignore | 1 + README.md | 16 ++++++++ Vagrantfile | 6 +-- playbook.yml | 40 +++---------------- production | 1 + roles/base-docker/README.md | 12 ++++++ roles/base-docker/defaults/main.yml | 3 ++ roles/base-docker/meta/main.yml | 2 + roles/base-docker/tasks/main.yml | 13 ++++++ roles/base/README.md | 3 ++ .../base/files}/ansible_prerequisites.sh | 0 roles/base/tasks/main.yml | 14 +++++++ roles/murmur-docker/README.md | 7 ++++ .../murmur-docker/files}/murmur/.env | 0 .../files}/murmur/docker-compose.yml | 0 .../murmur-docker/files}/murmur/murmur.ini | 0 roles/murmur-docker/meta/main.yml | 2 + roles/murmur-docker/tasks/main.yml | 9 +++++ staging | 1 + 19 files changed, 93 insertions(+), 37 deletions(-) create mode 100644 README.md create mode 100644 production create mode 100644 roles/base-docker/README.md create mode 100644 roles/base-docker/defaults/main.yml create mode 100644 roles/base-docker/meta/main.yml create mode 100644 roles/base-docker/tasks/main.yml create mode 100644 roles/base/README.md rename {files => roles/base/files}/ansible_prerequisites.sh (100%) create mode 100644 roles/base/tasks/main.yml create mode 100644 roles/murmur-docker/README.md rename {files => roles/murmur-docker/files}/murmur/.env (100%) rename {files => roles/murmur-docker/files}/murmur/docker-compose.yml (100%) rename {files => roles/murmur-docker/files}/murmur/murmur.ini (100%) create mode 100644 roles/murmur-docker/meta/main.yml create mode 100644 roles/murmur-docker/tasks/main.yml create mode 100644 staging diff --git a/.gitignore b/.gitignore index c713642..461f3cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea .vagrant +playbook.retry diff --git a/README.md b/README.md new file mode 100644 index 0000000..79a3404 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +How-tos +======= +Some tips on how to use this repo. + +Mount last backup +----------------- +```bash +borg mount --info --foreground $REPO_FOLDER $MOUNT_POINT --last 1 +``` + +Create a full installation of the services inside a VM +------------------------------------------------------ +```bash +vagrant up #if your VM already exist it's best to do a vagrant destroy first +ansible-playbook -i staging playbook.yml -e 'backup_folder=$REPO_FOLDER' +``` \ No newline at end of file diff --git a/Vagrantfile b/Vagrantfile index 9aa5d3b..18ae52f 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -71,7 +71,7 @@ Vagrant.configure("2") do |config| config.vm.provider "virtualbox" do |vb| vb.memory = "4096" end - config.vm.provision "ansible" do |ansible| - ansible.playbook = "playbook.yml" - end + # config.vm.provision "ansible" do |ansible| + # ansible.playbook = "playbook.yml" + # end end diff --git a/playbook.yml b/playbook.yml index 9a0e78b..8d3bfb5 100644 --- a/playbook.yml +++ b/playbook.yml @@ -2,37 +2,9 @@ - hosts: all become: true gather_facts: no - tasks: - - name: Install ansible prerequisites - script: ansible_prerequisites.sh creates=/root/.ansible_prerequisites_installed - become: true - - name: Install required packages - package: name={{item}} state=present update_cache=yes - with_items: - - htop - - docker - - docker-compose - - git - - nload - - rsync - - ufw - - vim - - wget - - zsh - - name: Enable and start docker service - systemd: - name: docker.service - state: started - enabled: True - - name: Create images config folder - file: dest=/etc/images state=directory - - name: Copy murmur config - copy: src=murmur dest=/etc/images - - name: Create murmur data folder - file: dest=/var/lib/murmur state=directory - - name: Copy murmur database - copy: src=/mnt/borg/banditlair.com-2017-12-04/backups/murmur/murmur.sqlite dest=/var/lib/murmur/ - - name: Start murmur docker project - docker_service: - project_src: /etc/images/murmur - state: present \ No newline at end of file + vars: + docker_compose_files_folder: /etc/compose + roles: + - role: base + - role: base-docker + - role: murmur-docker \ No newline at end of file diff --git a/production b/production new file mode 100644 index 0000000..1ea251c --- /dev/null +++ b/production @@ -0,0 +1 @@ +62.210.202.162 \ No newline at end of file diff --git a/roles/base-docker/README.md b/roles/base-docker/README.md new file mode 100644 index 0000000..0b90591 --- /dev/null +++ b/roles/base-docker/README.md @@ -0,0 +1,12 @@ +base-docker +=========== +Installs and configures docker + +Role Variables +-------------- +`docker_compose_files_folder` The path where all the compose projects folders will be stored +`docker_compose_persistence_folder` The path where all persistent data will be stored, defaults to `/var/lib` + +Dependencies +------------ +- base diff --git a/roles/base-docker/defaults/main.yml b/roles/base-docker/defaults/main.yml new file mode 100644 index 0000000..ce35673 --- /dev/null +++ b/roles/base-docker/defaults/main.yml @@ -0,0 +1,3 @@ +--- +docker_compose_files_folder: /etc/compose +docker_compose_persistence_folder: /var/lib \ No newline at end of file diff --git a/roles/base-docker/meta/main.yml b/roles/base-docker/meta/main.yml new file mode 100644 index 0000000..5a184e0 --- /dev/null +++ b/roles/base-docker/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - base \ No newline at end of file diff --git a/roles/base-docker/tasks/main.yml b/roles/base-docker/tasks/main.yml new file mode 100644 index 0000000..9fd10aa --- /dev/null +++ b/roles/base-docker/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Install docker packages + package: name={{item}} state=present update_cache=yes + with_items: + - docker + - docker-compose +- name: Enable and start docker service + systemd: + name: docker.service + state: started + enabled: True +- name: Create images config folder + file: dest={{docker_compose_files_folder}} state=directory \ No newline at end of file diff --git a/roles/base/README.md b/roles/base/README.md new file mode 100644 index 0000000..05f4c53 --- /dev/null +++ b/roles/base/README.md @@ -0,0 +1,3 @@ +base +==== +Installs Ansible prerequisites if needed and than installs basic utility packages diff --git a/files/ansible_prerequisites.sh b/roles/base/files/ansible_prerequisites.sh similarity index 100% rename from files/ansible_prerequisites.sh rename to roles/base/files/ansible_prerequisites.sh diff --git a/roles/base/tasks/main.yml b/roles/base/tasks/main.yml new file mode 100644 index 0000000..af604ee --- /dev/null +++ b/roles/base/tasks/main.yml @@ -0,0 +1,14 @@ +--- +- name: Install ansible prerequisites + script: ansible_prerequisites.sh creates=/root/.ansible_prerequisites_installed +- name: Install base packages + package: name={{item}} state=present update_cache=yes + with_items: + - htop + - git + - nload + - rsync + - ufw + - vim + - wget + - zsh \ No newline at end of file diff --git a/roles/murmur-docker/README.md b/roles/murmur-docker/README.md new file mode 100644 index 0000000..36ab45d --- /dev/null +++ b/roles/murmur-docker/README.md @@ -0,0 +1,7 @@ +murmur-docker +============= +Installs murmur + +Dependencies +------------ +- base-docker diff --git a/files/murmur/.env b/roles/murmur-docker/files/murmur/.env similarity index 100% rename from files/murmur/.env rename to roles/murmur-docker/files/murmur/.env diff --git a/files/murmur/docker-compose.yml b/roles/murmur-docker/files/murmur/docker-compose.yml similarity index 100% rename from files/murmur/docker-compose.yml rename to roles/murmur-docker/files/murmur/docker-compose.yml diff --git a/files/murmur/murmur.ini b/roles/murmur-docker/files/murmur/murmur.ini similarity index 100% rename from files/murmur/murmur.ini rename to roles/murmur-docker/files/murmur/murmur.ini diff --git a/roles/murmur-docker/meta/main.yml b/roles/murmur-docker/meta/main.yml new file mode 100644 index 0000000..e075e71 --- /dev/null +++ b/roles/murmur-docker/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - base-docker \ No newline at end of file diff --git a/roles/murmur-docker/tasks/main.yml b/roles/murmur-docker/tasks/main.yml new file mode 100644 index 0000000..0316664 --- /dev/null +++ b/roles/murmur-docker/tasks/main.yml @@ -0,0 +1,9 @@ +--- +- name: Copy murmur config + copy: src=murmur dest={{docker_compose_files_folder}} +- name: Create murmur data folder + file: dest={{docker_compose_persistence_folder}}/murmur state=directory +- name: Copy murmur database + copy: src={{backup_folder}}/backups/murmur/murmur.sqlite dest=/var/lib/murmur/ +- name: Start murmur docker project + docker_service: project_src={{docker_compose_files_folder}}/murmur state=present \ No newline at end of file diff --git a/staging b/staging new file mode 100644 index 0000000..c76b223 --- /dev/null +++ b/staging @@ -0,0 +1 @@ +192.168.33.10 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key \ No newline at end of file