A RedHat-related Blog for Our Partners
Header

Author Archives: Dorian

IoT Workshop – Avnet Austria Stammtisch

January 11th, 2017 | Posted by Dorian in News | Technical News | Uncategorized - (0 Comments)

Thema unseres vergangenen Avnet Red Hat Stammtisch am 17.11. war IoT. Ziel des Workshops war den Teilnehmern (für die meisten ein Erstkontakt mit der Materie) zu zeigen mit welch einfachen Mitteln und Wissen kleine IoT Projekte zu realisieren sind.

Als Plattform wurde der ESP8266 Chip eingesetzt. Die Teilnehmer waren aufgefordert ein IoT-Projekt mit zur Verfügung gestellten Sensoren (Temperatur, Feuchtigkeit, GPS, Gyro) zu entwickeln und die Daten per HTTP Post auf einen Webserver zu laden, der die Daten in einer MongoDB speichert. Anschliessend wurden die Daten aus der Datenbank ausgelesen und als Graphik auf einem Webserver dargestellt. Alle Online Resourcen liefen auf der Red Hat Openshift Plattform.

Erste Aufgabe war es die Entwicklungsumgebung (wir wählten Arduino) auf den Rechnern zu installieren und mit dem ESP8266 Entwicklungsboard zu verbinden.

img_20161121_131715Anschliessend wurden die ESP8266 und die Sensoren auf den Breadboards verkabelt und mit den entsprechenden Software Libraries eingebunden.

sensorscables

Die Arduino-Plattform stellt die meisten Sketches fix und fertig zur Verfügung und somit sind die Sensoren schnell in das Projekt eingebunden.

Die nächste Herausforderung war die durch die Sensoren gesammelten Daten via HTTP POST auf den bereitgestellten Webserver mit MongoDB hochzuladen.

void post(String group, String sensor, String timestamp, String value)
{
  String postData = "{\"group\": \"" + group + "\", \"sensor\": \"" + sensor + "\", \"timestamp\": \"" + timestamp + "\", \"value\": \"" + value + "\"}";

  Serial.print("connecting to ");
  Serial.println(host);

  // Use WiFiClient class to create TCP connections
  WiFiClient client;
  const int httpPort = 80;
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }

Auf dem Webserver lief das Python Eve Plugin, welches einerseits eine einfache und schnell zu implementierende REST-Funktionalität bietet und andererseits eine MongoDB, die die Daten speichert.

def worker_eve():
    app = Eve()
    app.run(host = '0.0.0.0', port=8080)

Ein weiteres Pythonscript auf dem REST-Server generiert aus den gespeicherten Daten die graphische Darstellung der gemessenen Werte.

def worker_makeimage():
    groups = ['a', 'b', 'c', 'd', 'e']
    mongohost = os.getenv('IOT_DB_SERVICE_HOST')

    client = MongoClient('mongodb://iot-db:iot-db@' + mongohost + ':27017/iot-db')
    db = client['iot-db']
    events = db['iot-db']

    while True:
        for group in groups:
            timestamps = []
            values = []

            for event in events.find({'group': group}):
                timestamp = event['_updated']
                timestamps.append(timestamp.strftime('%Y-%m-%d %H:%M'))
                value = event['value']
                values.append(float(value))

            plot(group, timestamps, values)
	time.sleep(60)

Hier der Temperaturverlauf während des Workshops:

group_a

Danke allen Teilnehmern und natürlich auch der Cloudwerkstatt und der IT&Tel, die die Openshift Plattform zur Verfügung gestellt haben.

Vagrant setup on RHEL7

November 21st, 2016 | Posted by Dorian in Avnet General | Technical News - (0 Comments)

Vagrant ist ein Toolset, dass es Entwicklern erlaubt schnell und einfach reproduzierbare und portierbare Umgebungen für Softwareentwicklung zu erstellen. Vagrant gibt es für die Betriebsystem Linux, OSX und Windwos und es unterstützt neben QEUM/KVM u.a. auch Vmware und Virtualbox.

Dieser Guide folgt dem Konzept welches unter


https://access.redhat.com/documentation/en/red-hat-container-development-kit/2.1/installation-guide/#installing_container_development_kit_on_red_hat_enterprise_linux

dargestellt wird. Als Virtualisierungplattform soll natürlich Qemu/KVM zum Einsatz kommen.

