<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>cloudmaniac.net</title>
    <link>https://cloudmaniac.net/</link>
    <description>Recent content on cloudmaniac.net by Romain Decker</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <copyright>© 2023 - cloudmaniac.net.</copyright>
    <lastBuildDate>Thu, 25 Mar 2021 16:00:00 +0100</lastBuildDate>
    
	<atom:link href="https://cloudmaniac.net/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Create Complex Search Queries using the NSX-T Search API</title>
      <link>https://cloudmaniac.net/nsx-t-search-api/</link>
      <pubDate>Thu, 25 Mar 2021 16:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/nsx-t-search-api/</guid>
      <description>&lt;p&gt;The &lt;strong&gt;NSX-T search function&lt;/strong&gt; is compelling: you can &lt;strong&gt;search for objects using various criteria throughout the NSX-T inventory&lt;/strong&gt;. You can not only just type something to query (a name, a UUID, etc.) and you will get all relevant results, but also create queries using a &lt;strong&gt;search pattern&lt;/strong&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2021/03/nsx-t-full-text-search-ui.png&#34;
         alt=&#34;NSX-T search function in the user interface&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;The search results are sorted by &lt;strong&gt;relevance&lt;/strong&gt;, and you can filter these results based on your search query. The search function helps with &lt;strong&gt;auto-completion&lt;/strong&gt; and suggestions: in the example above, it provides me a list of tags from which I can choose.&lt;/p&gt;
&lt;p&gt;Another example below: I want to list all Tier-1 gateways with the word &lt;code&gt;terraform&lt;/code&gt; in the description.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2021/03/nsx-t-full-text-search-ui-terraform.png&#34;
         alt=&#34;NSX-T search function: search for all tier-1 gateways with a specific description&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;Now, that&amp;rsquo;s in the UI: it&amp;rsquo;s great, but what if you need to get some information hidden in the UI on objects that could only be found using a search query? I had recently to look for specific NSX-T objects ID (for a PowerShell function) and I was struggling on how to construct my query.&lt;/p&gt;
&lt;p&gt;Fortunately, Thomas Vigneron (NSBU PM) had the answer! While the search feature was always available in the UI, NSX-T 3.0 added the &lt;a href=&#34;https://vdc-download.vmware.com/vmwb-repository/dcr-public/483ea8e7-55dd-49e4-8cff-3b4330cc2201/4079cc99-e292-4322-8823-286e02d7d9b6/api_includes/method_QuerySearch.html&#34;&gt;search API&lt;/a&gt; &lt;code&gt;GET /policy/api/v1/search/query&lt;/code&gt; which allows to do a &lt;strong&gt;full-text search API request&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To get the same result as my first example above, I use the following request: &lt;code&gt;GET /policy/api/v1/search?query=resource_type:(PolicyNatRule) AND (tags.tag:&amp;quot;urn:vcloud:org:63035a23-560f-484b-90fc-c691778b6d10&amp;quot;)&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2021/03/nsx-t-full-text-search-api-query-postman-get-nat-rules-per-org-vdc-vcd-vmware-cloud-director.png&#34;
         alt=&#34;NSX-T Search API: full-text search API request&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;The &lt;strong&gt;search API supports a wide list of resource types&lt;/strong&gt; you can search on, as well as &lt;strong&gt;wildcards&lt;/strong&gt; and &lt;strong&gt;boolean operators&lt;/strong&gt; (AND, OR, NOT).&lt;/p&gt;
&lt;p&gt;Check for the complete description and documentation in the &lt;a href=&#34;https://code.vmware.com/apis/1124/nsx-t&#34;&gt;NSX-T Data Center Rest API Guide&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Rehearse Your Presentations with Presenter Coach in PowerPoint</title>
      <link>https://cloudmaniac.net/rehearse-slide-show-powerpoint-presenter-coach/</link>
      <pubDate>Fri, 19 Mar 2021 15:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/rehearse-slide-show-powerpoint-presenter-coach/</guid>
      <description>&lt;p&gt;When it comes to presenting to an audience (either in person or remotely), there are 3 categories of people:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;People who naturally excel in this exercise&lt;/li&gt;
