mirror of
https://github.com/davestephens/ansible-nas
synced 2025-01-13 03:58:47 +00:00
Merge branch 'master' into firefly
This commit is contained in:
commit
4f3cf71783
8 changed files with 58 additions and 14 deletions
29
README.md
29
README.md
|
@ -1,9 +1,10 @@
|
||||||
# Ansible NAS
|
# 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
|
After getting burned by broken FreeNAS updates one too many times, I figured I
|
||||||
just a stock Ubuntu install, some clever Ansible config and a bunch of Docker containers.
|
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
|
## 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
|
## 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
|
## What This Doesn't Do
|
||||||
|
|
||||||
|
@ -74,7 +79,10 @@ gained by automating it. Check out the [docs](https://davestephens.github.io/ans
|
||||||
|
|
||||||
## Quick Start
|
## 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`
|
1. Enable the Ubuntu Universe repository: `sudo add-apt-repository universe`
|
||||||
2. Install Ansible: `sudo apt install ansible`
|
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
|
## 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
|
## Migrating from FreeNAS
|
||||||
|
|
||||||
|
@ -104,8 +113,10 @@ Assuming that your Ubuntu system disk is separate from your storage (it should b
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* Ansible NAS targets the latest Ubuntu LTS release, which is currently Ubuntu Server 18.04.2 LTS.
|
* Ansible NAS targets the latest Ubuntu LTS release, which is currently Ubuntu
|
||||||
* You can run Ansible-NAS on whatever you like, read the docs for more info. I use an HP Microserver.
|
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
|
## Getting Help
|
||||||
|
|
||||||
|
|
21
docs/hardware.md
Normal file
21
docs/hardware.md
Normal 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.
|
|
@ -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
|
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
|
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.
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
# ZFS Configuration
|
||||||
|
|
||||||
This text deals with specific ZFS configuration questions for Ansible-NAS. If
|
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
|
you are new to ZFS and are looking for the big picture, please read the [ZFS
|
||||||
overview](zfs_overview.md) introduction first.
|
overview](zfs_overview.md) introduction first.
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
# ZFS Overview
|
||||||
|
|
||||||
This is a general overview of the ZFS file system for people who are new to it.
|
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
|
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
|
about how to configure ZFS for Ansible-NAS, check out the [ZFS example
|
||||||
|
|
|
@ -290,20 +290,28 @@ transmission_local_network: "192.168.1.0/24"
|
||||||
###
|
###
|
||||||
### Plex
|
### 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_available_externally: "false"
|
||||||
plex_config_directory: "{{ docker_home }}/plex/config"
|
plex_config_directory: "{{ docker_home }}/plex/config"
|
||||||
plex_movies_directory: "{{ movies_root }}"
|
plex_movies_directory: "{{ movies_root }}"
|
||||||
|
plex_movies_permissions: "rw"
|
||||||
plex_tv_directory: "{{ tv_root }}"
|
plex_tv_directory: "{{ tv_root }}"
|
||||||
|
plex_tv_permissions: "rw"
|
||||||
plex_user_id: 0
|
plex_user_id: 0
|
||||||
plex_group_id: 0
|
plex_group_id: 0
|
||||||
|
|
||||||
###
|
###
|
||||||
### Emby
|
### 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_available_externally: "false"
|
||||||
emby_config_directory: "{{ docker_home }}/emby/config"
|
emby_config_directory: "{{ docker_home }}/emby/config"
|
||||||
emby_movies_directory: "{{ movies_root }}"
|
emby_movies_directory: "{{ movies_root }}"
|
||||||
|
emby_movies_permissions: "rw"
|
||||||
emby_tv_directory: "{{ tv_root }}"
|
emby_tv_directory: "{{ tv_root }}"
|
||||||
|
emby_tv_permissions: "rw"
|
||||||
emby_user_id: 0
|
emby_user_id: 0
|
||||||
emby_group_id: 0
|
emby_group_id: 0
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
pull: true
|
pull: true
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ emby_config_directory }}:/config:rw"
|
- "{{ emby_config_directory }}:/config:rw"
|
||||||
- "{{ emby_movies_directory }}:/movies:rw"
|
- "{{ emby_movies_directory }}:/movies:{{ emby_movies_permissions }}"
|
||||||
- "{{ emby_tv_directory }}:/tv:rw"
|
- "{{ emby_tv_directory }}:/tv:{{ emby_tv_permissions }}"
|
||||||
ports:
|
ports:
|
||||||
- "8096:8096" # HTTP port
|
- "8096:8096" # HTTP port
|
||||||
- "8920:8920" # HTTPS port
|
- "8920:8920" # HTTPS port
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
pull: true
|
pull: true
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ plex_config_directory }}:/config:rw"
|
- "{{ plex_config_directory }}:/config:rw"
|
||||||
- "{{ plex_movies_directory }}:/movies:rw"
|
- "{{ plex_movies_directory }}:/movies:{{ plex_movies_permissions }}"
|
||||||
- "{{ plex_tv_directory }}:/tv:rw"
|
- "{{ plex_tv_directory }}:/tv:{{ plex_tv_permissions }}"
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
env:
|
env:
|
||||||
TZ: "{{ ansible_nas_timezone }}"
|
TZ: "{{ ansible_nas_timezone }}"
|
||||||
|
|
Loading…
Reference in a new issue