mirror of
https://github.com/phfroidmont/self-hosting.git
synced 2025-12-25 05:36:59 +01:00
Split into roles and add parameters
This commit is contained in:
parent
13b5d45998
commit
7d8e261f6d
19 changed files with 93 additions and 37 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
||||||
.idea
|
.idea
|
||||||
.vagrant
|
.vagrant
|
||||||
|
playbook.retry
|
||||||
|
|
|
||||||
16
README.md
Normal file
16
README.md
Normal file
|
|
@ -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'
|
||||||
|
```
|
||||||
6
Vagrantfile
vendored
6
Vagrantfile
vendored
|
|
@ -71,7 +71,7 @@ Vagrant.configure("2") do |config|
|
||||||
config.vm.provider "virtualbox" do |vb|
|
config.vm.provider "virtualbox" do |vb|
|
||||||
vb.memory = "4096"
|
vb.memory = "4096"
|
||||||
end
|
end
|
||||||
config.vm.provision "ansible" do |ansible|
|
# config.vm.provision "ansible" do |ansible|
|
||||||
ansible.playbook = "playbook.yml"
|
# ansible.playbook = "playbook.yml"
|
||||||
end
|
# end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
40
playbook.yml
40
playbook.yml
|
|
@ -2,37 +2,9 @@
|
||||||
- hosts: all
|
- hosts: all
|
||||||
become: true
|
become: true
|
||||||
gather_facts: no
|
gather_facts: no
|
||||||
tasks:
|
vars:
|
||||||
- name: Install ansible prerequisites
|
docker_compose_files_folder: /etc/compose
|
||||||
script: ansible_prerequisites.sh creates=/root/.ansible_prerequisites_installed
|
roles:
|
||||||
become: true
|
- role: base
|
||||||
- name: Install required packages
|
- role: base-docker
|
||||||
package: name={{item}} state=present update_cache=yes
|
- role: murmur-docker
|
||||||
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
|
|
||||||
1
production
Normal file
1
production
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
62.210.202.162
|
||||||
12
roles/base-docker/README.md
Normal file
12
roles/base-docker/README.md
Normal file
|
|
@ -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
|
||||||
3
roles/base-docker/defaults/main.yml
Normal file
3
roles/base-docker/defaults/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
docker_compose_files_folder: /etc/compose
|
||||||
|
docker_compose_persistence_folder: /var/lib
|
||||||
2
roles/base-docker/meta/main.yml
Normal file
2
roles/base-docker/meta/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- base
|
||||||
13
roles/base-docker/tasks/main.yml
Normal file
13
roles/base-docker/tasks/main.yml
Normal file
|
|
@ -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
|
||||||
3
roles/base/README.md
Normal file
3
roles/base/README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
base
|
||||||
|
====
|
||||||
|
Installs Ansible prerequisites if needed and than installs basic utility packages
|
||||||
14
roles/base/tasks/main.yml
Normal file
14
roles/base/tasks/main.yml
Normal file
|
|
@ -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
|
||||||
7
roles/murmur-docker/README.md
Normal file
7
roles/murmur-docker/README.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
murmur-docker
|
||||||
|
=============
|
||||||
|
Installs murmur
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
------------
|
||||||
|
- base-docker
|
||||||
2
roles/murmur-docker/meta/main.yml
Normal file
2
roles/murmur-docker/meta/main.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- base-docker
|
||||||
9
roles/murmur-docker/tasks/main.yml
Normal file
9
roles/murmur-docker/tasks/main.yml
Normal file
|
|
@ -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
|
||||||
1
staging
Normal file
1
staging
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
192.168.33.10 ansible_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key
|
||||||
Loading…
Add table
Add a link
Reference in a new issue