GenieACS ein OpenSource ACS Dienst unter Ubuntu 14.04

Als Internet Service Provider ist es gut, wenn man nicht jeden Router per Hand einrichten und verwalten muss. Hierfür bietet GenieACS eine schöne Alternative. In diesem Beitrag möchte ich euch jedoch nur ein kurzes Script zur Installation dieses Dienstes zur Verfügung stellen, welches die vollständige Installation unter Ubuntu 14.04 übernimmt und problemlos durchführen sollte. Dabei wird eine Administrator-Oberfläche über Port 3000 erreichbar sein und die Geräteschnittstelle für die einzelnen Router auf Port 7547 legen. Da diese „Anleitung“ nur für ISP’s interessant sein dürfte, überspringe ich weitere Erklärungen und stelle euch einfach direkt das Installationsscript zur Verfügung. Das Script muss noch Rechte zur Ausführung bekommen „chmod +x“ und anschließend ausgeführt werden. Die Installation von GenieACS erfolgt dabei in dem Ordner, in dem das Script ausgeführt wird.

#!/bin/sh
set -e
 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo add-apt-repository -y ppa:chris-lea/redis-server
sudo add-apt-repository -y ppa:chris-lea/node.js
sudo apt-add-repository -y ppa:brightbox/ruby-ng
 
sudo apt-get -qq update
sudo apt-get -y install tmux zlib1g-dev mongodb-org redis-server nodejs ruby2.1 ruby2.1-dev git build-essential libsqlite3-dev
 
sudo npm install -g coffee-script
sudo npm install -g nodemon
sudo gem install rails --no-ri --no-rdoc
 
sudo chmod -R 777 ./tmp
 
#GenieACS
git clone https://github.com/zaidka/genieacs.git
cd genieacs/
npm install
npm run configure
npm run compile
cd ..
 
#GenieACS GUI
git clone https://github.com/zaidka/genieacs-gui
cd genieacs-gui/
bundle
cp config/summary_parameters-sample.yml config/summary_parameters.yml
cp config/index_parameters-sample.yml config/index_parameters.yml
cp config/parameter_renderers-sample.yml config/parameter_renderers.yml
cp config/parameters_edit-sample.yml config/parameters_edit.yml
cp config/roles-sample.yml config/roles.yml
cp config/users-sample.yml config/users.yml
cp config/graphs-sample.json.erb config/graphs.json.erb
cd ..
 
cat << EOF > ./genieacs-start.sh
#!/bin/sh
if tmux has-session -t 'genieacs'; then
  echo "GenieACS is already running."
  echo "To stop it use: ./genieacs-stop.sh"
  echo "To attach to it use: tmux attach -t genieacs"
else
  tmux new-session -s 'genieacs' -d
  tmux send-keys './genieacs/bin/genieacs-cwmp' 'C-m'
  tmux split-window
  tmux send-keys './genieacs/bin/genieacs-nbi' 'C-m'
  tmux split-window
  tmux send-keys './genieacs/bin/genieacs-fs' 'C-m'
  tmux split-window
  tmux send-keys 'cd genieacs-gui' 'C-m'
  tmux send-keys 'rails server' 'C-m'
  tmux select-layout tiled 2>/dev/null
  tmux rename-window 'GenieACS'
 
  echo "GenieACS has been started in tmux session 'geneiacs'"
  echo "To attach to session, use: tmux attach -t genieacs"
  echo "To switch between panes use Ctrl+B-ArrowKey"
  echo "To deattach, press Ctrl+B-D"
  echo "To stop GenieACS, use: ./genieacs-stop.sh"
fi
EOF
 
cat << EOF > ./genieacs-stop.sh
#!/bin/sh
if tmux has-session -t 'genieacs' 2>/dev/null; then
  tmux kill-session -t genieacs 2>/dev/null
  echo "GenieACS has been stopped."
else
  echo "GenieACS is not running!"
fi
EOF
 
chmod +x genieacs-start.sh genieacs-stop.sh
 
echo
echo "DONE!"
echo "GenieACS has been sucessfully installed. Start/stop it using the following commands:"
echo "./genieacs-start.sh"
echo "./genieacs-stop.sh"

Um den Server anschließend zu starten, kann das Script „genieacs-start.sh“ ausgeführt werden. Um den Server zu beenden das Script „genieacs-stop.sh“. Für das Monitoring kann auf den GenieACS Prozess mittels „tmux attach -t genieacs“ zugegriffen werden. Für einen Wechsel zwischen den vier Prozessen kann der Shortcut [Strg] + [B] – [Pfeil Taste] verwendet werden. Um die Prozesse wieder alleine laufen zu lassen, kann das Monitoring mit [Strg] + [B] – [D] beendet werden (man kann das Monitoring jederzeit wieder aufnehmen).