108 lines
2.7 KiB
YAML
108 lines
2.7 KiB
YAML
---
|
|
- hosts: server
|
|
|
|
vars_files:
|
|
- secrets.yml
|
|
|
|
vars:
|
|
- debian_release: buster
|
|
- loki_dir: /srv/loki
|
|
|
|
tasks:
|
|
|
|
# -------------------------------------------------------------------------
|
|
# Docker CE.
|
|
# -------------------------------------------------------------------------
|
|
|
|
- name: Install packages to enable HTTPS repository
|
|
apt:
|
|
name:
|
|
- apt-transport-https
|
|
- ca-certificates
|
|
- curl
|
|
- gnupg2
|
|
- software-properties-common
|
|
|
|
- name: Add Docker GPG key
|
|
apt_key:
|
|
id: 0EBFCD88
|
|
url: https://download.docker.com/linux/debian/gpg
|
|
state: present
|
|
|
|
- name: Add Docker repository
|
|
apt_repository:
|
|
repo: deb [arch=amd64] https://download.docker.com/linux/debian "{{ debian_release }}" stable
|
|
state: present
|
|
register: docker_repo
|
|
|
|
- name: Update apt cache
|
|
apt:
|
|
update_cache: yes
|
|
force_apt_get: yes
|
|
when: docker_repo is changed
|
|
|
|
- name: Install docker-ce and docker-compose
|
|
apt:
|
|
name:
|
|
- docker-ce
|
|
- docker-compose
|
|
|
|
# -------------------------------------------------------------------------
|
|
# Loki server.
|
|
# -------------------------------------------------------------------------
|
|
|
|
- name: Install git
|
|
apt:
|
|
name: git
|
|
|
|
- name: Clone Loki repo
|
|
git:
|
|
repo: https://github.com/Wojtek242/loki.git
|
|
dest: "{{ loki_dir }}"
|
|
register: loki_git
|
|
|
|
- block:
|
|
- name: Install Loki service
|
|
command: cp "{{ loki_dir }}"/loki-server.service /lib/systemd/system/
|
|
|
|
- name: Update service file
|
|
lineinfile:
|
|
path: /lib/systemd/system/loki-server.service
|
|
regexp: '^WorkingDirectory='
|
|
line: 'WorkingDirectory={{ loki_dir }}'
|
|
|
|
- name: Reload systemd daemon
|
|
systemd:
|
|
daemon_reload: yes
|
|
|
|
- block:
|
|
- name: Update
|
|
command: ./update.sh
|
|
args:
|
|
chdir: "{{ loki_dir }}"
|
|
|
|
rescue:
|
|
- debug:
|
|
msg: "Failed to pull containers from registry - will build locally"
|
|
|
|
- name: Build locally
|
|
command: make build-all
|
|
args:
|
|
chdir: "{{ loki_dir }}"
|
|
|
|
when: loki_git is changed
|
|
|
|
# Hosts file must be added after the first update as otherwise the initial
|
|
# container pull will always fail
|
|
- name: Add hosts file
|
|
template:
|
|
src: ./etc/hosts.j2
|
|
dest: /etc/hosts
|
|
mode: 0644
|
|
|
|
- name: Ensure service is started
|
|
service:
|
|
name: loki-server
|
|
state: started
|
|
enabled: yes
|