Seite wählen

NETWAYS Blog

DevOpsDays Berlin cancelled

The DevOpsDays Berlin have been cancelled for this year due to Corona. “Though there were good arguments for running the conference, most of us felt uncomfortable to expose people to a potential danger that isn’t fully understood yet”, the organizers said. They decided to suspend the event in 2020 and to hold it again in 2021. Holding the conference online was not really an option for the Berlin crew. Other DevOpsDays who did an online version of their event had great success with the attendee numbers, but they felt that this would miss out with the most important part of the conference: Bringing people together in person and the community aspect of the event. The Berlin organizers are planning an event for 2021, which can be expected to fall into the same time as this or the last years: Beginning to middle of fall 2021.

Entries from this Call for Papers won’t be kept for next year (“because the only thing older than a ‘Tech Talk’ from a year ago is yesterday’s newspaper”). Who already proposed would need to create a new entry next year. The DevOpsDays Berlin organizers thank all speakers for their awesome talk and session proposals this year, and encourage and invite people to propose again in 2021.

Keep an eye on https://devopsdays.berlin/ or on the Twitter feed @blndevops to stay informed and get the new dates.

Julia Hornung
Julia Hornung
Senior 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.

Ansible – Use Blocks and Rescue Errors

Ansible is a widely used and powerful open-source configuration and deployment management tool. It can be used for simple repetitive daily tasks or complex application deployments, therefore Ansible is able to cover mostly any situation.

Since version 2.0.0 Ansible introduced the usage of blocks, they provide the possibility to group or rescue failed tasks.
On blocks we can assign most directives which are available for any other task at block level, only loops aren’t available.

- name: Update Systems
  hosts: all
  tasks:
    - name: execute this block only for rhel family hosts
      block:
        - name: install epel repository
          yum:
            name: epel-release
            state: present

        - name: install updates
          yum:
            name: '*'
            state: latest
            exclude: kernel*

      when: ansible_os_family == 'RedHat'
      become: true

When we try to deploy applications, sometimes we need to test connections or if requirements are met. When those tasks fail caused by the negative test result, the playbook by default fails and therefore stops.
To force Ansible to execute all other tasks, we could use the directive ignore_failed: true and checking the return value for any other depending task.

With blocks this is easily solved, by using rescue to catch the error and force a particular tasks to run.
The always will make sure that the listed tasks get executed.


- name: rescue my errors
  hosts: localhost
  tasks:
    - name: Try to reach host
      block:
        - name: "[Try reach DNS] Check Connection over DNS"
          command: ping client01.demo.local -c 2
          register: output
      rescue:
        - name: "[Rescue failed DNS] Check Connection over IP"
          command: ping 192.168.33.1 -c 2
          register: output
      always:
        - debug:
            var: output

To handle more than one rescue statement, the block can be simply used in the rescue section, like in the following example.


  - name: Try to execute skript
    block:
      - name: Check Connection over DNS
        command: ping nclient01.demo.local -c 2
        register: output
    rescue:
      - name: "this will fail"
        block:
          - name: it will be false
            command: /bin/false
            register: output
        rescue:
          - name: "this works"
            command: ping 192.168.33.1 -c 2
            register: output

Try to reduce ignored tasks in failed state with rescue blocks, this reduces the confusion of users when inspecting the output.
As second advice try to reduce code duplication by grouping tasks with similar directives.

Check out our Blog for more awesome posts and if you need help with Ansible send us a message or sign up for one of our trainings!

Thilo Wening
Thilo Wening
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.

5 Steps to a DevOps Transformation by Dan Barker | OSDC 2019

This entry is part 3 of 6 in the series OSDC 2019 | Recap

 

“It’s not what we believe, it’s what we do that defines our culture”, was on his first slide. At the Open Source Data Center Conference (OSDC) 2019 Dan Barker presented “5 Steps to a DevOps Transformation”. Those who missed the talk back then now get the chance to see the video of Dan’s presentation and read a summary (below).

