cookbook 'drone', '= 0.6.0'
drone
(37) Versions
0.6.0
-
Follow7
Installs/Configures Drone
cookbook 'drone', '= 0.6.0', :supermarket
knife supermarket install drone
knife supermarket download drone
Drone cookbook
Installs Drone, a CI server built on Docker.
Requirements
Chef
- Chef 11+
Platforms
This cookbook is tested against:
- Ubuntu 12.04
- Ubuntu 13.10
- Ubuntu 14.04
...but it might work on other platforms.
Usage
Include recipe[drone]
in your run list.
Attributes
These attributes are under the node['drone']
namespace.
Attribute | Description | Type | Default |
---|---|---|---|
package_url | URL of the Drone package to download and install | String | http://downloads.drone.io/master/drone.deb |
temp_file | Path to store the downloaded package | String | /tmp/drone.deb |
config_file | Location of Drone config file | String | /etc/init/drone.conf |
config | Hash of configuration options | Hash | See Config section below |
Configuration
The configuration is defined as a hash, and converted to TOML format for drone's configuration.
The default configuration is minimal:
default['drone']['config'] = {
'server' => {
'port' => ':80',
},
'database' => {
'driver' => 'sqlite3',
'datasource' => '/var/lib/drone/drone.sqlite'
}
}
Note: It is recommended that you link at least one source control system to drone, to enable the capability to login.
The following example configuration enables Drone to authenticate off a Github Enterprise installation:
default['drone']['config'] = {
'server' => {
'port' => ':80',
},
'database' => {
'driver' => 'sqlite3',
'datasource' => '/var/lib/drone/drone.sqlite'
},
'github_enterprise' => {
'client' => 'YOURCLIENT',
'secret' => 'YOURSECRET',
'api' => 'http://github.mycompany.com/api/v3/',
'url' => 'http://github.mycompany.com',
'private_mode' => true,
'open' => true
}
}
There are many more configuration options that you can specify, and the complete config is shown below:
default['drone']['config'] = {
'server' => {
'port' => ':80',
'ssl' => {
'key' => '',
'cert' => ''
},
'assets' => {
'folder' => ''
},
'session' => {
'secret' => '',
'expires' => ''
}
},
'session' => {
'secret' => '',
'expires' => ''
},
'database' => {
'driver' => 'sqlite3',
'datasource' => '/var/lib/drone/drone.sqlite'
},
'github' => {
'client' => '',
'secret' => '',
'orgs' => [],
'open' => false
},
'github_enterprise' => {
'client' => '',
'secret' => '',
'api' => '',
'url' => '',
'private_mode' => false,
'open' => false
},
'bitbucket' => {
'client' => '',
'secret' => '',
'open' => false
},
'gitlab' => {
'url' => '',
'client' => '',
'secret' => '',
'skip_verify' => false,
'open' => false
},
'gogs' => {
'url' => '',
'secret' => '',
'open' => false
},
'smtp' => {
'host' => '',
'port' => '',
'from' => '',
'user' => '',
'pass' => ''
},
'docker' => {
'cert' => '',
'key' => ''
},
'worker' => {
'nodes' => [
'unix:///var/run/docker.sock'
]
}
}
Recipes
-
recipe[drone]
Installs/Configures Drone
Drone Cookbook Changelog
v0.6.0
- Docker can now be disabled (Graham Weldon)
- Fix
registration
option - moving to each VCS config (Graham Weldon) - Extend / improve README documentation
v0.5.0
- Configure Drone with TOML (Graham Weldon)
- Use new Drone package URL (Ke Zhu)
v0.4.0
- Add Apache 2.0 license
- Fix options being passed to droned (Ross Timson)
- Numerous development/test improvements (Ross Timson)
v0.3.1
- Settable drone_tmp (Eric Buth)
v0.2.0
- Add ability to specify custom drone options (Brint O'Hearn)
v0.1.0
- Initial Drone cookbook (Justin Campbell)