Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sous-chefs/transmission

Development repository for the transmission cookbook
https://github.com/sous-chefs/transmission

chef chef-cookbook chef-resource hacktoberfest managed-by-terraform transmission

Last synced: about 1 month ago
JSON representation

Development repository for the transmission cookbook

Awesome Lists containing this project

README

        

# transmission Cookbook

[![Cookbook Version](https://img.shields.io/cookbook/v/transmission.svg)](https://supermarket.chef.io/cookbooks/transmission)
[![CI State](https://github.com/sous-chefs/transmission/workflows/ci/badge.svg)](https://github.com/sous-chefs/transmission/actions?query=workflow%3Aci)
[![OpenCollective](https://opencollective.com/sous-chefs/backers/badge.svg)](#backers)
[![OpenCollective](https://opencollective.com/sous-chefs/sponsors/badge.svg)](#sponsors)
[![License](https://img.shields.io/badge/License-Apache%202.0-green.svg)](https://opensource.org/licenses/Apache-2.0)

Installs the [Transmission BitTorrent Client](http://www.transmissionbt.com) and includes a `transmission_torrent_file` LWRP.

## Maintainers

This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit [sous-chefs.org](https://sous-chefs.org/) or come chat with us on the Chef Community Slack in [#sous-chefs](https://chefcommunity.slack.com/messages/C2V7B88SF).

## Requirements

### Platforms

- Debian/Ubuntu
- RHEL/CentOS/Scientific/Amazon/Oracle 7+
- Fedora

Note: Package installs are only available on Ubuntu/Debian. Source installs are possible on all platforms

### Chef

- Chef 14+

### Cookbooks

- build-essential - for compiling the source.
- openssl - for generating a secure password.

## Attributes

- `node["transmission"]["peer_port"]` - The port Transmission listens on for peering, default `51413`.
- `node["transmission"]["rpc_bind_address"]` - Where to listen for RPC connections, default `0.0.0.0`.
- `node["transmission"]["rpc_port"]` - The port Transmission listens on for remote services, default `9091`.
- `node["transmission"]["rpc_username"]` - The username required to access remote services, default `transmission`.
- `node["transmission"]["rpc_password"]` - The sha1 encrypted password, default generated by `secure_password`.
- `node["transmission"]["incomplete_dir_enabled"]` - Whether the incomplete file directory is used, default `false`.
- `node["transmission"]["speed_limit_down"]` - The KB/s limit for downloading files, default `100`.
- `node["transmission"]["speed_limit_down_enabled"]` - Whether the download limit is used, default `false`.
- `node["transmission"]["speed_limit_up"]` - The KB/s limit for uploading files, default `100`.
- `node["transmission"]["speed_limit_up_enabled"]` - Whether the upload limit is used, default `false`.
- `node["transmission"]["ratio_limit"]` - Ratio at which to seed the torrent, default `2.0000`.
- `node["transmission"]["ratio_limit_enabled"]` - Whether the ratio limit is used, default `false`.
- `node["transmission"]["watch_dir_enabled"]` - Whether the watch file directory is used, default `false`.

The file also contains the following attribute types:

- platform specific locations and settings.
- source installation settings

## Resource/Provider

### `transmission_torrent_file`

Download a file via the [BitTorrent protocol](http://en.wikipedia.org/wiki/BitTorrent). The usage semantics are like that of the existing [file](http://wiki.chef.io/display/chef/Resources#Resources-File) and [remote_file](http://wiki.chef.io/display/chef/Resources#Resources-RemoteFile) resources. This allows very fast downloads for files that are part of large BitTorrent swarms. The Ubuntu 10.04 LTS ISO (around 700MB) downloads in about 50 seconds.

#### Actions

- :create: Download a file via the BitTorrent protocol

#### Attribute Parameters

- path: name attribute. the path to the file
- torrent: torrent file of the swarm to join. can either be a url or local file path
- blocking: should the file be downloaded in a blocking way? If `true` Chef will download the file in a single Chef run, if `false` Chef will check for a completed download during each Chef run until the download is complete. default is `true`.
- continue_seeding: should the file continue to be seeded to the swarm after download? default is `false`.
- owner: The owner for the file
- group: The group owner of the file (string or id)
- rpc_host: the address of the Transmission RPC host to connect to. default is `localhost`.
- rpc_port: the port of the Transmission RPC host to connect to. default is `9091`.
- rpc_username: the username of the Transmission RPC account. default is `transmission`.
- rpc_password: the password of the Transmission RPC account . should probably be `node['transmission']['rpc_password']` which by default is a secure password generated for this node.

#### Examples

Download the lucid ISO

```ruby
transmission_torrent_file "/home/ubuntu/ubuntu.iso" do
torrent "http://releases.ubuntu.com/lucid/ubuntu-10.04.1-server-i386.iso.torrent"
owner 'ubuntu'
group 'ubuntu'
rpc_username node['transmission']['rpc_username']
rpc_password node['transmission']['rpc_password']
action :create
end
```

Continue seeding after download

```ruby
transmission_torrent_file "/home/ubuntu/ubuntu.iso" do
torrent "http://releases.ubuntu.com/lucid/ubuntu-10.04.1-server-i386.iso.torrent"
owner 'ubuntu'
group 'ubuntu'
continue_seeding true
rpc_username node['transmission']['rpc_username']
rpc_password node['transmission']['rpc_password']
action :create
end
```

## Usage

### default

Include default recipe in a run list, to get some Transmission installed. Installs Transmission by package or source depending on the platform.

### package

Installs Transmission from packages. This should only be loaded by the default recipe.

### source

Installs Transmission from source. This should only be loaded by the default recipe.

## Contributors

This project exists thanks to all the people who [contribute.](https://opencollective.com/sous-chefs/contributors.svg?width=890&button=false)

### Backers

Thank you to all our backers!

![https://opencollective.com/sous-chefs#backers](https://opencollective.com/sous-chefs/backers.svg?width=600&avatarHeight=40)

### Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

![https://opencollective.com/sous-chefs/sponsor/0/website](https://opencollective.com/sous-chefs/sponsor/0/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/1/website](https://opencollective.com/sous-chefs/sponsor/1/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/2/website](https://opencollective.com/sous-chefs/sponsor/2/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/3/website](https://opencollective.com/sous-chefs/sponsor/3/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/4/website](https://opencollective.com/sous-chefs/sponsor/4/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/5/website](https://opencollective.com/sous-chefs/sponsor/5/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/6/website](https://opencollective.com/sous-chefs/sponsor/6/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/7/website](https://opencollective.com/sous-chefs/sponsor/7/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/8/website](https://opencollective.com/sous-chefs/sponsor/8/avatar.svg?avatarHeight=100)
![https://opencollective.com/sous-chefs/sponsor/9/website](https://opencollective.com/sous-chefs/sponsor/9/avatar.svg?avatarHeight=100)