Ansible can talk to your favorite API

Ansible is a powerful opensource config management and deployment tool, which can manage nearly any situtation. In many “DevOp” scenarios we come across multiple platforms, which we need to combine. Mostly applications provide an REST Api or web connectors to manage resources, jobs and deployments within the product.
Ansible provides various modules which can execute commands at specific APIs, such as the vmware-guest-module to create virtual machines or the jenkins-job-module to manage jobs over the Jenkins API.
In cases where no module is available, we can use the module “uri”.

The module takes several parameters, of which the “url” is the only required one. For this example I picked an example online API “http://dummy.restapiexample.com/”.
To get a list of all employees we use the method GET on http://dummy.restapiexample.com/api/v1/employees, the header Accept: application/json and register the content.


- name: Make requests to example api
  hosts: localhost
  connection: local
  tasks:
    - name: list employees
      uri:
        method: GET
        url: "http://dummy.restapiexample.com/api/v1/employees"
        return_content: yes
        headers:
          Accept: application/json
      register: response

    - debug:
        msg: "{{ response.content }}"

# Result
TASK [list employees] *************************************************************************
ok: [localhost]

TASK [debug] **********************************************************************************
ok: [localhost] => {
    "msg": [
        {
            "employee_age": "23",
            "employee_name": "test",
            "employee_salary": "46000",
            "id": "12008",
            "profile_image": ""
        }
    ]
}

Now we create a new user in our application, for this we talk to a different url http://dummy.restapiexample.com/api/v1/create and send a body with our user to create.
When the api accepts JSON I use a little trick to generate a valid json body out of yaml variables with the Ansible filter to_json

For this we create a variable with the same key value structure as the API expects it, in this case the structure looks like this {“name”:”test”,”salary”:”123″,”age”:”23″}.


- name: Make requests to example api
  hosts: localhost
  connection: local
  vars:
    data:
      chris:
        name: chris
        salary: 46000
        age: 27
      jessy:
        name: jessy
        salary: 70000
        age: 30
  tasks:
    - name: create employee
      uri:
        method: POST
        url: "http://dummy.restapiexample.com/api/v1/create"
        return_content: yes
        headers:
          Accept: application/json
        body_format: json
        body: "{{ item.value | to_json }}" //Render valid json from each dictionary in the variable data.
      with_dict: "{{ data }}"
      register: post_content

    - debug:
        msg: "{{ item.content }}"
      with_items: "{{ post_content.results }}"

# Result
ansible-playbook create_user.yaml

PLAY [Make requests to example api] ********************************************************************

TASK [Gathering Facts] *********************************************************************************
ok: [localhost]

TASK [create employee] *********************************************************************************
ok: [localhost] => (item={'value': {u'salary': 46000, u'age': 27, u'name': u'chris'}, 'key': u'chris'})
ok: [localhost] => (item={'value': {u'salary': 70000, u'age': 30, u'name': u'jessy'}, 'key': u'jessy'})

With this information given, you can now explore your own favorite API and hopefully reduce your daily tasks as simple Ansible playbooks.

Check out our Blog for more awesome posts and if you need help with Ansible send us a message!

Thilo Wening
Thilo Wening
Senior Consultant

Thilo hat bei NETWAYS mit der Ausbildung zum Fachinformatiker, Schwerpunkt Systemadministration begonnen und unterstützt nun nach erfolgreich bestandener Prüfung tatkräftig die Kollegen im Consulting. In seiner Freizeit ist er athletisch in der Senkrechten unterwegs und stählt seine Muskeln beim Bouldern. Als richtiger Profi macht er das natürlich am liebsten in der Natur und geht nur noch in Ausnahmefällen in die Kletterhalle.

Sign up for ANSIBLE Automation

Get your OSCamp badge now to Ansibuild your Automation skills!

Meet Anton Vorobiev and learn how to reuse your existing Ansible roles for your Kubernetes apps. Anton will show you how to combine them with the K8s’ operators.

Learn all about Automated Tests of Ansible code with GitLab, Vagrant, VirtualBox and Ansible from Klaus Franken. The Engineer at ING Germany will introduce you to the triple-A concept! Curious? Join his talk at OSCAMP!

Ansibuild your systems! Don’t miss Toshaan Bharvani showing how roles can build a virtual machine or containers for deployment and much more.

You want to provide End-to-End Automation for the Enterprise?
Check out Nikhil Kathole‘s presentation. The Quality Engineer at Red Hat and upstream contributor demonstrates how Ansible and Foreman integrate!

Get to know how to automate your things and learn best practices, tips and tricks with Ansible!

Find out more at opensourcecamp.de & register now!

Pamela Drescher
Pamela Drescher
Head of Marketing

