---
title: "Meetup: Puppet Development Kit and Managing a FortiGate Firewall"
description: Itility hosted a fruitful meetup about Puppet. We discovered the features of the new Puppet Development Kit (PDK) and walked through an interesting way to manage a FortiGate firewall with Puppet. Kevin van Reeuwijk from Puppet kickstarted the first topic. He showed how easy it is to start developing
image: https://blogs.itility.nl/hubfs/Visuals%20puppet%20240117_featured.png
---

[![itility](https://blogs.itility.nl/hubfs/blog/img/itility%20logo-01.png)](https://www.itility.nl)

- Your industry 
    - [Agriculture](https://www.itility.nl/agriculture)
    - [Energy](https://www.itility.nl/energy)
    - [Manufacturing](https://itility.nl/manufacturing)
- Our expertise 
    - [Business transformations](https://www.itility.nl/business-transformations)
    - [Software and data](https://www.itility.nl/software-development/)
    - [IT foundation](https://www.itility.nl/it-foundation)
    - [Managed services](https://www.itility.nl/managed-services)
    - [(Generative) AI](https://www.itility.nl/ai/)
- [Who we are](https://www.itility.nl/who-we-are)
- [Working at Itility](https://careers.itility.nl)
- [About](https://itility.nl/about) 
    - [About Itility](https://itility.nl/about)
    - [Offices](https://itility.nl/about#office-locations)
    - [Tech partners](https://itility.nl/tech-partners)
    - [Responsibility](https://itility.nl/responsibility)
- [Contact](https://www.itility.nl/#contact)

- Your industry 
    - [Agriculture](https://www.itility.nl/agriculture)
    - [Energy](https://www.itility.nl/energy)
    - [Manufacturing](https://itility.nl/manufacturing)
- Our expertise 
    - [Business transformations](https://www.itility.nl/business-transformations)
    - [Software and data](https://www.itility.nl/software-development/)
    - [IT foundation](https://www.itility.nl/it-foundation)
    - [Managed services](https://www.itility.nl/managed-services)
    - [(Generative) AI](https://www.itility.nl/ai/)
- [Who we are](https://www.itility.nl/who-we-are)
- [Working at Itility](https://careers.itility.nl)
- [About](https://itility.nl/about) 
    - [About Itility](https://itility.nl/about)
    - [Offices](https://itility.nl/about#office-locations)
    - [Tech partners](https://itility.nl/tech-partners)
    - [Responsibility](https://itility.nl/responsibility)
- [Contact](https://www.itility.nl/#contact)

[![Picture of Dennis Verdonschot](https://blogs.itility.nl/hubfs/Dennis%20Verdonschot-rond.png)](https://blogs.itility.nl/en/author/dennis-verdonschot?hsLang=en)

 Written by:  

## [Dennis Verdonschot](https://blogs.itility.nl/en/author/dennis-verdonschot?hsLang=en)

# Meetup: Puppet Development Kit and Managing a FortiGate Firewall

**Last** **January** **we** **hosted** **a** **fruitful** **meetup** **about** **Puppet. We** **discovered** **the** **features** **of** **the** **new** **Puppet** **Development** **Kit (PDK) and** **walked** **through** **an** **interesting** **way** **to** **manage** **a** **FortiGate** **firewall** **with** **Puppet.**

## **The new Puppet Development Kit (PDK)**

Kevin van Reeuwijk from Puppet kickstarted the first topic. He showed how easy it is to start developing a new Puppet module using the PDK. The PDK enables us to develop Puppet modules while using best practices and using the new integrated tools (Rspec) that allow you to test and publish the high-quality modules to the Puppet Forge.

## **Test** **your** **code, convert** **existing** **modules**

Kevin showed us the possibilities of the PDK when creating new modules. The tools integrated within the PDK enable you to take a previously developed module and convert it to a module that is compatible with the PDK, using the PDK convert command-line tool.

## **The future of PDK**

The launch of PDK is just a start. The backlog is full of interesting things like PDK-enabled container images for TravisCI, GitlabCI, and AppVeyor, and the possibility to build and publish to the Forge. Watch the whole presentation here or download the new PDK directly via your yum-based / apt-based package repositories or puppet.com if you use Mac or Windows.

## **Managing your FortiGate firewall policies, using our Puppet module.**

Mark presented the difficulties of firewall management. He first drafted the outlines comparing your firewall at home to an enterprise firewall that manages over 15 zones and 1,500 rules / policies, and is subject to up to 1,000 changes a year. Secondly, he described the tough process of determining his approach to managing all those changes, and how he implemented this approach in the FortiGate Puppet module.

## **Developing** **the** **module**

It was important to determine what would be automated. FortiGate firewalls are such complex devices, it would take months of full-time development to develop a module that manages every single aspect of it. There were lots of technical difficulties with regard to Puppet type naming and sequencing of firewall policies. For example, when you first block your TCP connections and then allow HTTPS, the second policy would not have any effect.

## **Simplifying management with higher-level types**

Mark showed how the management of FortiGate is being simplified for end users. In addition to creating Puppet resource types that manage individual policies, Mark demonstrated what he calls “composite” types. These higher-level (defined) types allow end users to manage firewall policies on application or node-group level, stripping away the need to specify all policies on a node-to-node or subnet-to-subnet basis. These composite types could be compared to security groups in Amazon Web Services or Microsoft Azure.

## **Watch and try it yourself**

We received positive reactions from the attendants. Want to receive more information? Leave your email address and we’ll make sure to share the presentation with you.

<iframe class="hs-responsive-embed-iframe hs-fullwidth-embed" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" xml="lang" src="https://player.vimeo.com/video/252887358?title=0&amp;byline=0&amp;portrait=0&amp;color=8dc7dc" width="425" height="350" allowfullscreen data-service="vimeo"></iframe>

 

[![back](https://blogs.itility.nl/hubfs/blog/img/button_back.png)Back to overview](https://blogs.itility.nl?hsLang=en)

Tags: [archive](https://blogs.itility.nl/en/tag/archive)

Share:

- [![](https://blogs.itility.nl/hubfs/blog/img/linked-in-02.png)](https://www.linkedin.com/shareArticle?mini=true&url=https://blogs.itility.nl/en/meetup-puppet-development-kit-managing-fortigate&title=Meetup:%20Puppet%20Development%20Kit%20and%20Managing%20a%20FortiGate%20Firewall&source=Itility)
- [![](https://blogs.itility.nl/hubfs/blog/img/socmedicons-04.png)](https://www.facebook.com/sharer/sharer.php?u=https://blogs.itility.nl/en/meetup-puppet-development-kit-managing-fortigate&t=Meetup:%20Puppet%20Development%20Kit%20and%20Managing%20a%20FortiGate%20Firewall)

# Author's picks

[![](https://blogs.itility.nl/hs-fs/hubfs/IAA-blog-Habesha-featured-image.jpg?width=345)](https://blogs.itility.nl/en/from-gut-feeling-to-data-driven-actions?hsLang=en)

[archive](https://blogs.itility.nl/en/topic/archive?hsLang=en#b-overview)

## [From gut feeling to data-driven actions](https://blogs.itility.nl/en/from-gut-feeling-to-data-driven-actions?hsLang=en)

[![](https://blogs.itility.nl/hs-fs/hubfs/Blogs/MLH%20130818/Hackabrain%201308%20visuals_Featured-image.png?width=345)](https://blogs.itility.nl/en/predicting-software-build-duration-a-regression-problem?hsLang=en)

[archive](https://blogs.itility.nl/en/topic/archive?hsLang=en#b-overview)

## [Predicting software build duration – a regression problem](https://blogs.itility.nl/en/predicting-software-build-duration-a-regression-problem?hsLang=en)

[![](https://blogs.itility.nl/hs-fs/hubfs/CustomerDay-Data-Thinking.png?width=345)](https://blogs.itility.nl/en/remote-connect-and-share-event?hsLang=en)

[archive](https://blogs.itility.nl/en/topic/archive?hsLang=en#b-overview)

## [Remote Connect & Share event](https://blogs.itility.nl/en/remote-connect-and-share-event?hsLang=en)

# Technology, Data, People

[Eindhoven (HQ)](https://itility.nl/about#nl-office)  
[Flight Forum 3360](https://goo.gl/maps/eEgqhvCsQ2wBY3rs6)  
 5657 EW, Eindhoven   
 The Netherlands

[info@itility.nl](mailto:info@itility.nl)  
[+31 (0)88 00 46 100](tel:+31880046100)

[San Diego](https://itility.nl/about#us-office)  
[13500 Evening Creek Dr N #120](https://maps.app.goo.gl/Z9wtjcQK6Jn8QGa88)  
 San Diego, CA 92128   
 United States

[info@us-itility.com](mailto:info@us-itility.com)  
[+1-858-325-0120](tel:+18583250120)

[Austin](https://itility.nl/about#us-office)[106 E 6th St #900](https://maps.app.goo.gl/tfFfowbYtwzCfwFN8)  
 Austin, TX 78701   
 United States

[info@us-itility.com](mailto:info@us-itility.com)  
[+1-858-325-0120](tel:+18583250120)

[Romania](https://itility.nl/about#romania-office)  
[Palas Campus Iași](https://maps.app.goo.gl/6KEC5iTi8RUtM1QTA)  
 B2 Building, 6th Floor  
 Romania

[contact@itility.nl](mailto:contact@itility.nl)  
[+31 (0)88 00 46 100](tel:+31880046100)

- [Linkedin](https://www.linkedin.com/company/itility)
- [Facebook](https://nl-nl.facebook.com/itilitybv)
- [YouTube](https://www.youtube.com/@itility-bv)
- [Mail](mailto:info@itility.nl)

 © Copyright - Itility 2026 | [Cookie policy](https://www.itility.nl/cookie-policy) | [Privacy policy](https://www.itility.nl/privacy)

[![Itility](https://blogs.itility.nl/hubfs/blog/img/itility%20logo-01.png)](https://itility.nl)