<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Ldap on ZachFi</title>
    <link>https://zach.fi/tags/ldap/</link>
    <description>Recent content in Ldap on ZachFi</description>
    <image>
      <title>ZachFi</title>
      <url>https://zach.fi/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://zach.fi/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.148.2</generator>
    <language>en</language>
    <lastBuildDate>Sat, 10 Apr 2021 10:53:57 -0600</lastBuildDate>
    <atom:link href="https://zach.fi/tags/ldap/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Database Schema Generation with Protobuf</title>
      <link>https://zach.fi/posts/ldap_schema_generation/</link>
      <pubDate>Sat, 10 Apr 2021 10:53:57 -0600</pubDate>
      <guid>https://zach.fi/posts/ldap_schema_generation/</guid>
      <description>&lt;p&gt;As I look to reduce the number of touch points that are required to make a
change to my personal system, I&amp;rsquo;m always thinking about how to reduce
complexity and leverage existing tooling. In this way, we can continue to
leverage an existing foundation to build out further abstractions. One such
lever I have worked on over the last year was using my gRPC protobuf definitions
to generate LDAP schema files that could be loaded into the server to match the
objects that I&amp;rsquo;d be working with in Go.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Schema troubles</title>
      <link>https://zach.fi/notes/schema_troubles/</link>
      <pubDate>Mon, 17 Feb 2020 14:30:18 -0800</pubDate>
      <guid>https://zach.fi/notes/schema_troubles/</guid>
      <description>&lt;p&gt;Auth8 has been loosing some custom schema for some reason I haven&amp;rsquo;t been able
to identify.  I&amp;rsquo;m wondering if some upgrade caused some issue when I didn&amp;rsquo;t
handle the upgrade properly, so perhaps loading the database from backup is the
right move.&lt;/p&gt;
&lt;p&gt;First, create a new jail for auth9 on olaf.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;profile::jail::host::jails&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;auth9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ip4_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%{hiera(&amp;#39;profile::jail::host::default_interface&amp;#39;)}|172.16.20.111/27&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ip6_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%{hiera(&amp;#39;profile::jail::host::default_interface&amp;#39;)}|2001:111:1111:20::515/120&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;properties&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;host_domainname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;l.znet&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Spin up the jail and sign the cert.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Junos Configuration Management</title>
      <link>https://zach.fi/posts/configuration-management-for-networks/</link>
      <pubDate>Sun, 13 Jan 2019 16:20:52 -0800</pubDate>
      <guid>https://zach.fi/posts/configuration-management-for-networks/</guid>
      <description>&lt;p&gt;Its been a year since my last post, and I&amp;rsquo;m thinking its time to make another.&lt;/p&gt;
&lt;p&gt;Lately I&amp;rsquo;ve been trying to work through some network management solutions to
try and define the problem more clearly. This is an interesting problem
primary because I&amp;rsquo;m unable to rely on my previous tool sets to get this done.
Namely, Puppet running on the host.&lt;/p&gt;
&lt;p&gt;There are a couple interesting Python tools for this purpose that I&amp;rsquo;d given a
spin, but the more I was working in them, the more I was wishing I was writing
in Go. Most of my actively maintained code these days is Go, and working in
two languages for personal infrastructure tooling means I can&amp;rsquo;t leverage the
libraries of one tool in another.&lt;/p&gt;</description>
    </item>
    <item>
      <title>User Management Patterns</title>
      <link>https://zach.fi/2016/03/26/user-management-patterns/</link>
      <pubDate>Sat, 26 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://zach.fi/2016/03/26/user-management-patterns/</guid>
      <description>&lt;p&gt;User management can be a bit of a sore subject for some admins, but I&amp;rsquo;ve found
it can really pay off when done correctly, though its not always clear what
that means.  I&amp;rsquo;ve been on both sides of that line in the past, sometimes when
the line moves, and sometimes not.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a believer that managing the users and groups in your organization
proficiently and with low overhead is important.  It should be done well, if
for no other reason, than to be able to state authoritatively &lt;em&gt;who&lt;/em&gt; should have
access to &lt;em&gt;what&lt;/em&gt; and &lt;em&gt;why&lt;/em&gt;, ideally requiring as little administrative time
as possible once the system is in place.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using LDAP for Puppet classification</title>
      <link>https://zach.fi/posts/puppet-classification-with-ldap/</link>
      <pubDate>Mon, 23 Nov 2015 00:00:00 +0000</pubDate>
      <guid>https://zach.fi/posts/puppet-classification-with-ldap/</guid>
      <description>&lt;p&gt;Over the last year, I&amp;rsquo;ve been slowly moving some of my private Puppet code to
use LDAP as a data source. Through this process, a bit of strategy, some tool
and some schema has emerged I&amp;rsquo;ll share here.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s worth noting that Puppet has had an &lt;a href=&#34;https://docs.puppetlabs.com/guides/ldap_nodes.html&#34;&gt;LDAP Node Classifier&lt;/a&gt;
for quite some time, probably longer than I&amp;rsquo;ve been using Puppet. Though
looking over the documentation, you wouldn&amp;rsquo;t know it, but the most useful bit
of this whole work is that fact that Puppet supports the configuration
variables necessary to make a connection to an LDAP server, &lt;strong&gt;and&lt;/strong&gt; those
variables are available for reference.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Storing Jail data in LDAP</title>
      <link>https://zach.fi/posts/2015-06-14-ldap-jails/</link>
      <pubDate>Sun, 14 Jun 2015 20:17:14 +0000</pubDate>
      <guid>https://zach.fi/posts/2015-06-14-ldap-jails/</guid>
      <description>&lt;p&gt;For the past several years, I&amp;rsquo;ve been running the majority of my lab services
out of FreeBSD jails. I don&amp;rsquo;t have but a handful of services to run and some
underpowered hardware to put them on, but jails have grown to become a staple
in how I deploy my private infrastructure. One such service that I run is LDAP.
I got a wild hare yesterday and though I&amp;rsquo;d glue the two of them together with a
bit of Puppet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Puppet with Fabric</title>
      <link>https://zach.fi/2014/08/15/fabric-with-puppet/</link>
      <pubDate>Fri, 15 Aug 2014 00:00:00 +0000</pubDate>
      <guid>https://zach.fi/2014/08/15/fabric-with-puppet/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.fabfile.org/&#34;&gt;Fabric&lt;/a&gt; describes itself as a &amp;ldquo;library and command-line tool for
streamlining the use of SSH for application deployment or systems
administration tasks&amp;rdquo;. To get this work done, Fabric uses what are called
&amp;ldquo;fabfiles&amp;rsquo;, which is just some python stored in a file called &lt;code&gt;fabfile.py&lt;/code&gt;. In
terms of execution, it works a lot like Rake from the Ruby world. You have a
base command, in this case &lt;code&gt;fab&lt;/code&gt; and each task is read from the &lt;code&gt;fabfile.py&lt;/code&gt;
and executed on request. Nothing too earth shattering.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