Pamela hat im Dezember 2015 das Marketing bei NETWAYS übernommen. Sie ist für die Corporate Identity unserer Veranstaltungen sowie von NETWAYS insgesamt verantwortlich. Die enge Zusammenarbeit mit Events ergibt sich aus dem Umstand heraus, dass sie vor ein paar Jahren mit Markus zusammen die Eventsabteilung geleitet hat und diese äußerst vorzügliche Zusammenarbeit nun auch die Bereiche Events und Marketing noch enger verknüpft. Privat ist sie Anführerin einer vier Mitglieder starken Katzenhorde, was ihr den absolut...

How To: Director Import #1

Guten Tag!

Heute zeige ich euch mit einer kleinen Galerie, wie ihr mithilfe von Modifikatoren, Daten im Director Import sauber aufbereiten könnt.

Die Umgebung ist eine selbstgebaute Vagrant Box auf Basis CentOS 7.6 mit Icinga 2 + Icinga Web 2. Das Icinga Web 2 wurde mit dem Director und Fileshipper Module ausgestattet.

Für mein Beispiel verwende ich einen Fileshipper CSV import, dessen Datenstruktur momentan etwas willkürlich wirkt. Das Ziel: Das unsere Modifikatoren diese Daten so aufbereiten, das am Ende eine einheitliche Struktur entsteht.

 

Wie immer wünsche ich euch viel Spaß beim Basteln!

 

Max Deparade
Max Deparade
Consultant

Max ist seit Januar als Consultant bei NETWAYS und unterstützt tatkräftig unser Professional Services Team. Zuvor hat er seine Ausbildung zum Fachinformatiker für Systemintegration bei der Stadtverwaltung in Regensburg erfolgreich absolviert. Danach hat der gebürtige Schwabe, der einen Teil seiner Zeit auch in der Oberpfalz aufgewachsen ist ein halbes Jahr bei einem Managed Hosting Provider in Regensburg gearbeitet, ehe es ihn zu NETWAYS verschlagen hat. In seiner Freizeit genießt Max vor allem die Ruhe, wenn...

OSCAMP on Ansible: Agenda out now!

 

This time Open Source Camp will deal with the automation tool Ansible. We are very happy to announce the third edition’s agenda!

You will get the chance to meet and learn from

  • Anton Vorobiev | vorobiev.cloud
  • Martin Schurz | T-Systems Multimedia Solutions
  • Felix Frank | The unbelievable Machine Company
  • and other Ansible experts

Their topics: Reusing Ansible Roles as Kubernetes Operators, the free Ansible Tower AWX in practice and Icinga configuration with Ansible. Get to know how to automate your things and learn best practices, tips and tricks from the experts!

Check out the whole PROGRAM and don’t forget to get your TICKET!

Julia Hornung
Julia Hornung
Marketing Manager

Julia ist seit Juni 2018 Mitglied der NETWAYS Family. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

Config Management Camp Ghent 2019

Ich habe dieses Jahr die erste Gelegenheit bekommen, mich mit meinen Kollegen und meinem Chef am Configuration Management Camp im Ghent zwischen 4. und 6. Februar zu beteiligen. Wir sind am 3. Februar am Abend in Ghent angekommen und durch die Stadt spazieren gegangen. Ghent hat uns sehr beeindruckt: Nicht nur die Sauberkeit der Straßen, sondern auch die Verbindung von alten und neuen Gebäuden haben Ghent besonders schön wirken lassen.

DevOps und Konfigurationsmanagement

Aber der Höhepunkt war das Camp: Es gab fast 1000 Teilnehmer aus der ganzen Welt. Die Vorträge waren sehr informativ und gingen hauptsächlich um DevOps und Konfigurationsmanagement ( Puppet, Ansible, Chef, Foreman). Viele Referenten haben sowohl ihre Erfahrungen sowie zuletzt aufgekommene und gelöste Probleme in ihrer Firma geteilt, als auch neue Features im Automation- und Konfigurationsmanagement-Feld vorgestellt. Am dritten Tag nahm ich mit meinem Kollegen und Ausbilder auf dem Foreman Construction Day Workshop teil. Wir haben uns in Gruppen praktisch mit “Foreman” beschäftigt. Am Ende des Tages haben einige Foreman-Entwickler und Teilnehmer über Wünsche, Verbesserungen und kommende Features gesprochen.

Ich empfehle jedem, der Interesse am Konfigurationsmanagement hat, das nächste Camp zu besuchen und belgische Waffeln und Bier auf jeden Fall zu probieren. Die sind sehr, sehr lecker.

 

 

 

 

 

 

 

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.

OSCAMP #3 | Ansible: Call for Presentations