&lt;li&gt;People who need to train&lt;/li&gt;
&lt;li&gt;People who don&amp;rsquo;t care about how they deliver the information&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I belong to the second category, and as such, I had to improve my soft skills. Nonetheless, training happens at a given time, and it&amp;rsquo;s easy to not apply everything you learned after a few years. Also, the feedback you can get from yourself is biased (oh really, thank you Captain Obvious).&lt;/p&gt;
&lt;p&gt;Earlier this week, I was surprised to discover this article from Microsoft: &lt;a href=&#34;https://www.microsoft.com/en-us/microsoft-365/blog/2021/03/17/improve-your-presenting-skills-with-additional-platforms-and-new-features-for-powerpoint-presenter-coach/&#34;&gt;Improve your presenting skills with additional platforms and new features for PowerPoint Presenter Coach&lt;/a&gt;. Apparently, &lt;strong&gt;Presenter Coach&lt;/strong&gt; has been available on the web version of PowerPoint for a while now, but this was the first time I heard about it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Presenter Coach evaluates your pacing, pitch, your use of filler words, informal speech, euphemisms, and culturally sensitive terms, and it detects when you&amp;rsquo;re being overly wordy or are simply reading the text on a slide.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In a nutshell, &lt;strong&gt;Presenter Coach leverages AI (Artificial Intelligence) to help anyone who wants to practice a speech/presentation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The feature is not yet available for PowerPoint on macOS (although it should come soon), so I tested it in the web version. On the Slide Show tab, select &lt;strong&gt;Rehearse with Coach&lt;/strong&gt; (see screenshot below); the presentation opens in a full-screen view (similar to Slide Show). Hit &lt;strong&gt;Get Started&lt;/strong&gt; at the lower right to begin rehearsing.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2021/03/powerpoint-rehearsal-presenter-coach-launch-rehearsae-with-coach.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;As you speak, Coach gives on-screen guidance (in the lower-right corner of the window) about pacing, inclusive language, use of profanity, filler words, and whether you&amp;rsquo;re reading the slide text. After each rehearsal, you get a &lt;strong&gt;report&lt;/strong&gt; that includes &lt;strong&gt;statistics and suggestions for improvements&lt;/strong&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2021/03/powerpoint-rehearsal-presenter-coach-report-1.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;The report includes generic data such as a summary (time spent and number of slides), but also &lt;a href=&#34;https://support.microsoft.com/en-us/office/suggestions-from-presenter-coach-25e7d866-c895-4aa1-9b90-089b70a4ea38&#34;&gt;recommendations&lt;/a&gt; in a variety of topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pace&lt;/li&gt;
&lt;li&gt;Fillers words usage&lt;/li&gt;
&lt;li&gt;Sensitive phrases&lt;/li&gt;
&lt;li&gt;Speech refinements&lt;/li&gt;
&lt;li&gt;Voice pitch&lt;/li&gt;
&lt;li&gt;Body language&lt;/li&gt;
&lt;li&gt;Repetitive language&lt;/li&gt;
&lt;li&gt;Originality (detects if you are reading your slides)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resources&#34;&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://support.microsoft.com/en-us/office/rehearse-your-slide-show-with-presenter-coach-cd7fc941-5c3b-498c-a225-83ef3f64f07b#ID0EBAGAAA=MacOS&#34;&gt;Rehearse your slide show with Presenter Coach&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>2021: Heads or Tails?</title>
      <link>https://cloudmaniac.net/welcome-2021/</link>
      <pubDate>Thu, 31 Dec 2020 11:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/welcome-2021/</guid>
      <description>&lt;p&gt;There are only a few hours left in 2020, what can we say&amp;hellip;&lt;strong&gt;what a year&lt;/strong&gt;! 😶 The house is quiet today (children are with their grandparents), so I&amp;rsquo;m taking a moment to write here.&lt;/p&gt;
&lt;p&gt;It is the case to say that 2020 did not go quite as planned, but I&amp;rsquo;m grateful my family and relatives were not more impacted. At the same time, I&amp;rsquo;m also sad for the people who lost someone (almost 2 million deads to this date), especially as it may have been related to others that didn&amp;rsquo;t respect restrictions and masks.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m also shocked that so many people prefers to believe in various conspiracies rather than trusting science.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/12/picard-facepalm.jpg&#34;
         alt=&#34;Facepalm&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;Enough of 2020, welcome 2021! I won&amp;rsquo;t make any predictions, nor any resolutions this time. I will only:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;do my best to spend more quality family time&lt;/li&gt;
