First, thanks to Major Hayden for his blog post which pointed out the use of systemd-resolved:

So, now we have the possibility to use systemd-networkd under ubuntu 18.04, I’d like to use it also under CentOS 7.
And yes, we can.

Install systemd-networkd:

yum -y install systemd-networkd

Disable network manager and enable networkd and resolved:

systemctl disable network NetworkManager
systemctl enable systemd-networkd systemd-resolved

Save the following contents to /etc/systemd/network/



(On my server the interface was no longer called ens3 but now eth0, hence the eth*)

Now create a symlink to the systemd-resolved resolv.conf:

rm -f /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

And just to be sure, reboot ūüôā

Now we have it up and running:

[root@el7 ~]# networkctl
IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 eth0             ether              routable    configured

2 links listed.
[root@el7 ~]# networkctl status eth0
‚óŹ 2: eth0
   Link File: n/a
Network File: /etc/systemd/network/
        Type: ether
       State: routable (configured)
        Path: pci-0000:00:03.0
      Driver: virtio_net
      Vendor: Red Hat, Inc.
       Model: Virtio network device
  HW Address: 1e:00:85:00:1b:5a
         MTU: 1500
     Gateway: (ICANN, IANA Department)
              fe80::d6ca:6dff:fe74:870d (

Ubuntu’s first point release for Bionic Beaver (18.04 LTS) has been released.

Now this release has had some time to mature, it’s time to have a look.
First thing that you notice is that /etc/network/interfaces is no longer in use and we have .

Come on Canonical, haven’t you learned from Mir?

So, if I’m to use this distro, I want to ditch netplan and use native systemd-networkd, which after all is what netplan is built onto.
So can we? Yes, we can.

With a simple setup where you only have one or more wired network cards, this is fairly straightforward.

Remove netplan:

apt remove netplan

Enable systemd-networkd

systemctl enable systemd-networkd

Add the following contents to a file called /etc/systemd/network/



(Of course I want IPv6 enabled)

Now reboot, and systemd-networkd is up and running:

root@1804:~# networkctl
IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 ens3             ether              routable    configured

2 links listed.

root@1804:~# networkctl status ens3
‚óŹ 2: ens3
       Link File: /lib/systemd/network/
    Network File: /etc/systemd/network/
            Type: ether
           State: routable (configured)
            Path: pci-0000:00:03.0
          Driver: virtio_net
          Vendor: Red Hat, Inc.
           Model: Virtio network device
      HW Address: 1e:00:6f:00:17:ac
         Gateway: (ICANN, IANA Department)
                  fe80::d6ca:6dff:fe74:870d (
  Search Domains:
    Connected To: on port fe:00:6f:00:17:ac (vnet37)

A few months ago, I came across PassBolt.


Currently at work we’re using TeamPass, but we feel
it’s not that usable.
PassBolt uses Open Source technology such as GnuPG, CakePHP, OpenSSL and other software.

Currently, the demo is rather basic as a lot of functionality is still to be built.
But even when that’s the case, the interface looks clean and fresh ; the experience smooth.
Have a look at their roadmap, and see why this really could become a gem!

I use my smartphone regularly to login on servers of mine with SSH. This works really well, but obviously you have less width than with a normal computer screen.

Some tools, like w, will not work with this limited width and give you a message like 

w: 60 column window is too narrow

Being a sysadmin, I don’t like to be told something just can’t work. So, a little trick to make it work:

 w | cat

This will have w output it’s text through stdout to cat and cat just outputs the text to the console, no questions asked.

Yesterday I have installed Ubuntu 16.04 LTS on my laptop to try it out.
While overall the experience is quite good, I found that notifications were broken for apps like slack and atom.
Following the issue found on github, I have found the following workaround to work for me:

Add the following line to /etc/environment ( edit as root ) and reboot ( or logout and login )


Here’s how I managed to install the memcached module for php 7.0 running on a server running CentOS with DirectAdmin.

Install the remi repo and install the latest version of memcached and libmemcached

yum -y install$(awk -F 'release ' '{print $2}' /etc/system-release| head -c 1).rpm
yum --enablerepo remi install memcached libmemcached-last libmemcached-last-devel git

Now configure and install the memcached extension:

cd ~
git clone
cd php-memcached
git checkout php7
./configure --disable-memcached-sasl --with-php-config=/usr/local/php70/bin/php-config
sudo make install

Add the extension to the php config:

echo "" | sudo tee /usr/local/php70/lib/php.conf.d/60-memcached.ini

And finally, restart php-fpm:

service php-fpm70 restart

Or if you run mod_php:

service httpd restart

I have a system running several docker containers with httpd, mariadb and redis. The httpd containers are running with names like ‘site1tld_httpd_1’.
Each httpd container writes the access_log and error_log to a host volume in /srv/volumes/<vhost>/httpd/logs . Just easy to have them accessible.

For these containers, I needed to run logrotate to keep those files from getting too large. Of course, these docker containers just run httpd as pid 1 and do not have logrotate installed.
The solution for me was to have logrotate on the host rotate every log, and then reload every docker container running httpd. A httpd reload is just done by sending a kill signal 1 to the httpd process.

This is done as follows ( a file in /etc/logrotate.d ):

/srv/volumes/*/httpd/logs/*log {
  rotate 7
    docker ps -f name=httpd -q | xargs docker kill -s 1 >/dev/null 2>&1

So the postrotate section is simple but effective: give me the ids of docker containers with “httpd” in the name and feed those ids to docker kill¬†and use signal 1 to notify each process.