An ansible role for the drone CI deployment with Github integration and PostgreSQL database.
Available variables:
Name | Default | Description |
---|---|---|
drone_version |
1 |
Version of Drone CI, see other versions here |
drone_user_filter |
"" |
Comma-separated list of accounts. Registration is limited to users included in this list, or users that are members of organizations included in this list. |
drone_user_create |
"" |
List of users with admin access to the drone, readme more |
drone_runners |
[{name: "Nancy"}] |
Name of the docker agent container, you can add more than one agent |
drone_runner_capacity |
"2" |
Unsigned integer value configures the number of concurrent pipelines an agent can execute. Concurrency is disabled if this value is not set. |
drone_rpc_server |
"" |
The url, where drone instance will be publicly available. Typically you would have nginx in front of Drone CI. Example: https://ci.auxilin.com |
drone_rpc_secret |
hTirsXmrY4YsyK79ELgB |
Required string literal value provides the drone shared secret. This is used to authenticate the rpc connection to the server. The server and agent must be provided the same secret value, more info |
drone_server_host |
"" |
Required string literal value specifies the Drone server hostname. Example: ci.auxilin.com |
drone_server_proto |
http |
Required string literal value specifies the Drone server protocol. |
drone_tls_autocert |
"false" |
Automatically generates an SSL certificate using Lets Encrypt, and configures the server to accept HTTPS requests. |
drone_logs_debug |
"false" |
Enable debug-level logging. |
drone_logs_trace |
"false" |
Enable trace logs. |
drone_cookie_secret |
"" |
A secret key used to sign authentication cookies. This value is optional. If unset, a random value is generated each time the server is started. |
drone_cookie_timeout |
"72h" |
Duration value sets the authentication cookie expiration. |
drone_github_client_id |
"" |
Github oauth application client identifier, more info |
drone_github_secret |
"" |
Github oauth application client secret, more info |
drone_git_always_auth |
"false" |
Boolean value configures Drone to authenticate when cloning public repositories. This is only required when your source code management system (e.g. GitHub Enterprise) has private mode enabled. |
drone_github_server |
https://github.com |
String literal value provides the github server address. |
drone_postgres_version |
"11.3" |
Version of Postgres, see other versions here |
drone_database_secret |
"" |
Drone supports aesgcm encryption of secrets stored in the database. You must enable encryption before any secrets are stored in the database, read more |
drone_postgress_password |
droneRocks23@p |
A password to postgress db used by drone |
drone_postgress_user |
drone |
A username to postgress db used by drone, read more |
drone_postgress_db |
drone |
A name of to postgress db used by drone, read more |
drone_postgress_data_dir |
/drone-postgres-data |
A directory on a host machine, where postgresql data stored |
drone_isolated_network |
drone_isolated_network |
Docker network for postgres , drone server and drone agent containers. |
ansible_drone_deploy_agents |
true |
The boolean value indicates whether start deploy of the drone agents or not. |
ansible_drone_deploy_server |
true |
The boolean value indicates whether start deploy of the drone server or not. |
ansible_drone_deploy_postgresql |
true |
The boolean value indicates whether start deploy of the postgres database or not. |
Docker must be installed on the server in order to use this role. If you don't have docker on your server we recommend angstwad.docker_ubuntu Ansible role.
Example of using angstwad.docker_ubuntu
:
---
- name: Setup drone ci server
hosts: drone
become: true
roles:
- { role: angstwad.docker_ubuntu }
Example of the playbook file:
---
- name: Deploy drone CI server
hosts: drone
become_user: root
become: true
roles:
- role: auxilincom.drone
# Version of Drone CI, see other versions here: https://hub.docker.com/r/drone/drone/tags/
drone_version: 1
# List of users with admins or orgnizations, who has access to the instance:
# https://docs.drone.io/reference/server/drone-user-filter/
drone_user_filter: "auxilincom"
# use this to create first admin for the drone server
# read more: https://docs.drone.io/administration/user/admins/
drone_user_create: "ezhivitsa,anorsich"
# Name of the docker agent container, you can add more than one agent
drone_runners: [{name: "Nancy"}]
drone_runner_capacity: "2"
# Url to your instance with drone admin, e.x.: https://drone.org.com
drone_rpc_server: https://ci.auxilin.com
# Drone secret key, used for private communication between agent and web UI
# more info: https://docs.drone.io/reference/server/drone-rpc-secret/
drone_rpc_secret: hTirsXmrY4YsyK79ELgB
# the url, where drone instance will be publicly available
# typically you would have nginx in front of Drone CI
drone_server_host: "ci.auxilin.com"
drone_server_proto: "https"
drone_cookie_secret: "cookie-secret"
# Github oauth application client identifier
# more info https://docs.drone.io/installation/github/multi-machine
drone_github_client_id:
# Github oauth application client secret
# more info https://docs.drone.io/installation/github/multi-machine
drone_github_client_secret:
# Drone supports aesgcm encryption of secrets stored in the database.
# details https://docs.drone.io/administration/server/database/
drone_database_secret: "0c549fd39ae397333761d2cb0c53c219"
# A password to postgress db used by drone
drone_postgress_password: droneRocks23@p
# A username to postgress db used by drone, read more: https://docs.drone.io/install/server/storage/postgres/
drone_postgress_user: drone
# A name of to postgress db used by drone, read more: https://docs.drone.io/install/server/storage/postgres/
drone_postgress_db: drone
# a directory on a host machine, where postgresql data stored
drone_postgress_data_dir: /drone-postgres-data
This project adheres to Semantic Versioning. Every release is documented on the Github Releases page.
Ansible-drone is released under the MIT License.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Thanks goes to these wonderful people (emoji key):
Andrew Orsich 📖 🤔 💻 📖 🤔 👀 |
Evgeny Zhivitsa 📖 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!