&lt;li&gt;continue to enjoy &lt;a href=&#34;https://cloudmaniac.net/career-change-hello-vmware-cpsbu/&#34;&gt;my current role&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;do my best to be a good human/person&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks for your continued interest, and Happy New Year!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stay safe, be kind!&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>NSX-T Reference Design Guide - Updated Version for NSX-T 3.0</title>
      <link>https://cloudmaniac.net/nsx-t-reference-design-guide/</link>
      <pubDate>Mon, 21 Dec 2020 15:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/nsx-t-reference-design-guide/</guid>
      <description>&lt;p&gt;Christmas came early this year! An updated version of the &lt;a href=&#34;https://communities.vmware.com/t5/VMware-NSX-Documents/VMware-NSX-T-Reference-Design/ta-p/2778093&#34;&gt;NSX-T Reference Design Guide&lt;/a&gt; was published last Friday! 🙌&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;NSX-T Reference Design Guide&lt;/strong&gt; provides guidance and best practices for designing environments that leverage the capabilities of VMware NSX-T. It is targeted at virtualization and network architects interested in deploying NSX Data Center solutions.&lt;/p&gt;
&lt;h2 id=&#34;whats-new&#34;&gt;What&amp;rsquo;s New?&lt;/h2&gt;
&lt;p&gt;This 3rd iteration includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Design changes that goes with VDS with NSX&lt;/li&gt;
&lt;li&gt;VSAN baseline recommendation for management and edge components&lt;/li&gt;
&lt;li&gt;VRF based routing and other enhancements&lt;/li&gt;
&lt;li&gt;Updated security functionality&lt;/li&gt;
&lt;li&gt;Performance updates&lt;/li&gt;
&lt;li&gt;&amp;hellip;and much more!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This document is organized into several chapters. Chapter 2 to 6 explain the &lt;strong&gt;architectural building blocks of NSX-T&lt;/strong&gt; as a full-stack solution, providing a detailed functioning of NSX-T components, features and scope. They also describe the components and functionality utilized for security use cases. These chapters lay the groundwork to help understand and implement the design guidance described in the design chapter.&lt;/p&gt;
&lt;p&gt;The design chapter (Chapter 7) examines detailed use cases of network virtualization and recommendations of either best practices or leading practices based on the type of use case or design form factor. It offers guidance for a variety of factors including physical infrastructure considerations, compute node requirements, and variably sized environments from small to enterprise scale.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: The NSX-T Reference Design Guide does not cover installation, and operational monitoring and troubleshooting. For further details, review the &lt;a href=&#34;https://docs.vmware.com/en/VMware-NSX-T-Data-Center/index.html&#34;&gt;NSX-T installation and administration guides&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Besides this &lt;strong&gt;updated Reference Design Guide for NSX-T&lt;/strong&gt;, several other NSX-T reference guides have been published or updated recently, for a total number of 714 pages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://communities.vmware.com/t5/VMware-NSX-Documents/NSX-T-3-1-Multi-Location-Design-Guide-Federation-Multisite/ta-p/2810327&#34;&gt;NSX-T 3.1 Multi-Location Design Guide (Federation + Multisite)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://communities.vmware.com/t5/VMware-NSX-Documents/NSX-T-3-0-Operation-Guide/ta-p/2814610&#34;&gt;NSX-T 3.0 Operations Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://communities.vmware.com/t5/VMware-NSX-Documents/NSX-T-3-0-Security-Reference-Guide/ta-p/2815645&#34;&gt;NSX-T 3.0 Security Reference Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Happy Reading!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>3 Platforms where to Find Free Stock Images</title>
      <link>https://cloudmaniac.net/free-stock-photos/</link>
      <pubDate>Wed, 11 Nov 2020 17:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/free-stock-photos/</guid>
      <description>&lt;p&gt;We&amp;rsquo;ve all heard the old adage: &lt;code&gt;a picture is worth a thousand words&lt;/code&gt;. But have you ever wondered why? Visualization works from a human perspective because &lt;strong&gt;we respond to and process visual data better than any other type of data&lt;/strong&gt;. In fact, the human brain processes images &lt;a href=&#34;http://misrc.umn.edu/workingpapers/fullpapers/1986/8611.pdf&#34;&gt;60,000 times faster than text&lt;/a&gt;, and 90 percent of information transmitted to the brain is visual.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why &lt;strong&gt;illustrating content is vital for grabbing attention and getting your message across&lt;/strong&gt;. But sometimes, a diagram is not always sufficient to convey an idea or to transmit an emotion.&lt;/p&gt;
