Installation

ZoneControl is a Python Django application and is provided by PowerDNS in two different formats:

  • RPM package (for RedHat Enterprise Linux, CentOS, etc.)

  • DEB package (For Debian, Ubuntu, etc.)

These packages contain a Python Virtual Environment (virtualenv) with all required Python dependencies.

Requirements

As ZoneControl comes bundled with its dependencies, the only requirement of the target system is a Python 3.4 or newer installation.

Installation using Ansible

PowerDNS will provide an Ansible role to install ZoneControl and set up an initial user. This role comes with a README file that describes all variables for the role.

This installation method is highly recommended over manual installations.

Manual Installation

Installation on RPM-based Distributions

RedHat Enterprise Linux and CentOS, both version 6 and 7, provide Python 3.4 through Extra Packages for Enterprise Linux (EPEL).

To ensure this is installed as a dependency for ZoneControl, install the epel-release package:

yum install epel-release

Should this installation fail, please refer to the EPEL website mentioned above.

If PowerDNS provided a repository to use, add its configuration to /etc/yum.repos.d/pdns-zonecontrol.repo:

[pdns-zonecontrol]
baseurl = $URL_PROVIDED
gpgcheck = 1
gpgkey = $URL_TO_PUBLICKEY_PROVIDED
name = PowerDNS ZoneControl Repository
priority = 90

And install the package:

yum install zonecontrol

If only the RPM file was supplied, install it through rpm:

rpm -iv zonecontrol-$VERSION.rpm

Installation on Debian-based Distributions

On Debian-based operating systems, the provided Python 3 is new enough to not require external repositories.

If a repository for ZoneControl is provided add the repository to /etc/apt/sources.d/zonecontrol and install ZoneControl:

apt-get update && apt-get install zonecontrol

I only a .deb file is provided, install it:

dpkg -i zonecontrol_$VERSION.deb

Post-installation

After the initial installation, ZoneControl needs to be configured. See the Configuration section on how to configure.

After configuration, the database needs to be populated, run:

zonecontrol-manage migrate

Now create a superuser (if required):

zonecontrol-manage createsuperuser