Configuration in networks can quickly consume a lot of time. The automation tool Ansible helps! You know how to automate things with Ansible and would be open to share your practices with your fellows? Become a speaker at OSCAMP! Open Source Camp is a series of events giving Open Source projects a platform to present themselves to the community. It is a conference format designed bring forward Open Source projects and strengthen their communities.
Its third edition on Ansible takes place right after OSDC‘s lecture program on May 16, 2019, in Berlin. CfP runs until February 28, 2019.
Get on stage! Register as a speaker: opensourcecamp.de/submit-a-talk

#OSCAMP | May 16, 2019 | Berlin
Julia Hornung
Julia Hornung
Marketing Manager

Julia ist seit Juni 2018 Mitglied der NETWAYS Family. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

Ice, Ice – Icinga 2 / Puppet – Baby!


Bis vor Kurzem liefen in den Büros die Klimaanlagen oder – wie bei uns – die Tisch- und Standventilatoren auf Hochtouren, um ein halbwegs erträgliches Arbeiten zu ermöglichen. Ach ja: Sommer…  Allmählich normalisieren sich die Temperaturen ja wieder. Letztens las ich auf Twitter gar: “24 Grad nach Gewitter. Kann man schon Glühwein?” Damit ihr trotz des Sommers und allem, was er mit sich bringt – Rekordhitze oder Glühweindurst, einen kühlen Kopf bewahrt, hier ein kurzer Hinweis: Bald ist wieder Winter! Und dann gibt es von uns ein kleines Geschenk: Am 18./19. Dezember findet die erste Ausgabe unseres neuen Icinga 2 / Puppet Workshops statt. Anmelden könnt ihr euch schon jetzt.

Icinga 2 / Puppet ist ein Workshop für Fortgeschrittene.

Ihr lernt, wie ihr mit Puppet eine dezentrale Icinga 2-Umgebung aufbaut und konfiguriert.
Das heißt:

  • Hands-on! Am Ende wisst ihr, wie ihr ein solches Setup mit dem Icinga-2-Puppet-Modul einrichtet, wozu ihr das Role/Profile-Konzept braucht und habt das Ganze selbst einmal durchgespielt. Daneben werdet ihr über Zones und Endpoints diskutieren und euch fortgeschrittene Modul-Funktionen ansehen.
  • Für Fortgeschrittene: Der Workshop richtet sich an erfahrene Administratoren, die bereits Vorwissen mit beiden Projekten haben.
Hier noch einmal die Workshop-Inhalte in der Übersicht
  • Icinga 2 Master mit Icinga Web 2 installieren
  • Einrichten mehrerer Icinga 2 Agenten auf verschiedenen Plattformen (einschließlich Windows)
  • Verwenden einer dedizierten Zertifizierungsstelle, um eingehende Zertifikatsanforderungen automatisch zu signieren
  • Integration eines Icinga 2 Satelliten
  • Aufbau eines halbautomatischen Monitorings von Hosts mit Facts und PuppetDB
  • Verwenden von Git mit r10k für die automatische Bereitstellung unserer Puppet-Module in dynamischen Puppet-Umgebungen

Workshop-Leiter ist Lennart Betz, Open Source Trainer, Senior Consultant bei NETWAYS, Entwickler des Icinga-2-Puppet-Moduls und Autor des Buches „Icinga 2. Ein praktischer Einstieg ins Monitoring.“ Ihr seid neugierig geworden, euch aber nicht sicher, ob ihr das entsprechende Vorwissen mitbringt? Dann checkt doch mal die Inhalte unserer „Fundamentals for Puppet“ und „Icinga 2“-Schulungen, die wir allen Einsteigern ins Thema empfehlen.
Einen kleinen Vorgeschmack, was euch erwartet, bekommt ihr in unserer Blogserie:

Icinga 2 automatisieren mit Puppet

Alle Infos auf netways.de/trainings

Julia Hornung
Julia Hornung
Marketing Manager

Julia ist seit Juni 2018 Mitglied der NETWAYS Family. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

OSDC 2018 Recap: The Archive is online


 
Open Source Data Conference| JUNE 12 – 13, 2018 | BERLIN
Hello Open Source Lovers,
as we know all of you are most of the time focused on the things to come: An upcoming release or a future-oriented project you are working on. But as Plato said, “twice and thrice over, as they say, good is it to repeat and review what is good.”

OSDC Archive is online, giving us the occasion to do so.