&lt;p&gt;Where to find those images if you don&amp;rsquo;t have enough visual materials? Of course, platforms such as &lt;a href=&#34;https://www.istockphoto.com/&#34;&gt;iStock&lt;/a&gt; (by Getty Images) and &lt;a href=&#34;https://www.shutterstock.com/&#34;&gt;Shutterstock&lt;/a&gt; exist, but their content is not free.&lt;/p&gt;
&lt;p&gt;Luckily, there are alternatives. I&amp;rsquo;ve compiled a shortlist of the 3 sites with free stock photos I&amp;rsquo;m using to illustrate my content.&lt;/p&gt;
&lt;h2 id=&#34;unsplash&#34;&gt;Unsplash&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://unsplash.com/&#34;&gt;Unsplah&lt;/a&gt; is my default goto platform to find free stock images to illustrate my content. It&amp;rsquo;s hard to explain why: maybe it&amp;rsquo;s because images look more natural than traditional stock images (they don’t look false)? Because they are shot and shared by photographers that know how to craft photos to create emotion?&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/11/free-stock-images-unsplash-security-topic.jpg&#34;
         alt=&#34;Looking for a free photos to illustrate security&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;The photos on Unsplash are free to use and can be used for most commercial, personal projects, and for editorial use. You do not need to ask permission from or provide credit to the photographer or Unsplash, &lt;a href=&#34;https://help.unsplash.com/en/articles/2534409-crediting-photographers&#34;&gt;although it is appreciated when possible&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More info: &lt;a href=&#34;https://unsplash.com/license&#34;&gt;Unsplash License&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;pixabay&#34;&gt;Pixabay&lt;/h2&gt;
&lt;p&gt;With almost 2 millions images available, &lt;a href=&#34;https://pixabay.com/&#34;&gt;Pixabay&lt;/a&gt; is definitively one of the major players in that area. Another big advantage of Pixabay is that they also offer free vectors and illustrations.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/11/free-stock-photos-images-pixabay.jpg&#34;
         alt=&#34;Almost 2 millions of stock images on Pixabay&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;code&gt;All contents are released under the Pixabay License, which makes them safe to use without asking for permission or giving credit to the artist - even for commercial purposes.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://pixabay.com/service/faq/&#34;&gt;Learn more on Pixabay&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;pexels&#34;&gt;Pexels&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.pexels.com/&#34;&gt;Pexels&lt;/a&gt; is another great collection of free stock photos: they even provide free stock videos!&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/11/free-stock-photos-images-pexels.jpg&#34;
         alt=&#34;Pexels is another great collection of free stock photos and videos!&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;All photos and videos on Pexels can be downloaded and used for free. You can have a look to the &lt;a href=&#34;https://www.pexels.com/license/&#34;&gt;license&lt;/a&gt; to understand what is allowed or not.&lt;/p&gt;
