before i forget Smashing & centos/8 2020

Sollte im Jahr 2020 es nicht eher die Frage sein wie man Smashing https://smashing.github.io/ auf einem Centos/8 installiert. Also auf etwas neuem.

Ausgangslage ist ein aktueller Centos 8 minimal iso install.

#> dnf install -y epel-release
#> dnf update -y
#> dnf groupinstall -y "Development tools"
#> dnf install -y nodejs.x86_64
#> dnf install -y ruby-devel.x86_64
#> dnf install -y rubygem-bundler

Nach den Schritten hat man sozusagen die Basis für die weiteren Schritte. Es folgt die installation des rvm welcher es uns erleichtert auf der Maschine das Ruby Paket im Griff zu behalten.

#> gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
#> curl -sSL https://get.rvm.io | bash -s stable --ruby
#> source /etc/profile.d/rvm.sh
#> rvm reload
#> rvm requirements run
#> rvm list
#> rvm install 2.x.x <= optionaler Schritt auf die Ruby Version welche man verwenden möchte
#> rvm --default use 2.7.0 <= 2.7.0 ist zu dem Zeitpunkt des Blogpost die aktuelle Ruby Version in Centos8

Nun kommen wir zur eigentlichen installation von Smashing. Dies erfolgt mit dem Kommando:

#> gem install smashing

Nach der erfolgreichen installation gehen wir nach /usr/local/bin und verlinken den gem zur einfacheren Ausführbarkeit.

#> cd /usr/local/bin && ln -s /usr/local/rvm/gems/ruby-2.7.0/bin/smashing /usr/local/bin/smashing

Somit habe wir es uns für das Unitfile von Systemd einfacher gemacht.

Wir gehen in unser Home Verzeichnis und erstellen uns ein neues testdashboard:

#> cd ~
#> smashing new testdashboard
#> ...

In dem Gemfile welches nun in dem testdashboard Ordner liegt müssen wir noch etwas editieren. Wir entfernen das Twitter gem, und fügen das json gem und ggf. den rest-client hinzu das ist aber Anwendungsabhängig was man verwenden will. Wir tun dies auch nur um zu zeigen wie man dies editiert.

#> cd testdashboard
#> vi GemfileFilecontent: source 'https://rubygems.org'

gem 'smashing'
Uncomment this if you want to see use the twitter widget.
gem 'twitter', '>= 5.9.0' <= diesen Part weglöschen und durch
gem 'json' <= ergänzen
gem 'rest-client' <= ergänzen

Abschliessend wird das Paket was smashing für seine Arbeit braucht mit bundle fertig geschnürt.

#> cd testdashboard
#> bundle
#> ...

Ab diesem Zeitpunkt ist smashing komplett Einsatzbereit. Mit dem Kommando:

#> cd testdashboard; smashing start

Können wir das testdashboard in Betrieb nehmen. Wir machen aber noch etwas nacharbeit weil wir im Jahr 2020 sind und fast alle Linux Distributionen Systemd verwenden brauchen wir noch ein Unitfile welches es uns ermöglicht smashing per systemctl start/stop smashing zu starten & zu stoppen.

Dazu begeben wir uns nach #> vi /etc/systemd/system/smashing.service und erstellen uns ein Unitfile namens smashing.service. Der Name ist natürlich wahlfrei. In diesem Fall allerdings halt Simplerweise einfach smashing.service.

Der Inhalt des Unitfiles sollte folgendermaßen aussehen:

[Unit]
Description=Start/Stop Smashing Dashboard
After=network.target

[Service]
Environment="RUBY_VERSION=ruby2.7.0"
Environment="GEM_HOME=/usr/local/rvm/gems/ruby-2.7.0"
Environment="GEM_PATH=/usr/local/rvm/gems/ruby-2.7.0:/usr/local/rvm/gems/ruby-2.7.0@global"
Environment="MY_RUBY_HOME=/usr/local/rvm/rubies/ruby-2.7.0"
Environment="PATH=/usr/local/rvm/gems/ruby-2.7.0/bin:/usr/local/rvm/gems/ruby-2.7.0@global/bin:/usr/local/rvm/rubies/ruby-2.7.0/bin:/usr/local/rvm/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="IRBRC=/usr/local/rvm/rubies/ruby-2.7.0/.irbrc"
Type=exec
RemainAfterExit=yes
WorkingDirectory=/root/testdashboard
ExecStart=/usr/local/bin/smashing start -d -p 3030 --pid /var/run/smashing.pid
ExecStop=/usr/local/bin/smashing stop

[Install]WantedBy=multi-user.target


Mit Fertigstellung des Unitfiles müssen wir ein systemctl daemon-reload ausführen damit das neue Unitfile verwendet werden kann.

Man kann es auch mit systemctl enable smashing.service für den automatischen Systemstart einstellen.

So das war es auch schon mit der kurzen Exkursion in Smashing installieren in Centos/8.