OSDC 2018 was a blast! Austria, Belgium, Germany, Great Britain, Italy, Netherlands, Sweden, Switzerland, Spain, Czech Republic and the USA: 130 participants from all over the world came to Berlin to exchange thoughts and discuss the future of open source data center solutions.
„Extending Terraform“, „Monitoring Kubernetes at scale“, „Puppet on the Road to Pervasive Automation“ and „Migrating to the Cloud“ were just a few of many, trailblazing topics: We are overwhelmed by the content and quality of speakers, who presented a really interesting range of technologies and use cases, experience reports and different approaches. No matter what topic, all of the 27 high-level speakers had one goal: Explain why and how and share their lessons learned. And by doing so they all contributed to Simplifying Complex Infrastructures with Open Source.
Besides the lectures the attendees joined in thrilling discussions and a phenomenal evening event with a mesmerizing view over the city of Berlin.
A big thank you to our speakers and sponsors and to all participants, who made the event special. We are already excited about next year’s event – OSDC 2019, on May 14 to 15 in Berlin. Save the date!
And now, take a moment, get yourself a cup of coffee, lean back and recap the 2018 conference. Have a look at videos and slides and photos.

Julia Hornung
Julia Hornung
Marketing Manager

Julia ist seit Juni 2018 Mitglied der NETWAYS Family. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

Location-Aware Settings With ControlPlane

Part of my “arriving at the office in the morning” ritual involves quitting all my personal applications (e.g. Sonos), re-enabling my work e-mail account and a whole slew of other tiny changes that differentiate my work environment from my home environment. While in itself this isn’t too much of a hassle it does get rather tedious after a while. Especially so if I forget to start certain apps like my Jabber client and don’t realize that until much later.
The ControlPlane application promises to solve this exact problem by running specific actions whenever it detects a location change.
In order to do this you first have to set up “contexts”: These are essentially the locations you want ControlPlane to be aware of. As a starting point I’ve created two contexts “Home” and “Work” for my most-frequently used locations:

The next step involves telling ControlPlane what kind of information it should use to determine where you are. ControlPlane supports a wide variety of so-called evidence sources for this, some of which include:

  • IP address range, nearby WiFi networks
  • Attached devices (screens, USB and bluetooth devices)
  • Bonjour services (e.g. AppleTV)

Once you’ve made up your mind about which evidence sources to use you need to actually configure rules for these sources. An example would be “If my laptop can see the WiFi network ‘netways’ I’m in the ‘Work’ environment.” You also get to choose a confidence rating for each of those rules. This is useful if some of your rules could potentially also match in other, unrelated environments – for example because the IP address range you’re using at work is also commonly used by other companies.

Once you’re sufficiently confident that your location detection rules are working reliably you can set up actions which ControlPlane automatically performs whenever you enter or leave a certain location:

For my personal use I’ve found the built-in library of actions to be quite useful. However, there are a few things that even ControlPlane doesn’t support out of the box – like disabling specific e-mail and Jabber accounts. Luckily it does let you can run arbitrary external applications, including ones you’ve built with macOS’s Script Editor application:

NETWAYS Gebäudeautomation

fhemiconManuelle Schaltungsaufgaben sind einfach nervig und kosten Energie. Vor allem in Büros. Denn nicht jeder denkt an das Abschalten von Kaffeemaschine, Dashboards oder Licht im Allgemeinen. In größeren Gebäuden oder verteilten Räumen ist es auch nicht gleich ersichtlich, dass hier noch eine Heizung abgeregelt werden muss oder das Licht noch brennt.
Besser funktioniert es, wenn Heizungen automatisch geregelt werden oder Verbraucher zentral und zeitlich gesteuert werden. Um die Prozesse bei uns zu vereinfachen setzen wir mittlerweile Komponenten von Homematic in Kombination mit FHEM ein. Homematic kommuniziert bidirektional und verschlüsselt über Funk. Die Möglichkeit zur Sabotage werden damit gering gehalten und die Geräte senden sogar Schaltzustände und Statusinformationen wie Batteriekapazität an die Zentrale zurück. Als Oberfläche und Schnittstelle kommt bei uns FHEM zum Einsatz – ein OpenSource Perl Daemon welcher eine Reihe von Schnittstellen unterstützt (KNX, 1-Wire, FS20, Samsung, usw.) und einen Baukasten zur Gruppierung von Komponenten und zeitlichen Abfolgen bereitstellt.
logo_homematicMittlerweile steuern wir damit unsere Dashboards und Heizkörper (über MAX! Cube Lan-Gateway). Der Taster am Eingang kann sogar dazu genutzt werden um eingehende Essensbestellungen über einen Jabber Bot benachrichtigen zu lassen. Im Moment befindet sich noch alles in den Kinderschuhen aber es bietet Raum für mehr: Füllstand des Briefkastens, Heizungssteuerung per Anwesenheit, Luftgüte in den Büroräumen und vieles mehr. Aber auch für unser Monitoring ergeben sich einige sinnvolle Parameter: Temperaturen, geöffnete Türen und Fenster.
 
 

Marius Hein
Marius Hein
Head of Development

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert, dann als Application Developer gearbeitet und ist nun Leiter der Softwareentwicklung. Ausserdem ist er Mitglied im Icinga Team und verantwortet dort das Icinga Web.