Skip to content

Commit

Permalink
Dockerize postgresql
Browse files Browse the repository at this point in the history
  • Loading branch information
Goran Mekić committed Oct 6, 2015
1 parent 09964d2 commit 2539a30
Show file tree
Hide file tree
Showing 9 changed files with 64 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
flarior.vm.box_url = "ftp://ftp.lugons.org/vagrant/debian-8.0-x86_64.box"
flarior.vm.network :private_network, ip: "192.168.7.10"
flarior.vm.hostname = "vagrant.flarior.com"
flarior.vm.provision :ansible, run: "always" do |ansible|
flarior.vm.provision :ansible do |ansible|
ansible.playbook = "provision/site.yml"
ansible.host_key_checking = false
ansible.groups = {
Expand Down
3 changes: 3 additions & 0 deletions provision/group_vars/all
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
flarior_postgresql_db: flarior
flarior_postgresql_user: flarior
flarior_postgresql_superuser: root
6 changes: 3 additions & 3 deletions provision/group_vars/vagrant
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

---
stage: vagrant
db_username: flarior
db_password: password
db_name: flarior
flask_environment: dev
docker_postgresql_extra_params: -p 5432:5432
flarior_postgresql_password: flarior
flarior_postgresql_superuser_password: flarior
1 change: 1 addition & 0 deletions provision/roles/common/pre_tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@
dest: /etc/apt/sources.list.d/jessie-backports.list
owner: root
group: root

9 changes: 0 additions & 9 deletions provision/roles/common/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,3 @@
apt:
pkg: "{{ item.name }}"
state: latest

- name: initialize taskwarrior
file:
path: ~/.taskrc
state: touch

- name: initialize taskwarrior
shell: task
ignore_errors: yes
4 changes: 2 additions & 2 deletions provision/roles/common/vars/main.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
common_packages:
- name: docker.io
- name: git
- name: taskwarrior
- name: wajig
- name: unzip
56 changes: 38 additions & 18 deletions provision/roles/postgresql/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,51 @@
---
- name: install postgresql
- name: install packages
sudo: yes
with_items: postgresql_packages
apt:
pkg: postgresql
pkg: "{{ item.name }}"
state: latest

- name: add postgresql service
sudo: yes
template:
src: postgresql.service.j2
dest: /lib/systemd/system/postgresql.service
owner: root
group: root
notify:
- restart postgresql

- name: install packages
- name: reload systemd
sudo: yes
with_items: postgresql_packages
apt:
pkg: "{{ item.name }}"
state: latest
command: systemctl daemon-reload

- name: create db
- name: start postgresql
sudo: yes
sudo_user: postgres
postgresql_db:
name: "{{ db_name }}"
encoding: 'UTF-8'
template: 'template0'
service:
name: postgresql
enabled: yes
state: restarted

- name: wait for postgresql
wait_for:
delay: 5
port: 5432

- name: create user
sudo: yes
sudo_user: postgres
postgresql_user:
name: "{{ db_username }}"
password: "{{ db_password }}"
db: "{{ db_name }}"
name: "{{ flarior_postgresql_user }}"
password: "{{ flarior_postgresql_password }}"
login_host: 127.0.0.1
login_user: "{{ flarior_postgresql_superuser }}"
login_password: "{{ flarior_postgresql_superuser_password }}"

- name: create db
postgresql_db:
name: "{{ flarior_postgresql_db }}"
encoding: UTF-8
template: template0
login_host: 127.0.0.1
login_user: "{{ flarior_postgresql_superuser }}"
login_password: "{{ flarior_postgresql_superuser_password }}"
owner: "{{ flarior_postgresql_user }}"
16 changes: 16 additions & 0 deletions provision/roles/postgresql/templates/postgresql.service.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[Unit]
Description=PostgreSQL
After=docker.service networking.service
Requires=docker.service networking.service
Wants=docker.service networking.service

[Service]
TimeoutStartSec=0
ExecStartPre=/usr/bin/docker pull postgres:latest
ExecStartPre=-/usr/bin/docker kill postgresql
ExecStartPre=-/usr/bin/docker rm postgresql
ExecStart=/usr/bin/docker run {{ docker_postgresql_extra_params }} -e POSTGRES_USER={{ flarior_postgresql_superuser }} -e POSTGRES_PASSWORD={{ flarior_postgresql_superuser_password }} -v /var/lib/docker/volumes/postgresql/data:/var/lib/postgresql/data --rm --name postgresql postgres:latest
ExecStop=/usr/bin/docker stop postgresql

[Install]
WantedBy=multi-user.target
4 changes: 0 additions & 4 deletions provision/site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,4 @@
roles:
- common
- postgresql

- name: Device Repair Provisioning
hosts: vagrant
roles:
- vagrant

0 comments on commit 2539a30

Please sign in to comment.