Merge branch 'master' into firefly

This commit is contained in:
David Stephens 2019-05-26 10:13:00 +01:00 committed by GitHub
commit 4f3cf71783
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 58 additions and 14 deletions

View file

@ -1,9 +1,10 @@
# Ansible NAS
[![Build Status](https://img.shields.io/travis/com/davestephens/ansible-nas.svg?logo=travis&style=flat-square)](https://travis-ci.com/davestephens/ansible-nas) [![Gitter chat](https://img.shields.io/gitter/room/ansible-nas/chat.svg?logo=gitter&style=flat-square)](https://gitter.im/Ansible-NAS/Chat) [![license](https://img.shields.io/github/license/DAVFoundation/api_doc.svg?style=flat-square)](https://github.com/davestephens/ansible-nas/blob/master/LICENSE)
[![Build Status](https://img.shields.io/travis/com/davestephens/ansible-nas.svg?logo=travis&style=flat-square)](https://travis-ci.com/davestephens/ansible-nas) [![Gitter chat](https://img.shields.io/gitter/room/ansible-nas/chat.svg?logo=gitter&style=flat-square)](https://gitter.im/Ansible-NAS/Chat) [![license](https://img.shields.io/github/license/DAVFoundation/api_doc.svg?style=flat-square)](https://github.com/davestephens/ansible-nas/blob/master/LICENSE) [![Beerpay](https://beerpay.io/davestephens/ansible-nas/badge.svg?style=flat-square)](https://beerpay.io/davestephens/ansible-nas)
After getting burned by broken FreeNAS updates one too many times, I figured I could do a much better job myself using
just a stock Ubuntu install, some clever Ansible config and a bunch of Docker containers.
After getting burned by broken FreeNAS updates one too many times, I figured I
could do a much better job myself using just a stock Ubuntu install, some clever
Ansible config and a bunch of Docker containers.
## What Ansible-NAS Can Set Up
@ -62,9 +63,13 @@ just a stock Ubuntu install, some clever Ansible config and a bunch of Docker co
## What This Could Do
Ansible-NAS can run anything that's in a Docker image, which is why Portainer is included. A NAS configuration is a pretty personal thing based on what you download, what media you view, how many photos you take...so it's difficult to please everyone.
Ansible-NAS can run anything that's in a Docker image, which is why Portainer is
included. A NAS configuration is a pretty personal thing based on what you
download, what media you view, how many photos you take...so it's difficult to
please everyone.
That said, if specific functionality you want isn't included and you think others could benefit, add it and raise a PR!
That said, if specific functionality you want isn't included and you think
others could benefit, add it and raise a PR!
## What This Doesn't Do
@ -74,7 +79,10 @@ gained by automating it. Check out the [docs](https://davestephens.github.io/ans
## Quick Start
:skull: Before running anything, check out the playbook and understand what it does. Run it against a VM and make sure you're happy. ***Do not*** blindly download code from the internet and trust that it's going to work as you expect. :skull:
:skull: Before running anything, check out the playbook and understand what it
does. Run it against a VM and make sure you're happy. ***Do not*** blindly
download code from the internet and trust that it's going to work as you expect.
:skull:
1. Enable the Ubuntu Universe repository: `sudo add-apt-repository universe`
2. Install Ansible: `sudo apt install ansible`
@ -89,7 +97,8 @@ gained by automating it. Check out the [docs](https://davestephens.github.io/ans
## Documentation
You can read the docs [here](https://davestephens.github.io/ansible-nas). PRs for more documentation always welcome!
You can read the docs [here](https://davestephens.github.io/ansible-nas). PRs
for more documentation always welcome!
## Migrating from FreeNAS
@ -104,8 +113,10 @@ Assuming that your Ubuntu system disk is separate from your storage (it should b
## Requirements
* Ansible NAS targets the latest Ubuntu LTS release, which is currently Ubuntu Server 18.04.2 LTS.
* You can run Ansible-NAS on whatever you like, read the docs for more info. I use an HP Microserver.
* Ansible NAS targets the latest Ubuntu LTS release, which is currently Ubuntu
Server 18.04.2 LTS.
* You can run Ansible-NAS on whatever you like, read the docs for more info. I
use an HP Microserver.
## Getting Help

21
docs/hardware.md Normal file
View file

@ -0,0 +1,21 @@
# Hardware
Ansible-NAS will run against any x64 Ubuntu box (i.e. not a Raspberry Pi or other ARM hardware), or even a VM if you're just testing things out. The hardware you pick for Ansible-NAS depends largely on what you intend to do with your server - and is very much a "how long is a piece of string" type question.
The [homeserver Reddit](https://www.reddit.com/r/HomeServer/) has lots of good information. [ServerBuilds.net](https://www.serverbuilds.net/) is also kept up to date with cheap and decent quality builds known as "NAS Killers".
## Questions To Think About
1. What will be taxing the CPU(s) on your Ansible-NAS box? Are you intending to transcode video? How many users will be hitting it?
2. How many applications do you intend to run in parallel? How much memory do these applications require?
3. Are you going to run the [ZFS](zfs/zfs_overview/) file system? (you should!)
4. What are you intending to store on your Ansible-NAS? Is it data you can download again, or is it important to you that you don't lose it? Do you need mirrored disks?
## HP Microserver
Ansible-NAS development is tested against an HP Microserver N54L, with 16GB of memory, a 60gb SSD for the OS and 4x2TB WD Red NAS drives for storage. It works great :-)
This is obviously not the only solution but a reasonable one if you just want a single box to buy, and many different models are available on eBay for varying costs.

View file

@ -28,4 +28,4 @@ you're done, check out the [post-installation](post_installation.md) steps.
If this is all very confusing, there is also an [overview](overview.md) of the
project and what is required for complete beginners. If you're only confused
abot ZFS, we'll help you [get started](zfs_overview.md) as well.
abot ZFS, we'll help you [get started](zfs/zfs_overview.md) as well.

View file

@ -1,3 +1,5 @@
# ZFS Configuration
This text deals with specific ZFS configuration questions for Ansible-NAS. If
you are new to ZFS and are looking for the big picture, please read the [ZFS
overview](zfs_overview.md) introduction first.

View file

@ -1,3 +1,5 @@
# ZFS Overview
This is a general overview of the ZFS file system for people who are new to it.
If you have some experience and are actually looking for specific information
about how to configure ZFS for Ansible-NAS, check out the [ZFS example

View file

@ -290,20 +290,28 @@ transmission_local_network: "192.168.1.0/24"
###
### Plex
###
# If you're paranoid, set permissions to "ro" so Plex won't ever be able to
# delete your files
plex_available_externally: "false"
plex_config_directory: "{{ docker_home }}/plex/config"
plex_movies_directory: "{{ movies_root }}"
plex_movies_permissions: "rw"
plex_tv_directory: "{{ tv_root }}"
plex_tv_permissions: "rw"
plex_user_id: 0
plex_group_id: 0
###
### Emby
###
# If you're paranoid, set permissions to "ro" so Emby won't ever be able to
# delete your files
emby_available_externally: "false"
emby_config_directory: "{{ docker_home }}/emby/config"
emby_movies_directory: "{{ movies_root }}"
emby_movies_permissions: "rw"
emby_tv_directory: "{{ tv_root }}"
emby_tv_permissions: "rw"
emby_user_id: 0
emby_group_id: 0

View file

@ -12,8 +12,8 @@
pull: true
volumes:
- "{{ emby_config_directory }}:/config:rw"
- "{{ emby_movies_directory }}:/movies:rw"
- "{{ emby_tv_directory }}:/tv:rw"
- "{{ emby_movies_directory }}:/movies:{{ emby_movies_permissions }}"
- "{{ emby_tv_directory }}:/tv:{{ emby_tv_permissions }}"
ports:
- "8096:8096" # HTTP port
- "8920:8920" # HTTPS port

View file

@ -13,8 +13,8 @@
pull: true
volumes:
- "{{ plex_config_directory }}:/config:rw"
- "{{ plex_movies_directory }}:/movies:rw"
- "{{ plex_tv_directory }}:/tv:rw"
- "{{ plex_movies_directory }}:/movies:{{ plex_movies_permissions }}"
- "{{ plex_tv_directory }}:/tv:{{ plex_tv_permissions }}"
network_mode: "host"
env:
TZ: "{{ ansible_nas_timezone }}"