Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

bmfrosty's Fedora 20 XEN VM Builder Blog

Featured Replies

Hi All!

 

I've decided that I want to set up a pre-rolled VM for Fedora 20 with a bunch of apps - Transmission, Sabnzbd+, Sickbeard, Couchpotato, and FlexGet to start with.

 

I may eventually release this as a standalone image, but I know that there's going to be some things that should be user configured, and I'd rather not have to have a user shell into a VM to set them, and I also want said user to be able to understand what's going on, and what's being installed, and to be able to audit them themselves so that they understand what's going on.

 

So Hence, I'm going to write a small script that gathers a bit of information from a user, generates some config files, and launches an anaconda/kickstart through xen.

 

Since I'm not running 6.0 yet (maybe this weekend), I'm starting on real hardware, and have been iterating my kickstart file and script.

 

I'm including what I have so far here, and will update as I get further along.

 

label linux
  kernel fedora20install/vmlinuz
  default linux
  append initrd=fedora20install/initrd.img console=tty0 console=ttyS0,115200 ks.device=link ip=dhcp ks=http://x.x.x.x/fedora20.cfg

 

# System authorization information
auth  --useshadow  --enablemd5
# System bootloader configuration
bootloader --location=mbr --driveorder=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# Run the Setup Agent on first boot
firstboot --disable
# Use interactive kickstart installation method
#interactive
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use network installation
url --url=http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/releases/20/Fedora/x86_64/os
repo --name="Everything" --baseurl=http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/releases/20/Everything/x86_64/os

# Network information
network --bootproto=dhcp --onboot=on
#Root password
rootpw password

# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone --isUtc America/Los_Angeles
# Install OS instead of upgrade
install
# Disk partitioning - now with raid

part swap --fstype="swap" --recommended
part /boot --size=500 --fstype="ext3"
part / --fstype="ext3" --size=1 --grow

%packages
net-tools
openssh-server
rsync
wget
openssh-clients
vim-enhanced
transmission-daemon
lsof
%end

%post --interpreter=/bin/bash
exec < /dev/tty3 > /dev/ttyS0
chvt 3
(

# Disable Network Manager
sed -i 's/^NM_CONTROLLED="yes"$/NM_CONTROLLED="no"/g' /etc/sysconfig/network-scripts/ifcfg-*

sed -i 's/"rpc-whitelist-enabled": true,/"rpc-whitelist-enabled": false,/g' /var/lib/transmission/.config/transmission-daemon/settings.json

systemctl enable transmission-daemon

echo 'net.ipv4.tcp_tw_reuse = 1' >> /etc/sysctl.conf

) 2>&1 | /usr/bin/tee /var/log/post_install.log
chvt 1
%end

  • Author

Discovered that Transmission's settings.json doesn't exist until transmission has been started and stopped, and the configuration gets written to disk upon stop, so my initial bootscript now includes a:

 

systemctl start transmission-daemon

systemctl stop transmission-daemon

 

before we try and change the whitelist with sed.

Can I just say that as soon a a this is working I can move the bills of my unRAID to 64bit.  Thanks. The only request would be to add Headphones to the suite of apps. It would be a complete nzb-er image then.

  • Author

This is a learning project for me, and I intend to always keep it open and easy to modify.  I'm aiming for an initial set of installed tools, and then I'll add more as I feel the need.

 

Once I figure out some early items, headphones should be easy to add.

 

Right now I'm dealing with stupid defaults in transmission-daemon that would make sense for the GUI version, but not here, and are unfortunately going to have to be fixed after install, and during first boot because of the way that transmission stores them - as far as I can tell, it stores them in it's binary and writes them to file after it's been started and stopped for the first time.  So broken.

 

I think I may skip ahead to working out how to install sab, couchpotato, and sickbeard under a secondary user from the post install scripts.

 

  • Author

Getting further.  Package list so far:

 

%packages
net-tools
openssh-server
rsync
wget
openssh-clients
vim-enhanced
transmission-daemon
lsof
git
python-devel
python-cheetah
par2cmdline
unzip
unrar
python-yenc
pyOpenSSL
openssl
tar
python-pip
%end

 

And Install Scripts:

 

# Install SABnzbd+
cd /home/unraid/
wget http://downloads.sourceforge.net/project/sabnzbdplus/sabnzbdplus/0.7.16/SABnzbd-0.7.16-src.tar.gz
tar xzvf SABnzbd-0.7.16-src.tar.gz
chown -R 1000:1000 SABnzbd-0.7.16
# Cleanup
rm -f SABnzbd-0.7.16-src.tar.gz

# Install CouchPotato
git clone https://github.com/RuudBurger/CouchPotatoServer.git
chown -R 1000:1000 CouchPotatoServer

# Install SickBeard
git clone https://github.com/midgetspy/Sick-Beard.git
chown -R 1000:1000 Sick-Beard

# Install Flexget
pip install flexget

 

I'll add headphones next, and then it's a matter of figuring out how to set up systemctl scripts for each one of these.  To make those easier, I might set up a tarball on S3 that anyone can grab and audit before installing.  I don't think that I want to inline creation of a bunch of scripts.

  • Author

And for the double-post, I'll need to figure out how to inline automatic mounting of the host platform's NFS exports.

  • Author

