Daniel Stender: My work for Debian in April
This month I've worked on the these things for Debian:
To begin with that, I've set up a Debhelper sequencer script for dh-buildinfo1, this
add-on now can be used with
dh $@ --with buildinfo in deb/rules instead of having to
explicitly call it somewhere in an override.
Debops
I've set up initial Debian packages of Debops2, a collection of fine crafted
Ansible roles and playbooks especially for Debian servers (servers which run on Debian),
which are shipped with a couple of helper and wrapper scripts in Python3.
There are two binary packages, one for the toolset (debops), and the other for the
playbooks and roles of the project (debops-playbooks).
The application is easy to use, just initialize a new project with debops-init foo
and add your server(s) to foo/ansible/inventory/hosts belonging to groups representing
services and things you want to employ on them.
For example, the group [debops_gitlab] automatically installs a complete running Gitlab setup
on one or a multitude of servers in the same run with the debops command4.
Other groups like [debops_mariadb_server] could be used accordingly in the same host inventory.
Ansible works without agent, so you don't have to prepare freshly setup servers with nothing
special to use that tool randomly (like on localhost).
The list of things you could deploy with Debops is quite amazing and dozens
of services are at hand.
The new Debian packages are currently in experimental because they need some more fine
tuning, e.g. there are a couple of minor error messages which recently occur using it,
but it works well.
The (early staged) documentation unfortunately couldn't be packaged because of the
scattered resp. collective nature of the project (all parts have their own Github
repositories)5, and also how to generate the upstream tarball remains a bit of a
challenge (currently, it's the outcome of debops-init)6.
I'll have this package in unstable soon. More info on Debops is coming up, then.
HashiCorp's Packer
I'm very glad to announce that Packer7 is ready being available in unstable,
and the RFP bug could be finally closed after I've taken it over8.
It's another great and much convenient devops tool which does a lot of different
things in an automated fashion using only a single "one-argument" CLI tool in combination
with a couple of lines in a configuration script (thanks to Yaroslav Halchenko for the tip).
Packer helps creating machine images for different platforms.
This is like when you use e.g. Debian installations in a Qemu box for testing or development
purposes.
Instead of setting up a new virtual machine manually the same way as installing Debian on
another computer this process can be completely automated with Packer, like I've written about
in this blog entry here9.
You just need a template which contains instructions for the included Qemu builder and a
preseeding script for the Debian installer, and there you go drinking your coffee while
Packer does all the work:
download the ISO image for installation, create the new virtual harddrive, boot the
emulator, run the whole installation process automatically like with answering questions,
selecting things, reboot without ISO image to complete the installation etc.
A couple of minutes and you have a new pre-baked virtual machine image like from a vendoring
machine, another fresh one could be created anytime.
Packer10 supports a number of builders for different target platforms
(desktop virtualization solutions as much as public cloud providers and private cloud software),
can build in parallel, and also the full range of common provisioners can be employed
in the process to equip the newly installed OSs with services and programs.
Vagrant boxes could be generated by one of the included postprocessors.
I'll write more on Packer here on this blog, soon.
There were more then two dozens of packages missing to complete Packer11, which is
the achievement of combined forces within the pkg-go group. Much thanks esp. to Alexandre
Viau who have worked on the most of the needed new packages.
Thanks also to the FTP masters which were always very quick in reviewing the Go packages,
so that it could be proceeded to build and package the sub dependent new ones always
consecutively.
Squirrel3
I've didn't had the major work of that and just sponsored this for Fabian Wolff, but want
to highlight here that there's a new package of Squirrel12 now available in
Debian13.
Squirrel is a lightweight scripting language, somewhat comparable to Lua. It's
fully object-oriented and highly embeddable, it's used in a lot of commerical computer
games under the hood for implementing intelligence for bots next to other things14,
but also for the Internet of Things (it's embedded in hardware from Electric Imp).
Squirrel functions could be called from C++15.
I've filed an ITP bug for Squirrel already in 2011 (#651195), but always something else
had a higher priority, and it ended up being an RFP. I'm really glad that it got picked up
and completed quickly afterwards.
misc
There were a couple of uploads on updated upstream tarballs and for fixing bugs,
namely afl/2.10b-1 and 2.11b-1,
python-afl/0.5.3-1, pyutilib/5.3.2-1, pyomo/4.3.11327-1,
libvigraimpex/1.10.0+git20160211.167be93dfsg-2 (fix of #820429, thanks to Tobias Frost),
and gamera/3.4.2+svn1454-1.
For the pkg-go group, I've set up a new package of github-mitchellh-ioprogress (which is
needed by the official DigitalOcean CLI tool doctl, now RFP #807956 instead of ITP
due to the lack of time, again a lot of missing packages are missing for that),
and provided a little patch for dh-make-golang updating some standards16.
For Packer I've also updated azure-go-autorest and azure-sdk as team upload (#821938, #821832),
but it came out that the project which is currently under heavy development towards
a new official release broke a lot in the past weeks (no Git branching have been used),
so that Packer as a matter of fact needed a vendored snapshot, although there have been only
a couple of commits in between.
Docker-registry has the same problem with the new package of azure-sdk/2.1.1~beta1, so that it
needed to be fixed, too (#822146).
By the way, the tool ratt17 comes very handy for automatically test building down all
reverse dependencies, not only for Go packages (thanks to Tianon Gravi for the tip).
Finally, I've posted the needed reverse depencies as RFP bugs for Terraform18
(again quite a lot), Vuls19, and cve-dictionary20, which is needed for Vuls.
I'll let them rest a while waiting to get picked up before working anything down.
- #570933: dh-buildinfo: should provide a addon file for dh command
- https://tracker.debian.org/pkg/debops
- http://debops.org/
-
The servers have to be accessible by SSH. E.g. you could run
debopslike:$ debops -u root --private-key=~/.ssh/id_digitalocean - https://github.com/debops/docs/issues/132
- #819816: ITP: debops -- Ansible based server management utility
- https://www.packer.io/
- #740753: ITP: packer -- create vm images for multiple platforms
- http://www.danielstender.com/blog/packer-qemu.html
- https://packages.debian.org/unstable/packer
- I've worked on the missing packages this month, namely github-klauspost-pgzip, github-masterzen-xmlpath, github-masterzen-winrm, dylanmei-winrmtest, packer-community-winrmcp (Packer uses WinRM if Windows machines images are created), github-hpcloud-tail, and updated github-rackspace-gophercloud (#822163) and google-api (#822164) to complete it.
- http://squirrel-lang.org/
- https://tracker.debian.org/pkg/squirrel3
- http://www.linux-magazin.de/layout/set/print/content/view/full/62184
- http://www.linux-magazin.de/Ausgaben/2011/10/plus/Fremdkoerper-Squirrel-Interpreter-und-Skripte-fuer-C
- https://github.com/Debian/dh-make-golang/pull/39
- https://packages.debian.org/unstable/ratt
- #808940: ITP: terraform -- tool for managing cloud infrastructure
- #820614: ITP: vuls -- package inventory scanner for CVE vulnerabilities
- #820615: ITP: go-cve-dictionary -- builds a local copy of the NVD/JVN (vulnerability databases)
This post is largely to remind myself of the details next time I hit something similar; I found bits of relevant information all over the place, but not in one single location.
I love
For years,
Explaining G del s theorems to students is a pain. Period. How can those poor creatures crank their mind around a Completeness and an Incompleteness Proof I understand that. But then, there are brave souls using G del s theorems to explain the world of demons to writers, in particular to answer the question:
Very impressive.
Found at
During a
Last week, someone posted a request for help on the popular Server
Fault Q&A site: they had apparently accidentally deleted their entire web
hosting business, and all their backups. The post (now itself deleted) was a
reasonably obvious fake, but
A few days ago a new upstream version "2.0" of
It is time of the year where Debian project members should elect a new project leader. This year, only one candidate has stepped up, yours truly. As a reminder, my platform is published
This is a screenshot of the IPMI console, so it's not showing the full information of that kernel oops, but as you can see, there are most likely such parts involved like bridge, netif, xenvif and the physical igb NIC.
Here's another screenshot of a crash from this night:
Slightly different information, but still somehow network involved as you can see in the first line (net_rx_action).
So the big question is: is this a bug Xen or with my setup? I'm using xl toolstack, the xl.conf is basically the default, I think:
The situation where Agon (the designated organizer of the Chess World
Championship, and also the Candidates tournament, the prequalifier to
said WC) is trying to claim exclusive rights of the broadcasting of the
moves (not just the video) is turning bizarre.
First of all, they have
Earlier this morning,
As most distributions have switched to systemd as default "init", some
people have asked why we actually keep sysvinit around, as it's old and
crusty, and systemd can do so much more.
My answer is: systemd and sysvinit solve entirely different problems, and
neither can ever replace the other fully.
The big argument in favour of systemd is integration: when you keep
everything in one process, it is easy to make sure that components talk to
each other. That is nice, but kind of misses the point: integration could
be done via IPC as well, and systemd uses a lot of it to separate
privileges anyway.
The tighter integration comes from something else: the configuration
format. Where sysvinit uses a lot of shell scripts ("imperative" format),
systemd uses explicit keywords ("descriptive" format), and this is the
important design decision here: descriptive formats cannot do anything
unanticipated, neither good nor bad.
This is important for UI programmers: if there is a button that says "if I
close the lid switch, suspend the laptop", then this needs to be connected
to functionality that behaves this way, and this connection needs to work
in both directions, so the user will find the active setting there when
opening the dialog. So, we need to limit ourselves to a closed set of
choices, so the UI people can prepare translations.
This is the design tradeoff systemd makes: better integration in exchange
for less flexibility.
Of course, it is simple to allow "custom" actions everywhere, but that
starts to break the "well-integrated" behaviour. There is an 