N
Nico Schottelius
nico.schottelius.org · Personal blog · on HN since 2011
Nico Schottelius writes about Linux, system administration, his configuration tool cdist, and small projects like Simple Universal Time.
What HN saysHN links it for cdist as a lesser-known config management tool, for Simple Universal Time, and for notes on running Linux on laptops.
18HN people shared it
16linked it in comments
63stories submitted
228story points
3 years agolast shared
2011people per year2026
Most-shared posts
- 1Cdist6 people · first shared 2012
- 2Migrating away from Puppet to cdist (Python3)2 people · 94 points · first shared 2011 · 52 comments on HN
- 3OpenSSH: Expose remote forwarding ports as environment variable2 people · 2 points · first shared 2013 · discussion on HN
- 4Cdist tutorial2 people · first shared 2012
- 5Sut2 people · first shared 2013
- 6Finally iptables works the same on every Linux distro1 people · 38 points · first shared 2013 · 27 comments on HN
- 7Simple Universal Time1 people · 6 points · first shared 2013 · 15 comments on HN
- 8Cdist 4.4.2 has been released1 people · 3 points · first shared 2017 · discussion on HN
- 9Cdist 4.0.0 has been released1 people · 3 points · first shared 2016 · 1 comments on HN
- 10Cdist 4.1.0 has been released1 people · 3 points · first shared 2016 · discussion on HN
- 11First CM to support new FreeBSD pkg-ng: cdist 3.1.71 people · 3 points · first shared 2014 · discussion on HN
- 12Cdist 3.0.4 released with Debian and FreeBSD updates1 people · 3 points · first shared 2014 · discussion on HN
- 13Cdist 4.4.1 has been released1 people · 3 points · first shared 2016 · discussion on HN
- 14Cdist 2.1.0: a major configuration management release1 people · 2 points · first shared 2012 · discussion on HN
- 15The digital nomad's notebook (the quest)1 people · 2 points · first shared 2014 · 1 comments on HN
What HN people wrote when they linked it
benkaiser · 2023-10-12
Also relevant, from 10 years ago, Simple Universal Time. Takes it one step further and eradicates timezones.
https://www.nico.schottelius.org/docs/sut/
telmich · 2019-05-20
I've actually tried it on my new notebook a few days ago, it runs quite nice: https://www.nico.schottelius.org/blog/alpine-linux-on-the-hp-x360-1040…
preek · 2016-11-10
I run my Linux on a VM where I spend most of my time, so I have no first hand experience, but a friend of mine just bought a new MBP, installed Arch on it and blogged about it: http://www.nico.schottelius.org/blog/linux-on-macbook-pro-2016/
616c · 2014-03-14
If you really want some fucking shell scripts:
http://www.nico.schottelius.org/software/cdist/
reactor · 2013-02-19
Also there is cdist (http://www.nico.schottelius.org/software/cdist/) not so popular but interesting.
rasur · 2013-02-19
There's also cdist which is python and shell-script based - does not even need python on the target machine, only ssh and a posix shell.
check it out: http://www.nico.schottelius.org/software/cdist/
disclaimer: I work with the author, but not actually on the cdist codebase (not enough to brag about, anyway)
m0shen · 2012-10-30
There is also cdist (http://www.nico.schottelius.org/software/cdist/).
Some highlights:
• Python based
• Uses SSH key-based auth
• No central server required
• Only requires SSH and a Posix shell on the client
peterwwillis · 2012-01-10
I agree with the article, and would back up the commenter suggesting OP look at cdist (http://www.nico.schottelius.org/software/cdist/). The simplicity looks promising.
There is one thing that will completely fix configuration management in Linux, and that is: all software projects should bundle pre-cooked CM recipes. The problem of course is which CM tool should they support?
Until one tool ends up winning over all (and it does look like Puppet is in the lead) we should probably just start a wiki with "community approved" examples for all popular server software in each CM tool's config language. With some prodding the 3rd party vendors might just pick them up and package them, making it a de-facto standard that ships with the distro. Well, one can dream anyway.
obtu · 2012-01-04
The docs at http://www.nico.schottelius.org/software/cdist/man/2.0.4/man7/cdist.ht… are outdated, they mention a quickstart and a cdist-env that don't seem to exist: https://github.com/telmich/cdist/issues/6
nodata · 2012-01-04
cdist: For anyone looking for a tutorial this is (unfortunately all) that there is:
http://www.nico.schottelius.org/software/cdist/man/2.0.4/man7/cdist-tu…
More docs under:
http://www.nico.schottelius.org/software/cdist/man/2.0.4/man7/
puppet: Making the error messages a bit better and switching to ssh as a transport mechanism would make a lot of people happy.
gizzlon · 2012-01-04
Seem to rely on using password-less ssh as root!
So one machine can ssh into all your servers as root? [0]
Sounds dangerous.. There's a reason you would normally protect your ssh keys with a passphrase. Do you really want leaked file(s) to permit root login to others servers?
Think it should at least:
- Use authorized_keys to limit what can be done with the key
- use ssh_agent instead of keys to somewhat limit the exposure if/when the laptop with cdist is stolen/cloned/hacked.
[0] http://www.nico.schottelius.org/software/cdist/man/2.0.4/man7/cdist-tu…
nwmcsween · 2011-04-24
Relevant reasoning of why by the author http://www.nico.schottelius.org/blog/migrating-away-from-puppet-to-cdi…
ymse · 2016-05-26
Which design flaws are you referring to? As a recent Salt convert (and Puppet expert), I was perplexed as to why such a nice tool would have a man page 40x longer than bash.
Turns out it includes extensive documentation for all states supported by Salt, generated from the online documentation. Compare this to the Puppet manual:
$ man puppet
PUPPET(8) Puppet manual PUPPET(8)
NAME
puppet
See ´puppet help´ for help on available puppet subcommands
Obviously no-one will be using everything that Salt supports, so it would be nice if it was broken into sub-sections. But I much prefer having all documentation available in a manual to looping through every module and run "rdoc" as in the Puppet case.
Any sufficiently popular configuration management tool will have equally long documentation.
There are a couple of simpler options available:
http://www.nico.schottelius.org/software/cdist/
https://github.com/brandonhilkert/fucking_shell_scripts
tomkinstinch · 2016-01-20
A challenge I've had with Autossh (and OpenSSH for that matter) is in getting the listen port during remote (reverse) tunnels when it is dynamically assigned via '-R 0:localhost:$SOMEPORT' where $SOMEPORT is on the machine originating the reverse tunnel, and 0 is a dynamically assigned open port on the relay/remote machine. It doesn't look like there is a good way[1] to get the listen port from the originating side (remotehost:$DYNPORT) without inspecting ssh stdout (complicated when using Autossh via systemd). Any ideas? On the remote side it is easy to find the listen port provided you have sudo access, but seemingly impossible without [2]. On the local side I probably just need to pipe stdout to a regex to find the right string and then redirect the captured port number to a file or named pipe, but it seems like it ought to be easier to get dynamic port assigned on the remote side from the local end of the tunnel.
1. http://www.nico.schottelius.org/blog/openssh-6.2-add-callback-function…
2. https://gist.github.com/tomkinsc/c2932097796155f4fd94
vezzy-fnord · 2015-05-30
In a way, advocates of pure static linking are like anti-vaccine advocates.
Holy fuck, this is one of the most absurd exaggerations I've read in some time. I'm assuming you have a very strong and convincing reason to justify this statement.
Here's a killer application of dynamic linking: NSS.
...
Really? NSS?
OK, so static NIS/YP may not be good at all, but that doesn't change that NSS and the nscd (name server cache daemon) have been amongst the buggiest and most brittle components in glibc, on top of glibc's sequential DNS resolution. It's so bad the Busybox developers had to write a single-threaded fork-based alternative just to deal with its inherent resource exhaustion issues (see the comments in this software: http://busybox.net/~vda/unscd/).
And this: http://www.nico.schottelius.org/blog/nscd-bugs/
musl libc (ever growing in popularity in embedded and other fields for its standards compliance, robustness and implementation simplicity) doesn't support NSS and doesn't intend to, instead researching several alternative methods, the third one probably optimal: http://wiki.musl-libc.org/wiki/Open_Issues#NIS.2FLDAP.2Fother_user_dat…
And if you think this problem hasn't been solved so much more elegantly before, look into the details of Plan 9's ndb and factotum.
PAM is another good example.
bsd_auth is much better: http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man3/auth_appro…
drinchev · 2013-06-10
From "Motivation" [1]
> To place a call, you have to find out
> in which time zone the target person is
> how much offset to UTC this particular time zone has
> remember the delta from my time zone to UTC
> create the delta from both time zones
> find a good time for a call
> This is quite cumbersome and wastes a lot of energy world wide, every day.
So now I will not have to find the timezone, but I'll have to take a look at something like "SUT Sunrise World Map" and figure out which part of the day-night cycle is the destination.
I agree, this will help me when I travel from Europe to the States - since I will not need to adjust my mind and freak out when I see my watch, but when I go there I'll have to adapt to something else, different than timezone.
P.S. I like the idea of 1 min = 100 seconds, My programmer's background and SUT will give me something like 10 megaseconds = 1 hour, which is nice.
[1] http://www.nico.schottelius.org/docs/sut/