ansible_drone/tasks/drone-server.yml

87 lines
2.4 KiB
YAML

---
- name: verify that required database parameters
fail:
msg: "Variable '{{ item }}' is not defined for drone server setup"
when: item not in vars and drone_database_driver != "sqlite"
with_items:
- drone_database_datasource
tags:
- configuration
- name: verify that required server parameters
fail:
msg: "Variable '{{ item }}' is not defined for drone server setup"
when: item not in vars
with_items:
- drone_server_host
- drone_server_proto
- drone_rpc_secret
tags:
- configuration
- name: copy config for drone server
template:
src: "drone-server.env.j2"
dest: "/etc/drone/drone-server.env"
register: drone_server_config
tags:
- configuration
- name: Creates sqlite directory
file:
path: "{{ drone_sqlite_dir }}"
state: directory
mode: 0755
when: drone_database_driver == "sqlite"
register: drone_sqlite_folder
tags:
- drone-server
- name: run drone server with sqlite database
docker_container:
name: drone-server
image: "drone/drone:{{ drone_version }}"
state: started
restart_policy: always
ports:
- "{{ drone_host_port }}:80"
volumes:
- "{{ drone_sqlite_dir }}:/data"
env_file: /etc/drone/drone-server.env
labels:
traefik.enable: "true"
traefik.basic.frontend.rule: "Host:{{ drone_server_host }}"
traefik.basic.port: "80"
traefik.basic.protocol: "http"
when: ((drone_server_config is defined and drone_server_config.changed) or
(drone_sqlite_folder is defined and drone_sqlite_folder.changed)) and
drone_database_driver == "sqlite"
tags:
- drone-server
- skip_ansible_lint
- name: run drone server with postgres or mysql database
docker_container:
name: drone-server
image: "drone/drone:{{ drone_version }}"
state: started
restart_policy: always
ports:
- "{{ drone_host_port }}:80"
links:
- "{{ drone_database_driver }}"
volumes:
- "{{ drone_sqlite_dir }}:/data"
env_file: /etc/drone/drone-server.env
labels:
traefik.enable: "true"
traefik.basic.frontend.rule: "Host:{{ drone_server_host }}"
traefik.basic.port: "80"
traefik.basic.protocol: "http"
when: ((drone_server_config is defined and drone_server_config.changed) or
(drone_postgres_backup_dir_state is defined and drone_postgres_backup_dir_state.changed)) and
drone_database_driver != "sqlite"
tags:
- drone-server
- skip_ansible_lint