ansible_drone/tasks/drone-server.yml
Bo-Yi Wu e997d027d1 add traefik labels
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-07-26 12:41:54 +08:00

83 lines
2.3 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.docker.network=web"
- "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
when: ((drone_server_config is defined and drone_server_config.changed) or
(drone_postgres_data_dir is defined and drone_postgres_data_dir.changed)) and
drone_database_driver != "sqlite"
tags:
- drone-server
- skip_ansible_lint