The former OSDC will be held for the first time in 2020 under the new name stackconf. With the changes in modern IT in recent years, the focus of the conference has increasingly shifted from a mainly static infrastructure approach to a broader spectrum that includes agile methods, continuous integration, container, hybrid and cloud solutions. This development is taken into account by changing the name of the conference and opening the topic area for further innovations. Transformation rules!

Due to concerns around the coronavirus (COVID-19), the decision was made to hold stackconf 2020 as an online conference. The online event will now take place from June 16 – 18, 2020. Join us, live online! Save your ticket now at stackconf.eu/ticket/


5 Steps to a DevOps Transformation

In order to be successful in the new digital economy, it is essential to continuously improve the quality, speed and efficiency of your own organization.

“In this session, we’ll walk through the five steps to transformational change that I’ve found to be important. These are really applicable to any continuously improving organization or any large amount of change in a system. Establish the vision. Create shared experiences. Educate, educate, educate. Find evangelists; Get feedback. I’ll elaborate on each item with methods I’ve used in real transformations at multiple companies. I’ll also describe how these all tie into the DevOps culture, which is really the transformation that’s occurring within the company.”

DevOps professionals primarily work in the tech and software world, creating new technology products, software, and other user services. You will play a key role in the development of new ideas for products and services and manage the process of turning these ideas into realities.

Establish the vision

“A strong team can take any crazy vision and turn it into reality” – John Carmack

The vision creates empowerment

  • But I‘m not a leader!!!
  • Bold
  • Inspiring
  • Actionable

Pathological – Power oriented

Bureaucratic – Rule oriented

Generative – Performance oriented

If your company values increased productivity, profitability, and market share then DevOps is essential. Even if your goals are non-financial, DevOps will enhance your ability to achieve those goals. The State of DevOps report soundly backs up these claims. More importantly, if your competition has already implemented DevOps and you haven’t, you are already behind. That’s how Walmart feels now that Amazon has built the world’s most efficient shopping platform.

Bad vision → bad outcomes

  • Biased for failure
  • No vision
  • IT-focused
  • Lack of clarity – JFK Moonrace
  • Not actionable

Find evangelists

“It is not about whether you call yourself a leader or not. It is about what you have to show to people as a leader. Leadership is contagious, you carry it and share it” – Israelmore Ayivor

The control mechanisms that are currently in place to manage your people and projects may not be suited for the DevOps world. You have to be willing to look at items that prevent agility, scalability, and responsiveness and change them. DevOps will provide agility, scalability, and responsiveness, so anything that hinders that process needs to be aligned with the new model.

You can‘t do it alone

  • Use anyone willing to help
  • Nurture this team
  • This team is a bellwether
  • Publicly praise team members

When your organization moves towards developing a DevOps culture, it’s signaling to everyone that participates in the production and release of software they have an equal stake in the success of the company. It’s an all for one, one for all mentality that will break down the communication barriers between teams and make everyone accountable. Once DevOps roles and responsibilities are implemented positive changes will occur, and everyone wins.

Create shared experiences

“Words are symbols for shared memories. If I use a word, then you should have some experience of what the word stands for. If not, the word means nothing to you.” – Jorge Luis BorgesIm

Bringing people together by sharing

  • Two levels
    • Leadership
    • Organization
  • Equally important

Leadership teams need landmarks

  • Shared information model
  • Reference point
  • Provides inspiration
  • Repeat

To start down your path to DevOps success you need to build a proper DevOps organization which includes all the proper team members. However, the size of your organization plays a big role on how granular you can be with your team. But size doesn’t really matter if you properly define the roles and responsibilities across the organization. The important thing is to make a commitment to the process and get started