&lt;h2 id=&#34;my-own-photos&#34;&gt;My Own Photos&lt;/h2&gt;
&lt;p&gt;Finally, I also sometimes use some of my pictures, taken over the past 10 years. Unfortunately, I don&amp;rsquo;t shoot as often as I would like&amp;hellip;If you&amp;rsquo;re interested, you can have a look at my portfolio on &lt;a href=&#34;https://500px.com/p/romain&#34;&gt;500px.com/romain&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Fix &#34;Too many authentication failures&#34; SSH error</title>
      <link>https://cloudmaniac.net/how-to-fix-ssh-too-many-authentication-failures/</link>
      <pubDate>Thu, 05 Nov 2020 16:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/how-to-fix-ssh-too-many-authentication-failures/</guid>
      <description>&lt;p&gt;I finally took the time to troubleshoot an issue that had been bothering me for some time. I have been experiencing more and more a &lt;code&gt;Too many authentication failures&lt;/code&gt; error while connecting to remote systems using &lt;strong&gt;SSH&lt;/strong&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Received disconnect from a.b.c.d port 22:2: Too many authentication failures
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I noticed this was especially happening on &lt;a href=&#34;https://vmware.github.io/photon/&#34;&gt;Photon OS&lt;/a&gt; appliances (almost all VMware appliances now).&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/11/ssh-too-many-authentication-failures-photon-os.png&#34;
         alt=&#34;SSH error: Too many authentication failure when trying to connect to Photon OS&#34;/&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;troubleshoot-the-too-many-authentication-failures-error&#34;&gt;Troubleshoot the Too many authentication failures error&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR: this error is often caused by inadvertently offering too many SSH keys to the server (compared to the &lt;code&gt;MaxAuthTries&lt;/code&gt; parameter). The server will reject any key after too many keys have been offered.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;How to troubleshoot the SSH client? Easy, just RTFM! 😅&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;-v      Verbose mode. Causes ssh to print debugging messages about its progress.
        This is helpful in debugging connection, authentication, and configuration problems.
        Multiple -v options increase the verbosity.  The maximum is 3.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So, running the SSH client &lt;code&gt;-v&lt;/code&gt; switch allows you to run the SSH connection in verbose mode, which prints useful debugging information. There are different verbosity levels; using multiple &lt;code&gt;-v&lt;/code&gt; flags increases the verbosity (maximum verbosity level is 3).&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/11/ssh-too-many-authentication-failures-troubleshoot.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;SSH uses &lt;strong&gt;public-key cryptography&lt;/strong&gt; to authenticate the remote computer and allow it to authenticate the user, if necessary. There are several ways to use SSH; one is to use automatically generated public-private key pairs to simply encrypt a network connection, and then use password authentication to log on. Another is to use a manually generated public-private key pair to perform the authentication, allowing users or programs to log in without having to specify a password.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s analyze the portion of the output that interests us.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;debug1: Offering public key: /Users/rdecker/.ssh/id_rsa RSA SHA256:&amp;lt;redacted&amp;gt;
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /Users/rdecker/.ssh/id_dsa
debug3: no such identity: /Users/rdecker/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /Users/rdecker/.ssh/id_ecdsa
debug3: no such identity: /Users/rdecker/.ssh/id_ecdsa: No such file or directory
debug1: Offering public key: /Users/rdecker/.ssh/id_ed25519 ED25519 SHA256:&amp;lt;redacted&amp;gt;
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 1
Received disconnect from 10.67.29.112 port 22:2: Too many authentication failures
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can notice that 2 keys are offered for the authentication (&lt;code&gt;id_rsa&lt;/code&gt; and the &lt;code&gt;id_ed25519&lt;/code&gt;) before the password. I indeed recently decided to switch to an &lt;strong&gt;Ed25519&lt;/strong&gt; key (based on Elliptic Curve Digital Signature Algorithm - ECDSA) instead of a typical RSA key. However, I did not delete my RSA key from my &lt;code&gt;~/.ssh/&lt;/code&gt; folder. 😬&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: If you&amp;rsquo;re interested in knowing more about Ed25519, the &lt;a href=&#34;https://blog.peterruppel.de/ed25519-for-ssh/&#34;&gt;Ed25519 for SSH&lt;/a&gt; article is very complete.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Why does this happen more often on Photon OS and not on my regular Ubuntu or CentOS templates? The answer is quite simple: the SSH daemon is enforced to only accept 2 authentication tries in Photon OS.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/11/vmware-photon-os-ssh-default-config.png&#34;
         alt=&#34;Photon OS SSH config: MaxAuthTries is set to 2 by default&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;code&gt;MaxAuthTries&lt;/code&gt; specifies the maximum number of authentication attempts permitted per connection. Each key tried by the SSH client counts as one authentication attempt. Once the number of failures reaches half this value, additional failures are logged. Setting the &lt;code&gt;MaxAuthTries&lt;/code&gt; parameter to a low number will minimize the risk of successful brute force attacks. While the default is 6, Photon OS is configured to accept only 2.&lt;/p&gt;