Installiert wird auf einem registrierten Red Hat System; hier die Schritte, die zur Registrierung notwendig sind und um die benötigten Repositories zu enablen.


# subscription-manager register --auto-attach --username=user --password=passwd
# subscription-manager repos --enable rhel-server-rhscl-7-rpms
# subscription-manager repos --enable rhel-7-server-optional-rpms

Nach der erfolgreichen Registrierung müssen die Repositories noch eingebunden werden. Für diese Demoinstallation werden die GPG-Checks disabled; was für den Produktionsbetrieb nicht zu empfehlen ist.


# yum-config-manager --add-repo=http://mirror.centos.org/centos-7/7/sclo/x86_64/sclo/
# echo "gpgcheck=0" >> \
/etc/yum.repos.d/mirror.centos.org_centos-7_7_sclo_x86_64_sclo_.repo

Mit dem nachfolgendem System werden die notwendigen Resourcen zur Virtualisierung installiert und anschliessend gestartet.


# yum groupinstall "Virtualization Host"
# systemctl start libvirtd
# systemctl enable libvirtd

Die Installation von Vagrant erfolgt mit:


# yum install sclo-vagrant1 sclo-vagrant1-vagrant-libvirt \
sclo-vagrant1-vagrant-libvirt-doc

Im Centos Repository sind die aktuellsten Versionen von Vagrant vorhanden. Diese sind auf Red Hat derzeit noch nicht supported. Somit erfolgt mit dem nächsten Schritt ein “downgrade” auf die supportete Version.


# yum downgrade sclo-vagrant1-vagrant-1.7.4

Zum Abschluss werden die Resourcen nochmals restartet und die notwendigen Berechtigungen angelegt, sprich jeder User, der das Tool verwenden will, muss in die Gruppe vagrant aufgenommen werden.


# systemctl restart libvirtd
# systemctl restart polkit
# usermod -a -G vagrant

logout / login as username


$ grep vagrant /etc/group
vagrant:x:978:joe
$ id
uid=1001(joe) gid=1001(joe) groups=1001(joe),978(vagrant)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$ scl enable sclo-vagrant1 bash

Die Installation verlief erfolgreich, wenn der Aufruf des folgenden Kommandos ein Ergebnis liefert.


$ vagrant global-status
id name provider state directory
--------------------------------------------------------------------
There are no active Vagrant environments on this computer! Or,
you haven't destroyed and recreated Vagrant environments that were
started with an older version of Vagrant.

Nun können aus dem Repository https://atlas.hashicorp.com/boxes/search Konfigurationsfiles für virtuelle Maschinen heruntergeladen.

Storage Protocols – Overview and Outlook

September 13th, 2016 | Posted by Dorian in News | Technical News - (0 Comments)