The core responsibility that needs to exist is the person who owns the entire DevOps process. This person would usually be someone in a senior position. They are the keeper of the process and procedures and guarantor of the delivery of DevOps value. I like to think of this person as the DevOps evangelist. Aside from the leader, you would need to establish, at a minimum, the following roles: Code Release Manager, Automation Expert, Quality Assurance, Software Developer/Tester, and Security Engineer. The DevOps duties for each of these resources are described below.

Don‘t leave everyone else behind

  • Shared information model
  • Provides motivation
  • Leaders should be leading
  • How?

Educate,…

“An investment in knowledge pays the best interest” – Benjamin Franklin

Learn something new to build something new

  • Knowledge changes outcomes
  • Make it priority
  • Make it available
  • Monitor it

Measure what matters

  • Accelerate by Dr. Forsgren
  • Westrum Culture Survey
  • User Surveys
  • 1:1 Feedback
  • CultureAmp

Everyone in the company is sailing on the same ship. If the tide goes up so does the ship and everyone on it. But if the tide goes down so does the ship, but no one on the ship is to blame.

Everyone learns differently

  • Online training
  • In-person classes
  • Newsletters
  • Conferences
  • Hackathons

Get feedback

“True intuitive expertise is learned from prolonged experience with good feedback on mistakes” – Daniel Kahneman

Quellen und Nachschlagewerke

Aleksander Arsenovic
Aleksander Arsenovic
Junior Consultant

Aleksander macht eine Ausbildung zum Fachinformatiker für Systemintegration in unserem Professional Service. Wenn er nicht bei NETWAYS ist, schraubt er an seinem Desktop-PC rum und übertaktet seine Hardware. Er ist immer für eine gute Konversation zu haben.

DevOpsDays Berlin: Call for Papers open. Get involved!

The organizers of DevOpsDays Berlin once again invite IT professionals with DevOps experience to propose a talk and show their interest in contributing. DevOpsDays is a technical conference, aimed at developers, sysadmins and anyone else involved in technology, whether expert or beginner. The idea behind it: Understanding each others way of working, improving code and cooperation. It was the series of DevOpsDays conferences that made the term DevOps as popular as it is today.

The Call for Papers for DevOpsDays Berlin runs until July 05, 2020. Papers can be submitted at cfp.devopsdays.berlin/2020/.

If you have a hiring success story, can talk about diversity in teams or leadership, have a great tale to tell about spreading DevOps to the rest of your company or organization: Don’t hesitate to propose.

There are three different formats

  • 30-minute talk: Presented during the conference, usually in the mornings. Anyone can submit a presentation. The DevopsDays Berlin program council will choose the best presentations among these submissions, which will appear in the agenda of the conference.
  • Ignite talk: Presented during the Ignite sessions (scheduling varies). The ignite talks are a valuable portion of knowledge, lasting for 5 minutes. 20 slides change automatically every 15 seconds giving a condensed overview on a topic.
  • Hands-On session: Presentations of technical nature lasting for 45 minutes. Speakers should demonstrate a part of their work and give people the chance to ask questions. No product demos allowed.

There will also be Open Space sessions during the conference. The Open Space format is a very interesting and simple one. Short time before the Open Space starts, all attendees can suggest topics and vote on what topic is the most wanted. After this, participants create discussion groups. It is not necessary to propose ahead of time. The topics are suggested in person at the conference.

Get involved!

DevOpsDays events are unique in that they are entirely volunteer-supported, and not hosted by an industry vendor or for profit. If you are in any way interested in supporting that, be it by speaking or by volunteering at the event: Reach out to the organizers. Get involved!

For more information visit https://devopsdays.org/events/2020-berlin/welcome/

Julia Hornung
Julia Hornung
Senior 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.

tmux – terminal multiplexer

In diesem Artikel möchte ich euch kurz das Tool tmux vorstellen, dass zu meinen Lieblingstools unter Linux gehört. In einem vorherigen Artikel hat Johannes schon einmal die Basisconfig von tmux gezeigt.