&lt;h2 id=&#34;fix-the-too-many-authentication-failures-error&#34;&gt;Fix the Too many authentication failures error&lt;/h2&gt;
&lt;p&gt;In my situation, the fix was easy: I&amp;rsquo;m not using my RSA key anymore, so I deleted it. 😎&lt;/p&gt;
&lt;p&gt;Alternate solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increase the &lt;code&gt;MaxAuthTries&lt;/code&gt; on the server (definitively an option, but I don&amp;rsquo;t recommend it)&lt;/li&gt;
&lt;li&gt;Edit the &lt;code&gt;~/.ssh/config&lt;/code&gt; (on the client) and add &lt;code&gt;IdentitiesOnly&lt;/code&gt; blocks so that a connection to a specific host only tries the associated key&lt;/li&gt;
&lt;li&gt;Force non-key authentication, e.g.: &lt;code&gt;ssh -o PubkeyAuthentication=no romain@hostname.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;moral-of-the-story&#34;&gt;Moral of the story&lt;/h2&gt;
&lt;p&gt;I was happy to finally identify and fix this recurring issue. It wasn&amp;rsquo;t very complex to troubleshoot and fix it; don&amp;rsquo;t wait too long before solving your issues, it&amp;rsquo;s sometimes only a matter of minutes!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>[Tooling] Disk Usage with Duf</title>
      <link>https://cloudmaniac.net/duf-disk-usage/</link>
      <pubDate>Thu, 08 Oct 2020 16:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/duf-disk-usage/</guid>
      <description>&lt;p&gt;One of the first Linux/UNIX command-line I learned 20 years ago was &lt;code&gt;du&lt;/code&gt;: &lt;code&gt;du&lt;/code&gt; stands for &lt;strong&gt;d&lt;/strong&gt;isk &lt;strong&gt;u&lt;/strong&gt;sage, and is widely used to estimate file space usage (either for a complete system, for a partition, for a folder or for individual files).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/muesli/duf&#34;&gt;&lt;strong&gt;Duf&lt;/strong&gt;&lt;/a&gt; is another CLI tool to display &lt;strong&gt;disk usage details&lt;/strong&gt;, but that time with a user-friendly layout (in a table format) that automatically adjusts to your terminal&amp;rsquo;s width.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/10/duf-disk-usage-free-space-utility-all.png&#34;
         alt=&#34;Duf is a command line utility to find disk usage in Linux and Unix-like systems&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;As you can see in the output above, this command line lists the following details:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mounted devices (and associated mount point)&lt;/li&gt;
&lt;li&gt;total size, used and free disk soace for each partitions&lt;/li&gt;
&lt;li&gt;filesystem type and name&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Developed in Go, &lt;code&gt;duf&lt;/code&gt; is available available for Linux, macOS and Windows and has some nice embedded features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sort the results according to your needs (by mountpoint, size, used space, inodes, etc.)&lt;/li&gt;
&lt;li&gt;groups &amp;amp; filters devices&lt;/li&gt;
&lt;li&gt;show/hide specific information or columns&lt;/li&gt;
&lt;li&gt;output the disk space in JSON format&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also list inode information instead of block usage with &lt;code&gt;duf --inodes&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/10/duf-disk-usage-free-space-utility-inodes.png&#34;/&gt;
&lt;/figure&gt;

</description>
    </item>
    
    <item>
      <title>Do Not Run a Container with the :latest Tag</title>
      <link>https://cloudmaniac.net/docker-container-never-use-latest-cicd-pipeline/</link>
      <pubDate>Fri, 26 Jun 2020 15:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/docker-container-never-use-latest-cicd-pipeline/</guid>
      <description>&lt;p&gt;Never ever use the &lt;code&gt;latest&lt;/code&gt; tag when building Docker images&amp;hellip;been there, done that, it was not pretty! 😅&lt;/p&gt;
