Show your Tool: Jenkins Pipeline Step Plugin for AWS

Michael Wittig – 02 Dec 2019

In this series, we present AWS tooling from the community for the community. We talk directly with the tool makers. Who are they? What problem does the tool solve? And what motivates them to contribute to open-source AWS tooling.

Show your Tool

This time, we talk with Thorsten Höger about the Jenkins Pipeline Step Plugin for AWS. You can connect with Thorsten on Twitter or LinkedIn.

cloudonaut: Tell us a little about yourself, your history with AWS, and your motivation to develop AWS tooling.
Thorsten Höger: I am CEO and cloud consultant at Taimos, where I am advising customers on how to use AWS. Being a developer, I focus on improving development processes and automating everything to build efficient deployment pipelines for customers of all sizes.

I organize the AWS User Group in Stuttgart (Germany), and I am frequently speaking at Meetups, BarCamps, and other community events. In 2017 I was appointed AWS Community Hero.

As a supporter of open-source software, I am maintaining or contributing to several projects, like test frameworks for AWS Lambda, Amazon Alexa, or developer tools for AWS CloudFormation and AWS CDK.

cloudonaut: What problem does your tool solve?
Thorsten Höger: I maintain a Jenkins plugin that provides pipeline steps to interact with the AWS API conveniently.

cloudonaut: Who should use your tool? Who should not?
Thorsten Höger: Obviously, it only works for Jenkins users that use Jenkins pipelines.

cloudonaut: Show us a short demo of your tool
Thorsten Höger: The following example deploys a static website.

  1. An IAM role is assumed by Jenkins to grant least privilege access to an AWS account
  2. A CloudFormation stack is created or updated to deploy the necessary AWS resources (S3 Bucket, CloudFront distribution, …)
  3. Files are uploaded to S3.
  4. The CloudFront distribution is invalidated.
withAWS(role:'admin', roleAccount:'123456789012') {
def outputs = cfnUpdate(stack:'my-stack', file:'template.yaml')
s3Upload(file:’index.html', bucket:outputs.BucketName, path:'index.html')
cfInvalidate(distribution:outputs.DistributionId, paths:['/*'], waitForCompletion: true)

cloudonaut: How can we use your tool?
Thorsten Höger: You can install the “Pipeline: AWS Steps” plugin via the Jenkins Update Center.

Andreas and Michael Wittig

Hej, Andreas & Michael here!

We launched the cloudonaut blog in 2015. Since then, we have published 325 articles: small tips and tricks, best practices, and service reviews. We enjoy writing about all things AWS a lot.

Do you like our blog posts and podcast episodes? Have you learned something new? Consider supporting us create in-depth and independent AWS content. Please help us with a monthly or one-time payment through GitHub Sponsors.

Start supporting us today!
  1. In Jenkins, click on Manage Jenkins
  2. Click on Manage Plugins
  3. Select the Available tab
  4. Search for aws steps
  5. Select and install the plugin

Installing the Jenkins Pipeline Step Plugin for AWS

cloudonaut: Where can we find more information about your tool?
Thorsten Höger: You can find all the available steps in the README on GitHub.

cloudonaut: Are you aware of tools that solve a similar problem than yours? What’s the difference?
Thorsten Höger: You could use the AWS CLI in a shell step, or you could use alternatives to Jenkins like GitLab CI, GitHub Action, CodePipeline, …

cloudonaut: What’s the roadmap for your tool? Are you planning any significant releases?
Thorsten Höger: No major changes are in the pipeline. But I add steps from time to time, and I’m always looking for contributions from the community.

To accommodate non-Jenkins users, I started AWS Authenticate. The new project helps you to configure your AWS access in CI/CD environments. You can set the region, the IAM profile to use, or assume IAM roles with one CLI call. For example:

#!/bin/bash -e
eval "$(aws-authenticate auth --role admin --roleAccount 123456789012)"
aws s3 cp index.html s3://my-bucket/index.html

cloudonaut: How do you stay motivated to maintain your open source project?
Thorsten Höger: I’m working as a freelancer, and I use the plugin in many customer projects to speed up pipeline development times. I’m also amazed about how many plugin users talk to me during events and say thank you.

cloudonaut: Are you attending any conferences within the next few months where the community can get in touch?
Thorsten Höger: Yes, I’m in Las Vegas this week at AWS re:Invent. I will give a talk on Tuesday morning about Using the AWS CDK construct libraries to meet enterprise compliance. Feel free to talk to me after the talk or meet me during Taco Tuesday with AWS Heroes.

What tools do you use to make your AWS work easier? Share your favorite tool with us!

Michael Wittig

Michael Wittig

I'm an independent consultant, technical writer, and programming founder. All these activities have to do with AWS. I'm writing this blog and all other projects together with my brother Andreas.

In 2009, we joined the same company as software developers. Three years later, we were looking for a way to deploy our software—an online banking platform—in an agile way. We got excited about the possibilities in the cloud and the DevOps movement. It’s no wonder we ended up migrating the whole infrastructure of Tullius Walden Bank to AWS. This was a first in the finance industry, at least in Germany! Since 2015, we have accelerated the cloud journeys of startups, mid-sized companies, and enterprises. We have penned books like Amazon Web Services in Action and Rapid Docker on AWS, we regularly update our blog, and we are contributing to the Open Source community. Besides running a 2-headed consultancy, we are entrepreneurs building Software-as-a-Service products.

We are available for projects.

Feedback? Questions? Drop me a line: Email, Twitter, LinkedIn.

Briefcase icon
Hire me