Da tmux eine Server Client Struktur hat, bevorzuge ich es in der Regel die Finger von der tmux config zu lassen. Da man die sonst auf jedem Server pflegen muss, mit dem man arbeiten möchte. Leicht hat es an der Stelle derjenige, der Puppet oder Ansible nutzt und seine eigenen Server pflegt. Ich als Consultant habe meistens Kundenserver, auf denen ich nichts verändern möchte was nicht nötig ist.

tmux hat für mich 2 Einsatzzwecke:

  • Bei Präsentationen Bildschirm- und Beamerterminal synchronisieren.
  • Bei Servern meine Sessions schützen, so dass ich nach Verbindungsabbrüchen weiterarbeiten kann.

Besonders der zweite Zweck ist sehr praktisch, da ich auch Bahnfahrer bin.

CLI

Jetzt zur eigentlichen Benutzung: Gestartet wird tmux über den jeweiligen User. Wenn man ein Terminal vor sich hat sind folgende Basisbefehle praktisch:

  • # tmux -> startet eine neue unbenannte Session
  • # tmux new -s “MeineSession” -> startet eine benannte Session
  • # tmux list-sessions -> listet Sessions
  • # tmux -a -> verbindet zu einer unbenanntenten Session
  • # tmux -a -t “MeineSession”

Inside tmux

Wenn wir jetzt in einer tmux Session sind kann das folgendermaßen aussehen:

tmux ScreenshotTmux unterscheidet zwischen “window” und “pane”. Wir sehen in diesem Beispiel 4 panes in einem window.
Um innerhalb von tmux zu navigieren braucht gibt es diverse Keybindings die immer mit Strg+b eingeleitet werden. Hinweis: Bei screen, einem ähnlichen aber älteren tool als tmux, war es Strg+a. Wem das lieber ist, der kann bei Johannes nachschlagen, wie man das umstellt.

Im Window hat man folgende Befehle:

  • Strg-b, % Horizontaler Split
  • Strg-b, ” Vertikaler Split
  • Strg-b, x Schließt den aktuellen Pane
  • Strg-b, <Pfeil-Tasten> Zwischen Panes hin und her springen
  • Strg-b, d detach, von tmux abmelden ohne es zu beenden

Ein Window ist vergleichbar mit einem Tab in deinem Browser. Zwischen einzelnen Windows navigiert man mit:

  • Strg-b, c Neues Window
  • Strg-b, w Windows auflisten
  • Strg-b, [0…9] zum Window Nr. 0-9 wechseln

Kopieren

Ein praktisches Feature ist das kopieren. Das funktioniert ähnlich wie in Vim aber, da es Terminals sind, auch zwischen verschiedenen Servern.

  1. Als Erstes braucht man mindestens 2 Panes.
  2. Strg-b, [ Öffnet den Scroll-Modus
  3. <Space> startet den Markier-Modus unterm Cursor
  4. <CR/Enter> kopiert
  5. Nach dem Wechsel ins nächste Pane . . .
  6. Strg-b, ] fügt ein

Am besten probiert man das alles selber mal aus. Es gibt auch eine Menge Cheat-Sheets zu dem Thema, die vor allem am Anfang hilfreich sein können.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Veranstaltungen

Di 27

GitLab Training | Online

Oktober 27 @ 09:00 - Oktober 28 @ 17:00
Di 27

Graylog Training | Online

Oktober 27 @ 09:00 - Oktober 28 @ 17:00
NETWAYS Headquarter | Nürnberg
Nov 04

Vorstellung der Monitoring Lösung Icinga 2

November 4 @ 10:30 - 11:30
NETWAYS Headquarter | Nürnberg
Nov 24

Elastic Stack Training | Online

November 24 @ 09:00 - November 26 @ 17:00
Dez 01

Foreman Training | Nürnberg

Dezember 1 @ 09:00 - Dezember 2 @ 17:00
NETWAYS Headquarter | Nürnberg