January 30, 201412 yr 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
January 31, 201412 yr 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.
January 31, 201412 yr 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.
January 31, 201412 yr 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.
January 31, 201412 yr 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.
January 31, 201412 yr Author And for the double-post, I'll need to figure out how to inline automatic mounting of the host platform's NFS exports.
January 31, 201412 yr 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.
January 31, 201412 yr 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.
January 31, 201412 yr 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.
January 31, 201412 yr 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.