Created
September 2, 2015 17:31
-
-
Save luisbolson/1d0dc42976d2468171d0 to your computer and use it in GitHub Desktop.
Shell Script to install Cobbler 2.6 on Ubuntu Server 14.04
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Script to deploy a wrking cobbler installation in Ubuntu Server 14.10 | |
# Author: Luis Henrique Bolson <[email protected]> | |
# | |
# Based on http://springerpe.github.io/tech/2014/09/09/Installing-Cobbler-2.6.5-on-Ubuntu-14.04-LTS.html | |
# | |
# Please run as root (don't use sudo <script>) | |
# | |
# curl -s https://raw.githubusercontent.com/luisbolson/cobbler/master/cobbler_install-ubuntu_14.04.sh | bash -s 192.168.56.101 | |
# | |
# Add cobbler repository | |
wget -qO - http://download.opensuse.org/repositories/home:/libertas-ict:/cobbler26/xUbuntu_14.04/Release.key | apt-key add - | |
add-apt-repository "deb http://download.opensuse.org/repositories/home:/libertas-ict:/cobbler26/xUbuntu_14.04/ ./" | |
# Update APT repo and install required packages | |
apt-get update | |
apt-get install -y cobbler debmirror isc-dhcp-server ipcalc tftpd | |
# Get network information for the given IP | |
IP_ADDR=$1 | |
NETMASK=$(ifconfig | grep $IP_ADDR | cut -d ':' -f 4) | |
NETDEVICE=$(ifconfig | grep -B1 $IP_ADDR | head -1 | awk '{print $1}') | |
NETWORK=$(ipcalc ${IP_ADDR}/${NETMASK} | grep Network | cut -d '/' -f 1 | awk '{print $2}') | |
NETMASK_HALF=$(expr $(ipcalc ${IP_ADDR}/${NETMASK} | grep Network | cut -d '/' -f 2 | awk '{print $1}') + 1) | |
DHCP_MIN_HOST=$(ipcalc ${IP_ADDR}/${NETMASK_HALF} | grep Broadcast | awk '{print $2}') | |
DHCP_MAX_HOST=$(ipcalc ${IP_ADDR}/${NETMASK} | grep HostMax | awk '{print $2}') | |
# Move Cobbler Apache config to the right place | |
cp /etc/apache2/conf.d/cobbler.conf /etc/apache2/conf-available/ | |
cp /etc/apache2/conf.d/cobbler_web.conf /etc/apache2/conf-available/ | |
# Enable the above config | |
a2enconf cobbler cobbler_web | |
# Enable Proxy modules | |
a2enmod proxy | |
a2enmod proxy_http | |
# Generate a new django secret key | |
SECRET_KEY=$(python -c 'import re;from random import choice; import sys; sys.stdout.write(re.escape("".join([choice("abcdefghijklmnopqrstuvwxyz0123456789^&*(-_=+)") for i in range(100)])))') | |
sed -i "s/^SECRET_KEY = .*/SECRET_KEY = '${SECRET_KEY}'/" /usr/share/cobbler/web/settings.py | |
# Change IP and manage_dhcp in cobbler settings | |
sed -i "s/127\.0\.0\.1/${IP_ADDR}/" /etc/cobbler/settings | |
sed -i "s/manage_dhcp: .*/manage_dhcp: 1/" /etc/cobbler/settings | |
# Change DHCP server template to match the given network configuration | |
sed -i "s/subnet .* netmask .* {/subnet $NETWORK netmask $NETMASK {/" /etc/cobbler/dhcp.template | |
sed -i "/option routers 192.168.1.5;/d" /etc/cobbler/dhcp.template | |
sed -i "/option domain-name-servers 192.168.1.1;/d" /etc/cobbler/dhcp.template | |
sed -i "s/range dynamic-bootp .*/range dynamic-bootp ${DHCP_MIN_HOST} ${DHCP_MAX_HOST};/" /etc/cobbler/dhcp.template | |
# Change dhcp-server default listening interface | |
sed -i "s/INTERFACES=.*/INTERFACES=\"${NETDEVICE}\"/" /etc/default/isc-dhcp-server | |
# Fix TFTP server arguments in cobbler template to enable it to work on Ubuntu | |
sed -i "s/server_args .*/server_args = -s \$args/" /etc/cobbler/tftpd.template | |
# Fix Apache conf to match 2.4 configuration | |
sed -i "/Order allow,deny/d" /etc/apache2/conf-enabled/cobbler*.conf | |
sed -i "s/Allow from all/Require all granted/" /etc/apache2/conf-enabled/cobbler*.conf | |
# Permission Workarounds | |
mkdir /tftpboot | |
chown www-data /var/lib/cobbler/webui_sessions | |
# Restart services | |
service cobblerd restart | |
service apache2 restart | |
# Get Loaders | |
cobbler get-loaders | |
# Update Cobbler Signatures | |
cobbler signature update | |
# Restart services again and configure autostart | |
service cobblerd restart | |
service apache2 restart | |
service xinetd restart | |
update-rc.d cobblerd defaults | |
# Sync cobbler configuration | |
cobbler sync |
Hi - I've been trying to use the repo that is specified in this script, but it is now empty and fails:
http://download.opensuse.org/repositories/home:/libertas-ict:/cobbler26/xUbuntu_14.04/Release.key
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Luis,
I just wanted to thank you for posting this script.
For the last couple of days, I've been puzzling thru any cobbler install on any main stream Linux distro. Your script was the first batch of set up instructions that actually worked as indicated. (And instructions incorporated in a set up script to boot!)
As it happens, I used Ubuntu 14.04; not 14.10. But it (not surprisingly) worked fine.
Thanks again for the post and the help.
Cheers... Mark