A little overview of storage protocols and where they will go in the future according to a Gartner survey (https://www.gartner.com/doc/reprints?id=1-3CQPTF5&ct=160726&st=sb)

 

storage_protocol_comparison

New Features in Red Hat Openstack 9 (Mitaka)

September 12th, 2016 | Posted by Dorian in News | Technical News | Uncategorized - (0 Comments)

Block Storage

  • Snapshot Backups
  • Volume Replication
  • Volume Encryption through Dashboard

Compute

  • libosinfo: allows users to set the os_name image property to a valid short ID such as rhel7 or winxp to optimize guest performance
  • placement of sibling threads:
    • prefer – Default, prefers placing guest vCPUs on sibling threads where they are available. Host may or may not have SMT support.
    • isolate – Isolates threads placing guest vCPUs on different physical cores. On systems with SMT support ensures that no vCPUs from other guests are placed on those cores.
    • require – Requires the use of thread siblings. The host must have SMT support.

Image Service

  • Improved Image Signing and Trust
  • Volume Back End Upload/Download

Networking

  • Role-based Access Control (RBAC) for QoS policies
  • RBAC for External Networks
  • Purge a Project’s Networking: neutron purge command to delete all the neutron resources that once belonged to a particular project

Technolofy Previews

  • Google Cloud storage backup driver (Block Storage)
  • Manila: Shared File System Service
  • At-Rest Encryption (Object Storage)

Python 3 in Redhat 7

July 20th, 2016 | Posted by Dorian in Technical News - (0 Comments)

Derzeit ist Python 2.7 immer noch Standard in Red Hat 7 und wird bis zum Ende des Red Hat 7 Live Cycles supported (30. Juni 2024).

Für einige Entwickler ist es aber interessant schon mit einer neueren Version (z.B. Python 3.4) zu testen. Ein Parallelbetrieb von beiden Varianten ist möglich und der Weg dorthin wird im Folgenden beschrieben.

In der RHSCL (Red Hat Software Collection Library) findet man die aktuelle Version, z.B.:

Einbinden der Software Collection Library

Aktivieren der yum-Repositories; die folgenden werden benötigt:

  • rhel-server-rhscl-7-rpms
  • rhel-server-rhscl-7-debug-rpms
  • rhel-server-rhscl-7-source-rpms
  • rhel-server-rhscl-7-eus-rpms
  • rhel-server-rhscl-7-eus-debug-rpms
  • rhel-server-rhscl-7-eus-source-rpms

for i in rhel-server-rhscl-7-rpms rhel-server-rhscl-7-debug-rpms rhel-server-rhscl-7-source-rpms rhel-server-rhscl-7-eus-rpms rhel-server-rhscl-7-eus-debug-rpms rhel-server-rhscl-7-eus-source-rpms
  do subscription-manager repos --enable $i
  done


check ob die Repositories aktiviert sind:

subscription-manager repos| grep -B 3 'Enabled:   1'

----- snip -----
Repo ID: rhel-server-rhscl-7-eus-source-rpms Repo Name: Red Hat Software Collections Source RPMs for Red Hat Enterprise Linux 7 RHEL 7 Server EUS Repo URL: https://cdn.redhat.com/content/eus/rhel/server/7/$releasever/$basearch/rhscl/1/source/SRPMS Enabled: 1 -- Repo ID: rhel-server-rhscl-7-eus-debug-rpms Repo Name: Red Hat Software Collections Debug RPMs for Red Hat Enterprise Linux 7 RHEL 7 Server EUS Repo URL: https://cdn.redhat.com/content/eus/rhel/server/7/$releasever/$basearch/rhscl/1/debug Enabled: 1 --
----- snip -----
yum search python yum -y install rh-python35

Aktivieren der Python 3 Umgebung

bash# scl enable rh-python35 bash
bash# python
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Testen mit beiden Versionen

scl enable python27 "python script.py"
scl enable python34 "python script.py"

Red Hat Termine in Österreich

June 29th, 2016 | Posted by Dorian in News | Uncategorized - (0 Comments)

Red Hat veranstaltet die folgenden beiden Trainings in Wien:

  • 26th July, 2016 – Austria – OPENSHIFT 3.X FASTRAX TRAINING
  • 27th July, 2016 – Austria – CLOUDFORMS 4 FASTRAX TRAINING

Details zu den Trainings:

OPENSHIFT 3.X FASTRAX TRAINING

Overview

  • Discuss Red Hat OpenShift and PaaS, OpenShift Enterprise 3 design goals, and compare OpenShift 2 to OpenShift 3
  • Learn about OpenShift use cases

Architecture

  • Discuss OpenShift 3 design concepts, Docker, Kubernetes, networking, the image registry, builds, and STI images

Basic Application Deployment

  • Launch an application and learn about the web management console

Basic Application Management

  • Create an STI build, and deploy an STI build image

Demonstrate OpenShift Enterprise Capabilities

  • Learn how to demonstrate deploying from prebuilt containers using the command line
  • Discuss deploying from an existing Git repository using the web console and STI image
  • Learn how to deploy a two-tiered application from a template using the web console and the command line

CLOUDFORMS 4 FASTRAX TRAINING

CloudForms Overview

  • Discuss benefits, IT challenges, transforming to cloud solutions, management, use views, and case studies

Demonstration

  • Demonstrate CloudForms 3 in a way that clearly shows the product’s flexibility and power to consumer, operations, and management users
  • Complete tasks to prepare for a demonstration, the organization and flow, the tools and benefitsprovided for cloud operations staff, and the service available to consumers in environmentsmanaged by CloudForms
  • Discuss the reporting, planning, and chargeback features for executive managers

Architecture

  • Explore the CloudForms management engine and the five components that are included inIT — appliance, server, virtual management database (VMDB), console, and SmartProxy
  • Discover the four features of the CloudForms management engine — insight, control, automate,and integrate

Learn about regions and zones and the hierarchy the engine uses for cloud management