
This adds a dockerfile to build an opendevorg/refstack image as well as the jobs to build and publish it. Change-Id: Icade6c713fa9bf6ab508fd4d8d65debada2ddb30
122 lines
2.5 KiB
YAML
122 lines
2.5 KiB
YAML
- name: Ensure docker-compose directory exists
|
|
file:
|
|
state: directory
|
|
path: /etc/refstack-docker
|
|
mode: 0700
|
|
|
|
- name: Write docker-compose file
|
|
template:
|
|
src: docker-compose.yaml.j2
|
|
dest: /etc/refstack-docker/docker-compose.yaml
|
|
mode: 0600
|
|
|
|
- name: Install apache2
|
|
apt:
|
|
name:
|
|
- apache2
|
|
- apache2-utils
|
|
state: present
|
|
|
|
- name: Apache modules
|
|
apache2_module:
|
|
state: present
|
|
name: "{{ item }}"
|
|
loop:
|
|
- rewrite
|
|
- proxy
|
|
- proxy_http
|
|
- ssl
|
|
- headers
|
|
- proxy_wstunnel
|
|
|
|
- name: Copy apache config
|
|
template:
|
|
src: refstack.vhost.j2
|
|
dest: /etc/apache2/sites-enabled/000-default.conf
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
notify: refstack Reload apache2
|
|
|
|
- name: Create refstack data storage area
|
|
file:
|
|
state: directory
|
|
path: /var/lib/refstack/data
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
|
|
- name: Create refstack www storage area
|
|
file:
|
|
state: directory
|
|
path: /var/lib/refstack/www
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
|
|
- name: Copy hound robots.txt
|
|
copy:
|
|
src: robots.txt
|
|
dest: /var/lib/refstack/www/robots.txt
|
|
|
|
- name: Ensure refstack volume directory exists
|
|
file:
|
|
state: directory
|
|
path: "/var/refstack"
|
|
|
|
- name: Write refstack.conf
|
|
template:
|
|
src: refstack.conf.j2
|
|
dest: /var/refstack/refstack.conf
|
|
|
|
- name: Write config.json
|
|
template:
|
|
src: config.json.j2
|
|
dest: /var/refstack/config.json
|
|
|
|
- name: Install distro packages
|
|
package:
|
|
name:
|
|
- docker-compose
|
|
state: present
|
|
|
|
- name: Run docker-compose pull
|
|
shell:
|
|
cmd: docker-compose pull
|
|
chdir: /etc/refstack-docker/
|
|
|
|
- name: Run docker-compose up
|
|
shell:
|
|
cmd: docker-compose up -d --timeout 60
|
|
chdir: /etc/refstack-docker/
|
|
|
|
- name: Run docker prune to cleanup unneeded images
|
|
shell:
|
|
cmd: docker image prune -f
|
|
|
|
- name: Create db backup dest
|
|
file:
|
|
state: directory
|
|
path: /var/backups/refstack-mariadb
|
|
mode: 0700
|
|
owner: root
|
|
group: root
|
|
|
|
- name: Set up cron job to backup the database
|
|
cron:
|
|
name: refstack-db-backup
|
|
state: present
|
|
user: root
|
|
job: >
|
|
/usr/bin/docker-compose -f /etc/refstack-docker/docker-compose.yaml exec -T mariadb
|
|
bash -c '/usr/bin/mysqldump --opt --databases refstack --single-transaction -uroot -p"$MYSQL_ROOT_PASSWORD"' |
|
|
gzip -9 > /var/backups/refstack-mariadb/refstack-mariadb.sql.gz
|
|
minute: "42"
|
|
hour: "4"
|
|
|
|
- name: Rotate db backups
|
|
include_role:
|
|
name: logrotate
|
|
vars:
|
|
logrotate_file_name: /var/backups/refstack-mariadb/refstack-mariadb.sql.gz
|