Opened a thread on the Plex Forums about a Repo.  I think some of the git stuff can be updated from within the app, and Transmission as well.

 

I think I can easily add deluge and probably an alternate NZB program or two.  I know people like them, and installation costs almost nothing.  It's the configuration time that's expensive.

 

I think I may also be able to make anaconda ask for a timezone, but we shall see.

 

Added a bunch of Python Items from the repos so that pip doesn't have to install so much for flexget.

 

Up to 330 packages installed by anaconda directly.  Some additional I'm sure by the time I'm done.

  • Author

Removed one problem package (pip manages it) and now have the installer asking for timezone.  Added headphones.  Looks like it works just like couchpotato and sickbeard.

  • Author

Ok.  I'm done until beta3 comes out *AND* I have a chance to do some work with it.  Here's my current kickstart in case I get hit by a bus:

 

# System authorization information
auth  --useshadow  --enablemd5
# System bootloader configuration
bootloader --location=mbr --driveorder=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# Run the Setup Agent on first boot
firstboot --disable
# Use interactive kickstart installation method
#interactive
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use network installation
url --url=http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/releases/20/Fedora/x86_64/os
repo --name="Everything" --baseurl=http://mirrors.usc.edu/pub/linux/distributions/fedora/linux/releases/20/Everything/x86_64/os
repo --name="Everything2" --baseurl=http://download1.rpmfusion.org/free/fedora/development/x86_64/os/
repo --name="Everything3" --baseurl=http://download1.rpmfusion.org/free/fedora/releases/20/Everything/x86_64/os/
repo --name="Everything4" --baseurl=http://download1.rpmfusion.org/free/fedora/updates/20/x86_64/
repo --name="Everything5" --baseurl=http://download1.rpmfusion.org/free/fedora/updates/testing/20/x86_64/
repo --name="Everything6" --baseurl=http://download1.rpmfusion.org/nonfree/fedora/development/x86_64/os/
repo --name="Everything7" --baseurl=http://download1.rpmfusion.org/nonfree/fedora/releases/20/Everything/x86_64/os/
repo --name="Everything8" --baseurl=http://download1.rpmfusion.org/nonfree/fedora/updates/20/x86_64/
repo --name="Everything9" --baseurl=http://download1.rpmfusion.org/nonfree/fedora/updates/testing/20/x86_64/

# Network information
network --bootproto=dhcp --onboot=on
#Root password
rootpw password
#Default User
user --name=unraid --password=unraid
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
#timezone --isUtc America/Los_Angeles
# Install OS instead of upgrade
install
# Disk partitioning - now with raid

part / --fstype="ext3" --size=2000

%packages
net-tools
openssh-server
rsync
wget
openssh-clients
vim-enhanced
transmission-daemon
lsof
git
python-devel
python-cheetah
par2cmdline
unzip
unrar
python-yenc
pyOpenSSL
openssl
tar
python-pip
gcc
PyYAML
python-feedparser
python-sqlalchemy
python-beautifulsoup4
python-html5lib
python-progressbar
python-rpyc
python-jinja2
python-requests
python-dateutil
python-jsonschema
python-tvrage
python-markupsafe
python-BeautifulSoup
%end

%post --interpreter=/bin/bash
(
# Disable Network Manager
sed -i 's/^NM_CONTROLLED="yes"$/NM_CONTROLLED="no"/g' /etc/sysconfig/network-scripts/ifcfg-*

# Add RPM Fusion Repos for after first boot.
#yum localinstall --nogpgcheck  http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-20.noarch.rpm
#yum localinstall --nogpgcheck  http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-20.noarch.rpm

#sed -i 's/"rpc-whitelist-enabled": true,/"rpc-whitelist-enabled": false,/g' /var/lib/transmission/.config/transmission-daemon/settings.json

# Install SABnzbd+
cd /home/unraid/
if (wget -q http://downloads.sourceforge.net/project/sabnzbdplus/sabnzbdplus/0.7.16/SABnzbd-0.7.16-src.tar.gz) ; then echo "Successfully Downloaded SABnzbd+" ; fi
if (tar xzf SABnzbd-0.7.16-src.tar.gz) ; then echo "Successfully Untarred SABnzbd+" ; fi
chown -R 1000:1000 SABnzbd-0.7.16
# Cleanup
rm -f SABnzbd-0.7.16-src.tar.gz

# Install CouchPotato
git clone https://github.com/RuudBurger/CouchPotatoServer.git
chown -R 1000:1000 CouchPotatoServer

# Install SickBeard
git clone https://github.com/midgetspy/Sick-Beard.git
chown -R 1000:1000 Sick-Beard

git clone https://github.com/rembo10/headphones.git
chown -R 1000:1000 headphones

# Install Flexget
pip install flexget

echo 'net.ipv4.tcp_tw_reuse = 1' >> /etc/sysctl.conf

) 2>&1 | /usr/bin/tee /var/log/post_install.log
%end

 

Was thinking about adding deluge, but the deluge-daemon package requires X, and that means that I skip it during normal installation.

  • Author

NZBget drops out of default install because of no binary distribution AND requires a compiler other than gcc that REQUIRES Wayland.

 

F'n weird.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.