&lt;p&gt;If you remember (if you don&amp;rsquo;t, check &lt;a href=&#34;https://cloudmaniac.net/wordpress-to-hugo-migration-1-why/&#34;&gt;here&lt;/a&gt;), &lt;strong&gt;I&amp;rsquo;m using Github Actions as a pipeline to publish my blog post.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[&amp;hellip;] I commit my new content (or my changes) to a private GitHub repository. The commit will trigger a GitHub Actions workflow that will create a container, install Hugo with a specific version, clone my repository, build the content using the hugo CLI, sync the generated HTML / CSS / images to AWS S3 and invalidate my CloudFront distribution.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After writing my &lt;a href=&#34;https://cloudmaniac.net/visual-studio-code-new-terraform-extension/&#34;&gt;Full 0.12 Syntax Support with the new Terraform Visual Studio Code Extension&lt;/a&gt; post, I pushed the new content to my Github repository, and I left my desk. When I checked later, I noticed that the article was not online (usually it takes a few minutes). &lt;strong&gt;It didn&amp;rsquo;t take me long to discover that my workflow in Github Actions was failed.&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/06/never-use-latest-breaking-cicd-pipeline.png&#34;
         alt=&#34;Python missing in my workflow. From an Alpine:latest image, ERROR: unsatisfiable constraints: python (missing)&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;As you can see in the screenshot above, I had a &lt;strong&gt;Python&lt;/strong&gt; dependency error (Python is required for AWS CLI in my publication workflow).&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RUN apk -v --update add python
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ERROR: unsatisfiable constraints:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  python &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;missing&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    required by: world&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;python&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I&amp;rsquo;m using &lt;strong&gt;Alpine&lt;/strong&gt; as the base image for the container that handles the publication process. But, &lt;strong&gt;Alpine&lt;/strong&gt; recently stopped providing the &lt;code&gt;python&lt;/code&gt; package (more precisely in 3.12). &lt;strong&gt;In a Dockerfile, the FROM instruction specifies the parent image from which you are building&lt;/strong&gt;. Mine was &lt;code&gt;FROM alpine:latest&lt;/code&gt;&amp;hellip;which means that it picked the latest Alpine image where Python was missing.&lt;/p&gt;
&lt;p&gt;To fix it, I &lt;a href=&#34;https://github.com/cloudmaniac/gohugo-action/commit/d60c162d3a7fc32508d7af90fa28720e3314a471#diff-3254677a7917c6c01f55212f86c57fbf&#34;&gt;corrected&lt;/a&gt; the &lt;code&gt;FROM alpine:latest&lt;/code&gt; intruction to &lt;code&gt;FROM alpine:3.11.6&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Obviously, I could change to &lt;code&gt;python2&lt;/code&gt; or &lt;code&gt;python3&lt;/code&gt;, but that&amp;rsquo;s not the goal of this blog post today. 😉&lt;/p&gt;
&lt;p&gt;In closing, if you use &lt;code&gt;latest&lt;/code&gt;, you always depend on the people that maintain the images.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: I&amp;rsquo;m talking about Docker images here, but it&amp;rsquo;s true for any component/system that have use such tags.&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Domain-specific DNS Client Configuration on macOS</title>
      <link>https://cloudmaniac.net/macos-domain-specific-dns-client-configuration/</link>
      <pubDate>Tue, 16 Jun 2020 16:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/macos-domain-specific-dns-client-configuration/</guid>
      <description>&lt;p&gt;Sometimes it&amp;rsquo;s good to have &lt;strong&gt;separate DNS servers for different domains&lt;/strong&gt;. One of my colleagues asked me this morning how to avoid filling up his &lt;code&gt;/etc/hosts&lt;/code&gt; file to access a new environment I&amp;rsquo;m building for him.&lt;/p&gt;
&lt;p&gt;Take the example of a lab: it is common amongst IT professionals to have a &lt;strong&gt;homelab&lt;/strong&gt; or a &lt;strong&gt;corporate lab&lt;/strong&gt; to test new software, gain new skills, or troubleshoot a problem. It is also quite common to use a VPN to connect to your lab or the corporate network.&lt;/p&gt;
&lt;p&gt;Most of the time, &lt;strong&gt;different environments may need different DNS servers than those inherited by DHCP from your home or corporate network&lt;/strong&gt;; I&amp;rsquo;m sure you can see where this is headed. 😬&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll take my lab as an example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I connect to my lab using a VPN.&lt;/li&gt;
&lt;li&gt;The DNS servers configured in macOS are the ones assigned from my home (or corp.) network.&lt;/li&gt;
&lt;li&gt;My lab has two Active Directory servers, which also act as DNS servers for the lab components.&lt;/li&gt;
&lt;li&gt;The domain used is &lt;code&gt;sddc.lab&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;How can I make sure to use my lab DNS servers for this particular &lt;code&gt;sddc.lab&lt;/code&gt; domain?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As I&amp;rsquo;m using macOS, there is an easy way to solve that challenge: &lt;strong&gt;macOS uses a DNS search strategy that supports multiple DNS client configurations&lt;/strong&gt;. To use that capability, I only need to create a &lt;code&gt;sddc.lab&lt;/code&gt; file in the &lt;code&gt;/private/etc/resolver/&lt;/code&gt; folder with the &lt;strong&gt;nameservers to use for that particular domain&lt;/strong&gt; and I&amp;rsquo;m all set! 🙌&lt;/p&gt;
&lt;p&gt;From this moment on, all DNS requests for the &lt;code&gt;sddc.lab&lt;/code&gt; (and subdomains) will go directly to the specified nameservers while all other requests will go the default nameservers configured in &lt;code&gt;/etc/resolv.conf&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/06/per-zone-dns-resolution-for-lab-homelab-macos-trick.png&#34;
         alt=&#34;Per-zone DNS resolution on macOS - Useful trick for lab/homelab&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;My &lt;code&gt;/private/etc/resolver/sddc.lab&lt;/code&gt; only contains the 2 nameservers to use for that particular domain. Other configuration options are available, please check the &lt;a href=&#34;https://www.unix.com/man-page/osx/5/resolver/&#34;&gt;resolver(5) man page&lt;/a&gt; for more information.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nameserver a.b.c.d
nameserver a.b.c.e
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I end up having a default DNS configuration, which is configured and maintained by DHCP when I connect to my network or to the corporate one, as well as a &lt;strong&gt;domain-specific DNS client configuration&lt;/strong&gt;, which is really helpful to solve my lab FQDNs.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Full 0.12 Syntax Support with the new Terraform Visual Studio Code Extension</title>
      <link>https://cloudmaniac.net/visual-studio-code-new-terraform-extension/</link>
      <pubDate>Thu, 11 Jun 2020 16:00:00 +0100</pubDate>
      
      <guid>https://cloudmaniac.net/visual-studio-code-new-terraform-extension/</guid>
      <description>&lt;p&gt;I used many text editors during my career: Notepad++, Sublime Text, Atom, and finally &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;&lt;strong&gt;Visual Studio Code&lt;/strong&gt;&lt;/a&gt; which has remained my preferred &lt;strong&gt;code editor&lt;/strong&gt; since 2016.&lt;/p&gt;
&lt;p&gt;As I was using Terraform quite a lot in the past year, I naturally installed the &lt;strong&gt;Terraform Visual Studio Code Extension&lt;/strong&gt;. I was satisfied until I switched to Terraform 0.12: after that, I started to get warnings/errors, although my syntax was OK.&lt;/p&gt;
&lt;p&gt;For example (see screenshot below): &lt;em&gt;Data source terraform_remote_state does not exist&lt;/em&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/06/visual-studio-code-terraform-extension-error-remote-data-source.png&#34;
         alt=&#34;Data source terraform_remote_state does not exist error in Visual Studio Code&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;There was nothing really blocking as my code was still working, but I had a lot of red warnings, which was not visually pleasing. This was a known bug, and some workarounds existed, but I was impatient for it to be resolved.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s why I was thrilled when HashiCorp announced &lt;a href=&#34;https://www.hashicorp.com/blog/supporting-the-hashicorp-terraform-extension-for-visual-studio-code&#34;&gt;one month ago&lt;/a&gt; that they took over the support of the Visual Studio Code extension for Terraform.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I updated the Terraform extension to the latest version today, and TADAAA! No more errors!&lt;/strong&gt; 🙌&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://cloudmaniac.net/uploads/2020/06/visual-studio-code-terraform-extension.png&#34;
         alt=&#34;Full 0.12 Syntax Support with the new Terraform Visual Studio Code Extension&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;I was not able to fully test the new version of the extension, but it looks very promising:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New Language Server package from HashiCorp&lt;/li&gt;
&lt;li&gt;Syntax highlighting up to date with all HCL2 features (as needed for Terraform 0.12 and above)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Keep up the good work guys! \o/&lt;/p&gt;
&lt;p&gt;Resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.hashicorp.com/blog/announcing-the-terraform-visual-studio-code-extension-v2-0-0/&#34;&gt;Announcing the Terraform Visual Studio Code Extension v2.0.0&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;Visual Studio Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform&#34;&gt;Terraform Visual Studio Code Extension on the Visual Studio Code Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
